酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

さくらVPS/Cent OS 6.4 iptableの設定[Railsサーバへの道][セキュリティ]

さくらVPS 2GB SSDのCentOS 6.4をセットアップしてイケてるRailsサーバに仕上げるまでのシリーズです。第2回はiptableの導入〜設定までです。このiptableの設定を一言で言うと、通信ポートを制限できるファイヤーウオール用のパッケージ。このソフトを使うことでWebサーバとして必要な最低限のポートのみ公開し、それ以外のポートにアクセスできないようにしてサーバのセキュリティを高めることができます!


iptableの設定

SSH/HTTP/HTTPS用のポートのみ公開し、それ以外のポートを拒否する設定をする。
sudo vim /etc/sysconfig/iptablesを実行して、以下の様に編集。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
*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 (Please adjust SSH_PORT)
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport SSH_PORT -j ACCEPT

# HTTP, HTTPS
-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 443 -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

iptableを再起動。

1
2
3
4
5
sudo service iptables restart
>iptables: Flushing firewall rules:                         [  OK  ]
>iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
>iptables: Unloading modules:                               [  OK  ]
>iptables: Applying firewall rules:                         [  OK  ]
  • 上のように[ OK ]が4つ並んでいれば設定成功です
  • ブログ上のコードのため、半角の空白が入っている可能性があり。iptableの再起動時にエラーが出たら、その行末に空白が入っていないかチェックしてください

サーバの起動時に一緒にiptableを起動させるように設定。

1
sudo chkconfig iptables on

自動起動の設定確認。

1
2
/sbin/chkconfig --list iptables
#=> iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off となっていれば成功です

Special Thanks

さくらのVPS を改めて使いはじめる 3 – iptables と logwatch

CentOS/iptables - ひつじ帳

変更来歴

09/22 12:01 CentOS 6.4対応 & 記述ミスの修正

検証環境

今回の記事の検証環境は以下の通りです。

Local/Server:
  Ruby: 2.0.0
  Rails: 4.0.0

Local:
  OS: Mac Mountain Mountain Lion(OS X 10.8.4)

Server(さくらVPS 2G SSD):
    CentOS release 6.4 (Final)

おすすめの書籍