てへまぐいらんー

どうでもいいこととか書いてく雑記的なブログ。興味があることにはとりあえず手を出してみるよ

スポンサードリンク

【超初心者向け】最低限のサーバーセットアップ

公開サーバーを構築する上で最低限のセキュリティ等の設定をご紹介します。VPS自宅サーバーを構築を考えている初心者の方々の参考になれれば幸いです。

本内容はあくまでConoha環境(CentOS 7.2)での設定ですが、他のVPSや自宅のPCやサーバーでもCentOS7.xを使ってる場合、同様の設定を行うことで環境構築できると思われます。
全部通しでやって設定時間は30分~1時間ってところですかね。

かなり初心者向けに書いているのでわかる人には冗長かもしれませんが、そういう人は飛ばしながらサクッと設定を終わらせてください。

太字のところは重要なところだったり、任意で設定する項目だったりします。(ユーザー名など)

筆者の設定環境

接続クライアント:Windows10

ターミナルエミュレータTeraTerm

レンタルVPS:ConoHa

サーバーOS:Centos 7.2


設定環境を整える準備

teraterm の インストール(2016/10/29時点最新版は4.92)

・レンタルしたvpsのIPを確認する(Conohaの場合)
一覧から設定したいvpsのネームタグを選択
setting_02
ネットワーク情報のIPアドレスをメモします。
その時、あとで使用するため接続許可ポートのSSH(22)のチェックボックスにチェックを入れてください。

vpsに接続する

Teraterm_Connect
TeraTermを起動しホスト欄に先ほどメモしたIPを入力します。
セキュリティ警告が出てくる場合もありますが、OKボタンを押してください。

TeraTerm-Login
ユーザー名:root
パスフレーズサーバーセットアップ時に設定したrootユーザーパスワード
OKを押したら接続完了です。

 

・必要パッケージのインストールおよびアップデート

環境によってはそこそこ時間がかかりますが、インストールとアップデートを行います。

 yum -y update
 yum -y groupinstall "Base" "Development tools"


エディターの設定

ここからは多少設定ファイル等を変更する必要があるためまずvi系エディター使い方を軽く説明します。

 

基本操作

j 下移動
上移動
右移動
左移動
i 挿入モード(Escキーで挿入モード終了)
:q! 変更を破棄して終了
ZZ 変更を保存し終了

まだ便利なコマンドが沢山ありますが、これくらい使えればとりあえずは大丈夫です。

では本題に入ります。


vim(エディター)のインストール

yum -y install vim-enhanced

viコマンドをvimコマンドとして使用する。

vi /etc/profile

最終行に以下を追記します。

alias vi='vim'

 

/etc/profile の内容を適用します(次回からは/etc/profileに記述した内容はログイン時に自動で適用されます)

source /etc/profile

 


インストールされたパッケージの自動アップデート

yum -y install yum-cron
vi /etc/yum/yum-cron.conf

apply_updates の値を no →yesに変更


ユーザーの追加

現在はrootユーザーにて作業を行っていますが、セキュリティの観点からそれは危険なので作業用のユーザーを追加します。

useradd 「追加するユーザー名」  #ユーザ追加
passwd 「追加するユーザー名」   #パスワードの設定

Changing password for user 「追加するユーザー名」 
New password:「追加するユーザー名のパスワード」
BAD PASSWORD: The password contains the user name in some form
Retype new password:user_pass 「追加するユーザー名のパスワード(再入力)」
passwd: all authentication tokens updated successfully.

 

それでは一度tera termを終了し、追加したユーザーでvpsに再度ログインしてみましょう。
ログインできない場合は、パスワード等が間違っている可能性があるため、rootユーザーで入りなおしえて設定を確認してみてください。

次回からrootユーザーの権限で作業を行いたい場合はsuコマンドを使用します。
(ここより先の設定を行う際はほぼrootユーザが必須になります)

su
Password:サーバーセットアップ時に設定したrootユーザーパスワード

元のログインユーザーへ戻りたい場合はexitを入力します。

 

TCP Wrapper設定

TCPWrapperとは、簡単に説明するとサービス単位でIPやリモートホストなどを指定しアクセスを制限したり逆に許可したりできます。

hosts.allowは許可したい接続、hosts.denyは拒否したい接続の設定になります。

まずはhosts.allowの編集(とりあえずteratermで使用するsshdを許可します)

vi /etc/hosts.allow

