- ベストアンサー
RH-Firewall-1-INPUTとは?
基本的なことで大変申し訳ないのですが、Linuxのiptablesを設定する際のRH-Firewall-1-INPUTとはなんでしょうか?似たような意味(?)の INPUT OUTPUT FORWARD PREROUTING POSTROUTING に関してはググるとすぐに明解に意味が書かれているサイトをいくつか発見出来るのですが、iptablesの書き方の例によく記載されているRH-Firewall-1-INPUTのみ、なぜか明確に意味が書かれているサイトを見つけられませんでした。 RH-Firewall-1-INPUTは、一体どのような意味を持ったものなのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
INPUT OUTPUT FORWARD などは、ご存じのとおりiptablesのチェーン名として意味のある単語ですが、 「RH-Firewall-1-INPUT」は、適当につけたラベル名です。 この文字列はどんなものに変更しても大丈夫です。 たとえば 「MY-FIREWALL-SETTINGS」 なんかでも大丈夫です。 ではなぜラベル名なんかを定義しているかというと、 一般的にはINPUTチェーンとFORWARDチェーンには、 設定として全く同じものを定義します。 たとえば、HTTPを許可する場合は、 -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A FORWARD -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT というように2つ分記述する必要があります。 ただ、これですと、INPUT側を変更したら、FORWARD側も変更しないといけなくなってしまい、ミスを誘発しやすくなってしまいます。 そこで、適当な名前で作った別のチェーンを作成しておいて、INPUTもFORWARDも、どちらもその新しいチェーンへ無条件に飛ばしてしまい、本当のルールは新しく作ったチェーン(この場合、RH-Firewall-1-INPUT)内でやれば、ルールの記述は1回で済みますね。 /etc/sysconfig/iptables を見てみるとこんな記述があると思います。 :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT 上記の記述を上から順に訳していきますと、 INPUTチェーンの定義 FORWARDチェーンの定義 OUTPUTチェーンの定義 RH-Firewall-1-INPUTチェーンの定義 INPUTチェーンに来たものはすべて無条件にRH-Firewall-1-INPUTチェーンへ転送する FORWARDチェーンに来たものはすべて無条件にRH-Firewall-1-INPUTチェーンへ転送する となります。 つまり、これでINPUTとFORWARDがRH-Firewall-1-INPUTチェーンで束ねられたことになります。 さらに/etc/sysconfig/iptables を見ていくと、以下のようになっていると思います。 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited これは、RH-Firewall-1-INPUTチェーン内のルール設定で、 外部からの80番と8080番ポートへのアクセスを許可するように設定しています。 そして最後の行の 「-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited」 によって、RH-Firewall-1-INPUT チェーン内のどのルールにもマッチしなかったパケットは、 icmp-host-prohibitedエラーを返すように設定しています。 つまり上記の場合、80番でも8080番でもない宛先ポートのパケットは全部エラーになるということになります。
お礼
なるほど、理解出来ました。分かりやすい説明ありがとうございます!