-->

2009-11-28

iptables の設定のサンプル

これはサンプルです。例えば ping の回数制限などが足りていません。
ぜひ man iptables などの正規のマニュアルをご参照ください。
例えばこの例は-dと-sを間違っています。
# 基本のルール
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# ルールの入れ物
iptables -N MyFwInputMain
iptables -N MyFwInputStateNew
iptables -N MyFwInputSSHPrepare
iptables -N MyFwInputSSHExec

# 基本のINPUTルールにルールを追加
iptables -A INPUT -j MyFwInputMain

# 127.0.0.0/8 許可
iptables -A MyFwInputMain -i lo -j ACCEPT

# pingなどのICMPパケットを許可(iptables -p icmp -h)
iptables -A MyFwInputMain -p icmp --icmp-type any -j ACCEPT

# 接続中と、接続中が無いと接続できない新規の接続を許可
iptables -A MyFwInputMain -m state --state ESTABLISHED,RELATED -j ACCEPT

# 新規接続を別ルールへ移動
iptables -A MyFwInputMain -m state --state NEW -j MyFwInputStateNew

# 新規接続の一部をtcp,port指定で許可
iptables -A MyFwInputStateNew -m tcp -p tcp -m multiport --dports 80,443,873,2401,3690 -j ACCEPT
iptables -A MyFwInputStateNew -m tcp -p tcp --dport 8080:8099 -j ACCEPT

# 新規のssh接続を、別ルールへ移動
iptables -A MyFwInputStateNew -m tcp -p tcp --dport 22 -j MyFwInputSSHPrepare

# 新規のssh接続を、IPアドレス限定で、別ルールへ移動
#iptables -A MyFwInputSSHPrepare -d 10.0.0.0/8 -j MyFwInputSSHExec
#iptables -A MyFwInputSSHPrepare -d 172.16.0.0/12 -j MyFwInputSSHExec
#iptables -A MyFwInputSSHPrepare -d 192.168.0.0/16 -j MyFwInputSSHExec
iptables -A MyFwInputSSHPrepare -s 10.0.0.0/8 -j MyFwInputSSHExec
iptables -A MyFwInputSSHPrepare -s 172.16.0.0/12 -j MyFwInputSSHExec
iptables -A MyFwInputSSHPrepare -s 192.168.0.0/16 -j MyFwInputSSHExec

# 新規のssh接続を、IPアドレス限定で、1分に6回許可
iptables -A MyFwInputSSHExec -m limit --limit 1/minute --limit-burst 6 -j ACCEPT

# 指定したルール以外は拒否の返答をする。
iptables -A MyFwInputMain -j REJECT --reject-with icmp-host-prohibited

0 件のコメント: