iptablesのルールを作るスクリプトは以下。これを/etc/init.d/iptablesという名前で保存し、実行属性をつけておく。
# chmod +x /etc/init.d/iptables # cat /etc/init.d/iptables #!/bin/bash IPTABLESSAVE=/sbin/iptables-save IPTABLES=/sbin/iptables $IPTABLES -F $IPTABLES -X $IPTABLES -Z $IPTABLES -t nat -F $IPTABLES -t nat -X $IPTABLES -t nat -Z $IPTABLESSAVE > /etc/iptables.down.rules #echo 1 > /proc/sys/net/ipv4/ip_forward $IPTABLES -t nat -A POSTROUTING -j MASQUERADE $IPTABLES -P INPUT DROP $IPTABLES -P FORWARD ACCEPT $IPTABLES -P OUTPUT ACCEPT $IPTABLES -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED $IPTABLES -A INPUT -j ACCEPT -p tcp --dport 22 #$IPTABLES -A INPUT -j ACCEPT -p tcp --dport 22 -m state --state ESTABLISHED,RELATED $IPTABLES -A INPUT -j ACCEPT -p tcp --dport 22 -m hashlimit --hashlimit 3/minute --hashlimit-burst 3 --hashlimit-name out_ssh --hashlimit-mode srcip,dstip --hashlimit-htable-expire 60000 $IPTABLES -A INPUT -j DROP -p tcp --dport 22 $IPTABLES -A INPUT -j ACCEPT -i lo $IPTABLES -A INPUT -j ACCEPT -i eth1 $IPTABLES -A INPUT -j ACCEPT -i eth2 $IPTABLES -A INPUT -j ACCEPT -i eth3 $IPTABLES -A INPUT -j ACCEPT -i eth4 $IPTABLES -A OUTPUT -j DROP -o ppp0 -d 10.0.0.0/8 $IPTABLES -A OUTPUT -j DROP -o ppp0 -d 176.16.0.0/12 $IPTABLES -A OUTPUT -j DROP -o ppp0 -d 192.168.0.0/16 $IPTABLES -A OUTPUT -j DROP -o ppp0 -d 127.0.0.0/8 $IPTABLESSAVE > /etc/iptables.up.rules exit
update-rc.dを使ってこのスクリプトを起動時に走らせる。
# update-rc.d iptables defaults update-rc.d: warning: /etc/init.d/iptables missing LSB information update-rc.d: see <http://wiki.debian.org/LSBInitScripts> Adding system startup for /etc/init.d/iptables ... /etc/rc0.d/K20iptables -> ../init.d/iptables /etc/rc1.d/K20iptables -> ../init.d/iptables /etc/rc6.d/K20iptables -> ../init.d/iptables /etc/rc2.d/S20iptables -> ../init.d/iptables /etc/rc3.d/S20iptables -> ../init.d/iptables /etc/rc4.d/S20iptables -> ../init.d/iptables /etc/rc5.d/S20iptables -> ../init.d/iptables
削除するには以下のようにする。
# update-rc.d -f iptables remove Removing any system startup links for /etc/init.d/iptables ... /etc/rc0.d/K20iptables /etc/rc1.d/K20iptables /etc/rc2.d/S20iptables /etc/rc3.d/S20iptables /etc/rc4.d/S20iptables /etc/rc5.d/S20iptables /etc/rc6.d/K20iptables