"RH-Firewall-1-INPUT"って何だっけ?

iptablesの設定って基本的なことはわかってたつもりでしたが、改めて調べるとiptablesってけっこういろんなことができるんですね^^;)
これまでiptablesは全部「INPUT」で書くか、デフォルトと同じように「RH-Firewall-1-INPUT」にフィルター追加すれば動いてたのであんまり気にしなかったけど、「RH-Firewall-1-INPUT」ってなんだっけ?と思ったのがきっかけです。
調べてみてわかったことを書こうと思います。

参考にしたのはこちら。

その1 チェインって自分で定義できるんですね!

記事のタイトルにもあるやつですが、RH-Firewall-1-INPUTは独自に追加したチェイン名で、名前は何でもいいようです。自分で追加できるとは知りませんでした。
下記のように、自分で新しくチェインを定義して、INPUTもFORWARDも同じポリシーに従うように設定できる、というのがメリットみたいです。

:RH-Firewall-1-INPUT -
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT

その2 ネットワークのインターフェイスで絞り込むこともできるんですね!

下記は、lo(ローカルループバック)のアクセスは許可の意味になりますが、eth0などifconfigで出力されるインターフェイスに限定して設定を追加できる。

-A RH-Firewall-1-INPUT -i lo -j ACCEPT

その3 なんとなく使ってた-m(拡張モジュール)

--sport, --dport という記述はこれまで何となく使っていましたが、ハイフンひとつで記述するオプションとは別(考えてみれば当然^^;)。
-mは拡張モジュールを指定するオプションで、tcp, udp, stateといった拡張モジュールのオプションがハイフンふたつのオプション。
tcp, udpの拡張モジュールを使うと、出元ポートや宛先ポートでパケットを絞り込める。stateはNEW、ESTABLISHED、RELATED、INVALIDなどを指定して、パケットの過程によってフィルタリングできる(接続開始パケットは許可する など)。

-A RH-Firewall-1-INPUT -p tcp -m tcp --sport 67:68 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --sport 67:68 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

その他

デフォルトで書かれてたりする下記の記述ですが、--reject-withを指定するとリジェクトしたときのエラー内容を指定できるよう。

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

これも今まで気にしていなかったんですが、各行の[0:0]などの記述は統計情報になっているらしく、各フィルターを通過した[パケット数:バイト数]になっているみたいです。iptables-saveで/etc/sysconfig/iptablesに設定が書き込まれた場合などに出力される。

とまあ知ってるつもりだったことも、改めて調べるといろいろわかりますね^^;)これからも精進します。