最終行に追記

sshd: ALL

次にはhosts.denyの編集(こちらはすべての接続を拒否する設定をします)

vi /etc/hosts.deny

最終行に追記

ALL: ALL

hosts.allowとhosts.denyはhosts.allowが優先されるため、基本はホワイトリスト方式で管理を行います。

誤字等で、teratermから接続できなくなってしまう場合がありますが、焦らずConoha(ホスティングサーバ事業主)のサイトにログインし、ウェブ上からコンソールを操作して再度編集を行ってください。
自宅サーバーの場合は、サーバーにモニターとキーボードを繋いで再度編集を行ってください)

SSH設定

sshとは安全にサーバー等と通信するためのプロトコルです
今こうして、teratermを使用し設定を行っているのもsshを使用して接続しております。

vi /etc/ssh/sshd_config
#ルートユーザーのログインを禁止する
PermitRootLogin no   #先頭文字の#を削除してコメントを削除

#空のパスワードを禁止する
PermitEmptyPasswords no #先頭文字の#を削除してコメントを削除

#ssh接続を許可するユーザー
AllowUsers 「ユーザー名」 #最終行に追記


以下コマンドで上記の設定を適用させます。

systemctl reload sshd 

SELinuxの無効化

Conohaではデフォルトで無効になっておりますが、一応手順だけ・・・

まず状態確認をします

getenforce

Enforcing と表示されて場合は有効になっています。

手動で無効にする(一時的)

setenforce 0

起動時に無効にする(恒久的)

vi /etc/sysconfig/selinux

enforcing → disabled へ変更

SELINUX=disabled 

サーバーを再起動した後にもう一度getenforceを入力しdisabled と表示されれば無事無効化成功です。


rootになれるユーザーを限定する

セキュリティ上すべてのユーザーに管理者権限を移譲できてしまうと危ないので制限をかけましょう

vi /etc/pam.d/su

先頭行の#を削除しwheelグループのメンバーはrootになれるようにします。

auth required pam_wheel.so use_uid 

ユーザーをwheelグループに追加します。

usermod -aG wheel 「rootログインを許可するユーザー名」

ホストネームの変更

ホスト名とは同一ネットワーク内にあるPCやサーバー間での接続等で使う名前みたいなものです。
IPアドレス等を一々覚えるのは大変ですが、サーバーにホスト名をつけておくと覚えやすいです。
1つしかサーバーを使ってない場合はあまり使わないかもですが一応設定しておくと便利です。

vi /etc/hosts

以下のように変更します

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain
↓
127.0.0.1 localhost 「ホスト名」 localhost4 localhost4.localdomain

hostnameコマンドを使用し設定した内容が表示されていれば成功です。

hostname 「ホスト名」

文字コードUTF-8に変更

UTF8にしておけば、あとあとPHP等を使用したとき、文字化けしなくなったりなどの利点があります。

localectl set-locale LANG=ja_JP.UTF-8

ファイヤーウォールの設定

ファイヤーウォールも色々種類はありますが、今回本記事で紹介するのはfirewalldです。
firewalld とは CentOS7 よりデフォルトで採用されおりこれが推奨されているとのことです。

IPTABLES とは共存できないため有効になっている場合は無効にする

systemctl stop iptables
systemctl disable iptables

おそらく、初期のままだと入っていると思いますが一応インストール・・

yum -y install firewalld

firewalldを有効にする。

systemctl start firewalld
systemctl enable firewalld


sshに使用するため以下を実行する

firewall-cmd --zone=public --add-service=ssh --permanent
firewall-cmd --zone=public --add-port=22/tcp --permanent

変更したfirewalld の変更を反映させる。

firewall-cmd --reload

設定の確認コマンド

firewall-cmd --list-all

servicesとportsのところに許可したものが表示されていることを確認してください。

この設定もTCP Wrapperと同様に、間違うとteratermからの接続ができなくなる可能性があるため接続できなくなった場合は焦らず直接コンソールから変更を行ってください。
詳しくはTCP Wrapperの設定を参照

 

最後に

とりあえず初期設定はこれくらいですね。お疲れさまでした。

CUIのOSが初めてな方にはちょっと難しい内容かもしれないですが、使っていくと理解が深まっていくと思います。

ここから先は各自建てたいサーバーの設定を行っていください。
TCP Wrapperfirewalld の設定の許可を忘れないように・・)

スポンサードリンク