RedHat Enterprise Linux 5 で iptables を使ってパケットフィルタを
実行する方法は次の通り。
○ルールの追加
(リストの末尾に追加)
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp --sport 53 -d 1.1.1.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 20:21 -d 1.1.1.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -d 1.1.1.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 30080 -d 1.1.1.1 -j ACCEPT
iptables -A INPUT -j LOG --log-prefix "iptables:" --log-level=3
iptables -P FORWARD DROP
iptables -P INPUT DROP
○行番号を指定して挿入
(挿入前の2行目と3行目の間にルールを挿入)
iptables -I INPUT 3 -i lo -j ACCEPT
○削除
(追加した際と同様の内容でないと削除できない)
iptables -D INPUT -i lo -j ACCEPT
○行番号を指定して削除
(3行目を削除)
iptables -D INPUT 3
○ルールを置換する
(3行目のルールを置換する)
iptables -R INPUT 3 -i lo -j ACCEPT
○設定の保存
iptables コマンドで追加したり削除した内容は保存していないと、
システムを再起動すると消えてしまう。
忘れずに次のコマンドで設定した内容を保存しておく。
service iptables save
あるいは、
/etc/init.d/iptables save
設定した内容は、「/etc/sysconfig/iptables」 に保存される。
保存の形式として、追加する際のコマンドの形式になっているので、
削除したい場合などに見ると便利。
「/etc/sysconfig/iptables」 がすでに存在する状態で、
さらに save すると、「/etc/sysconfig/iptables」 に現在の設定が保存され、
「/etc/sysconfig/iptables.save」 に 1 世代前の設定が保存される。
○サービスの再起動
service iptables stop
service iptables start
あるいは、
/etc/init.d/iptables stop
/etc/init.d/iptables start
○便利な使い方
iptables はサービスを再起動すると、
/etc/sysconfig/iptables の内容を読み込んで起動する。
なので、/etc/sysconfig/iptables の書式が分かっている場合は、
/etc/sysconfig/iptables を直接編集して、
追加や順番を変えたり、削除したりして、
iptables サービスを再起動すれば内容が反映される。
こちらの方がコマンドで修正するよりはるかに楽。