さくらのVPSを使ってみよう (3)


f:id:tr-crm:20150907100247j:plainこんにちは! シンキングリード株式会社のエンジニア見習い、小久保です。

前回の記事に引き続き、さくらVPSの構築作業を進めていきます。今回は、セキュリティの強化と、ファイアウォールの設定を行ないます。

rootログインの無効化

作成した作業用ユーザーにroot権限を持たせることができました。セキュリティのためrootユーザーでのログインを無効化します。

長大なファイルの中から、目で追って文字列を探すのが大変なときは、Vimの検索機能 を使いましょう。半角スラッシュ に続けて 探したい文字列 を入れると、該当箇所を探し出してくれます。

$ vim /etc/ssh/sshd_config
# ファイル内から PermitRootLogin を検索
/PermitRootLogin
# 該当箇所が見つかったら書き換えて保存
PermitRootLogin no

設定を有効化するため sshdを再起動します。

$ service sshd restart

PuTTYをいったん閉じて、再度ログインしてみましょう。root ユーザーでログインを試みるとエラーが出るはずです。かわりに frevouser でログインします。

ここからの作業では、コマンドの最初に sudo という文字を追加してください。これは権限の弱いユーザーでも一時的にroot権限で編集可能になるコマンドです。

SSHポート番号の変更

SSHのポート番号は 22 がデフォルトですが、よく使われるため攻撃を受けやすい番号です。今回は 52222 に変更して、セキュリティを向上させましょう。コマンドの最初に必ず sudo を付けてください。パスワードを訊かれますので frevouser のパスワードを入力します。

$ sudo vim /etc/ssh/sshd_config
#Port 22
Port 52222

コメントを外して、ポート番号を変更すれば完了です。

SSHのセキュリティを向上させる方策としては、パスワード認証のかわりに公開鍵認証の利用がよく行われています。今回は割愛しますが、なるべく設定しておくと良いでしょう。

iptables(ファイアウォール)の設定

ファイアウォールの設定をします。SSHやHTTPなど、必要最低限の通信だけを許可しておきましょう。

$ sudo vim /etc/sysconfig/iptables

以下の設定をすべてコピー&ペーストしてください。PuTTYをお使いの場合は、画面上で右クリックすると、コピーした文字列をペーストできます。

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# SSH, HTTP, FTP1, FTP2, MySQL
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 52222 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

保存できたら、以下のコマンドを入力して iptables を再起動します。

$ sudo service iptables restart

通常使う IPv4iptablesについては設定完了しました。さくらVPSではデフォルトで IPv6 も有効になっていますが、こちらは設定せずに、すべて無効化しておきます。

まずは IPv6 の無効化です。以下の内容を追記してください。

$ sudo vim /etc/modprobe.d/disable-ipv6.conf
options ipv6 disable=1

続けて ip6tables も無効化しましょう。

$ sudo service ip6tables stop
$ sudo chkconfig ip6tables off

PostfixIPv6も無効化しておきます。

$ sudo vim /etc/postfix/main.cf
# inet_protocols = all
inet_protocols = ipv4
$ sudo service postfix restart

以上で、LAMP環境(Linux, Apache, PHP, MySQL)のうち、Linuxの設定は完了しました。次回はApacheをインストールしてWebサーバーを立ち上げてみましょう。