さくらの VPS でコピペで使える iptables


みなさんこんにちは、masa です。今日はインフラネタの中でも、VPS を取り上げたいと思います。AWS や Azure などのクラウドサービスだと画面上から「セキュリティグループ」を設定すれば必要最低限のセキュリティ設定はできるのですが、VPS の場合はサーバーにログインして iptables を設定しなくてはいけないことが多いです。
ということで、手っ取り早くコピペで設定する方法をご紹介します。

まずはサーバーに SSH でログインしてください。
次に以下のコマンドで iptables ファイルを開きます。

# vim /etc/sysconfig/iptables

 

以下を貼り付けてください。

# Generated by iptables-save v1.4.7 on Wed Mar  4 20:57:21 2015
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4:528]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 587 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
COMMIT

7行目: データがないパケットの接続を破棄
8行目: SYNflood(接続をあぶれさせる)攻撃の接続を破棄する
9行目: ステルススキャン(足跡を残さずに空いているポートをスキャンしに来る)接続を破棄する
10行目:localhostからの通信を許可
11行目:Ping通信を許可
12行目以降:各サービスの接続を許可 (SSH, HTTP, POP3, SMTP, SUBMISSION, HTTPS)

必要最低限のものは上で空いています。他にも空けたいポートがある場合は、同じように追記してみてください。

次に、上記設定を iptables へ反映させるため iptables を再起動します。

# /etc/sysconfig/iptables restart

 

実際に設定が反映されたか確認してみます。

# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
DROP       tcp  --  anywhere             anywhere            tcp flags:FIN,SYN,RST,PSH,ACK,URG/NONE 
DROP       tcp  --  anywhere             anywhere            tcp flags:!FIN,SYN,RST,ACK/SYN state NEW 
DROP       tcp  --  anywhere             anywhere            tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN,SYN,RST,PSH,ACK,URG 
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:pop3 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:smtp 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:submission 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:https 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

 

いかがでしたか?今日は VPS で必要最低限な iptables をする方法をご紹介しました。契約したまま何も設定していないの、裸でゲットーを歩いているのと同じですので すぐに対処してくださいね。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>