iptablesの最低限の設定

http://labs.unoh.net/2007/03/post_73.html に載っていました。個人的にはsudoですべて行うほうが危ない気がするのですが、それは人それぞれかも。

# sudo /sbin/iptables -P INPUT DROP

次に、外部からの INPUT チェインを定義します。INPUT チェインを定義するには、次のコマンドを実行します。このコマンドの意味は、「サービスに対して接続が確立した場合は、それ以降のパケットを通過させる」ということになります。


# /sbin/iptables -A INPUT -i all -m state --state ESTABLISHED,RELATED -j ACCEPT

次に、ローカルホストからの接続は許可するように設定します。


# sudo /sbin/iptables -A INPUT -p icmp -j ACCEPT
# sudo /sbin/iptables -A INPUT -i lo -j ACCEPT

次に、ローカルネットワークからの接続はすべて許可します。


# sudo /sbin/iptables -A INPUT -s 192.168.1.0 -j ACCEPT

あとは、お好みで必要なサービスのポートを開放します。例えば、SSH のポートを開放するには、次のコマンドを実行します。


# sudo /sbin/iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

最後に、今まで作成した iptables のルールを保存して、iptables を再起動します。


# sudo /etc/init.d/iptables save
# sudo /etc/init.d/iptables restart


以上の4つの設定を行うと比較的専用サーバでセキュリティを確保することができると思います。