• ベストアンサー

RH-Firewall-1-INPUTとは?

基本的なことで大変申し訳ないのですが、Linuxのiptablesを設定する際のRH-Firewall-1-INPUTとはなんでしょうか?似たような意味(?)の INPUT OUTPUT FORWARD PREROUTING POSTROUTING に関してはググるとすぐに明解に意味が書かれているサイトをいくつか発見出来るのですが、iptablesの書き方の例によく記載されているRH-Firewall-1-INPUTのみ、なぜか明確に意味が書かれているサイトを見つけられませんでした。 RH-Firewall-1-INPUTは、一体どのような意味を持ったものなのでしょうか?

  • bease
  • お礼率56% (14/25)

質問者が選んだベストアンサー

  • ベストアンサー
  • hfritz
  • ベストアンサー率13% (4/30)
回答No.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番でもない宛先ポートのパケットは全部エラーになるということになります。

bease
質問者

お礼

なるほど、理解出来ました。分かりやすい説明ありがとうございます!

関連するQ&A

  • CentOSのIPテーブルの設定について

    Linux初心者です。どうぞよろしくお願いします。CentOS4.5でゲートウェイサーバーを構築しました。eth2がルーターとつながっています。IPマスカレード機能を使い、eth0、eth1がステルスとなるようにしました。 質問は3つです。全部にお答え頂かなくてももちろん結構です。 1.現在の設定ではeth2が外から丸見えになってしまっていますがそれを防ぐことはできないか? 2.将来的には外部に公開することも考えているのですが、最低限何が不足しているか? 3.設定を増やすとすれば何を付け加えればよいか? ぜいたくな質問かもしれませんが、どうぞよろしくお願いします。 etc/sysconfig/iptablesの全設定は以下のようになっています。 # Generated by iptables-save v1.2.11 on Thu Jul 26 11:30:41 2007 *nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A POSTROUTING -o eth2 -j MASQUERADE COMMIT # Completed on Thu Jul 26 11:30:41 2007 # Generated by iptables-save v1.2.11 on Thu Jul 26 11:30:41 2007 *filter :INPUT DROP [0:0] :FORWARD DROP [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 -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -i eth0 -j ACCEPT -A RH-Firewall-1-INPUT -i eth1 -j ACCEPT -A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p ipv6-crypt -j ACCEPT -A RH-Firewall-1-INPUT -p ipv6-auth -j ACCEPT -A RH-Firewall-1-INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT # Completed on Thu Jul 26 11:30:41 2007

  • iptablesのルールについて

    あるサイトを参考にiptablesを見直していました。 下記内容で、iptablesのルールを記述し、iptablesを再起動したら 80番の通信のみ許可される。 と記述されていました。 ただ、 >:INPUT ACCEPT [0:0] の内容で、INPUTのデフォルトルールが全許可になるのではないのでしょうか? よって、RH-Firewall-1 で80番の通信を許可しても意味がないような気がするのですが 私の考えが間違っているでしょうか? ご教授お願いします。 =======↓iptables参考ファイル======= vim /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 -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p 80 -j ACCEPT ~(割愛)~

  • iptablesにて

    OS:RHEL AS3 iptablesにて以下の方法を教えて下さい。 (1)80ポートはINPUTのみ通過 (2)42ポートはINPUT、OUTPUTを通過 (3)123ポートはINPUT、OUTPUTを通過 (4)上記全てはeth0のみ設定 (5)eth1は全て通過 (6)全て特定のIPからのみ通過 見づらいとは思いますが、下記のような設定を行ってもだめでした。 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] :RH-Firewall-2-OUTPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A OUTPUT -j RH-Firewall-2-OUTPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -i eth1 -j ACCEPT -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 80 -s IP/32 -j ACCEPT -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 42 -s IP(2)/32 -j ACCEPT -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 123 -s IP(3)/32 -j ACCEPT -A RH-Firewall-2-OUTPUT -m tcp -p tcp --dport 42 -s IP(2)/32 -j ACCEPT -A RH-Firewall-2-OUTPUT -m tcp -p tcp --dport 123 -s IP(3)/32 -j ACCEPT 非常に困っております。宜しくお願い致します。

  • ファイアウォールの必要性

    WindowsファイアウォールはポートフォワードやLinuxのiptablesと同様の機能ですよね? パソコンが遅くなるのが嫌なのでWindowsファイアウォールを止めたいのですが停止して問題があるでしょうか? 普通はルーターを使っていてDMZなんかしていないと思うのでWindowsファイアウォールの意味は全く無いと思います。 DMZを使ったりする一部のユーザにしか意味が無いのがWindowsファイアウォールですよね?

  • iptablesでポートフォアワードがうまくいかない。

    お世話になります。下記の通りiptablesでフィルターとNATの定義をしました。 しかし、内部からネットへの接続は可能ですが、外部からWebサーバーにあるHPが見れない指摘を受け、その原因を調べています。 不備な点、ご指導賜りたく存じます。 eth0:1.2.3.4 ---------- | Linux | ----------- eth1:192.168.0.101   | websever:192.168.0.100 cla:192.168.0.102~ modprobe iptable_nat modprobe ip_conntrack_ftp modprobe ip_nat_ftp iptables -F iptables -t nat -F iptables -t mangle -F iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -i lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT iptables -A OUTPUT -o lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j ACCEPT iptables -A OUTPUT -o eth1 -d 192.168.0.0/24 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -d 1.2.3.4 -j ACCEPT iptables -A OUTPUT -p tcp --dport 80 -s 1.2.3.4 -j ACCEPT iptables -A INPUT -p tcp --dport 53 -d 1.2.3.4 -j ACCEPT iptables -A OUTPUT -p tcp --dport 53 -s 1.2.3.4 -j ACCEPT iptables -t nat -A PREROUTING -p tcp -d 1.2.3.4 -i eth0 --dport 80 -j DNAT --to 192.168.0.100:80 iptables -A FORWARD -i eth1 -o eth0 -s 192.168.0.0/24 -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4 iptables -t nat -A POSTROUTING -s 192.168.0.102/32 -o eth0 -j MASQUERADE

  • iptables ポートフォワーディングについて

    ポートフォワーディングの設定を行いたくて試しにやっているのですが、 うまくいかないので教えていただけないでしょうか。 WinXPクライアント(192.168.1.22) | Linuxルーター(eth0=192.168.1.40, eth1=192.168.2.41)起動しているサーバーはssh,telnet,ftp,http,postgresです。 | LinuxWebサーバー(eth0=192.168.2.81 port=80)起動しているサーバーはssh,telnet,ftp,http,postgres,cvspserverです。 WinXPクライアントからLinuxWebサーバーにアクセスしたいのですが、以下のように設定しても WinXPクライアントのブラウザには「サーバーが見つかりません」と表示されてしまいます。 他に追記すべき設定、お気づき等ございましたら教えてください。よろしくお願いします。 Linuxルーターのiptables設定内容(service iptables stopを行った後、以下を設定しております) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.2.81:80 iptables -A FORWARD -d 192.168.2.81 -p tcp --dport 80 -j ACCEPT ------------------------------------------------------------- 上記設定後iptables -Lとしてみたら以下のように表示されました。 Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination ACCEPT tcp -- anywhere 192.168.2.81 tcp dpt:http Chain OUTPUT (policy ACCEPT) target prot opt source destination さらにservice iptables saveをして cat /etc/sysconfig/iptablesとしてみたところ以下のように表示されました。 # Generated by iptables-save v1.3.5 on Sat Jan 30 11:46:10 2010 *nat :PREROUTING ACCEPT [2:280] :POSTROUTING ACCEPT [2:115] :OUTPUT ACCEPT [2:115] -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.2.81:80 COMMIT # Completed on Sat Jan 30 11:46:10 2010 # Generated by iptables-save v1.3.5 on Sat Jan 30 11:46:10 2010 *filter :INPUT ACCEPT [148:9894] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [169:16447] -A FORWARD -d 192.168.2.81 -p tcp -m tcp --dport 80 -j ACCEPT COMMIT # Completed on Sat Jan 30 11:46:10 2010 ------------------------------------------------------------- ちなみに以下のように設定してWinXPクライアントからsshで192.168.1.40の10000ポートに接続すると接続できました。 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 10000 -j DNAT --to 192.168.2.41:22 ------------------------------------------------------------- 以下のように設定してWinXPクライアントから「telnet 192.168.1.40 10000」コマンドを発行してみるとしていない 時と比べて「接続中: 192.168.1.40...」となっている時間が長いので何かしら影響しているのかなと思います。 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 10000 -j DNAT --to 192.168.2.81:23

  • iptablesを使用してのDNSゾーン転送の設定。

    今後Linuxをルーターとしてサーバー公開を目指しています。 グローバルIP=10.10.10.10(ルーターインターフェース=eth0) プライベートIP=192.168.0.1(ルーターインターフェースeth1) PrimaryDNS=10.10.10.10:53をプライベートIPに変換=192.168.0.2:53 セカンダリDNS=20.20.20.20 Linuxルータはiptablesのみ動作。 primaryDNSサーバーはwindows2000を使用しています。 iptablesにより、Preroutingを使用して10.10.10.10:53→192.168.0.2:53の変換。 POSTROUTINGにより192.168.0.2→10.10.10.10:53へ変換と設定しています。 # iptables -t nat -A PREROUTING -p tcp -d 10.10.10.10 -dport53 -j DNAT -to-destinalion 192.168.1.20:53 # iptables -t nat -A POSTROUTING -p tcp -s 10.10.10.10 -sport53 -j SNAT -to-source 192.168.1.20:53 # iptables -t nat -A PREROUTING -p udp -d 10.10.10.10 -dport53 -j DNAT -to-destinalion 192.168.1.20:53 # iptables -t nat -A POSTROUTING -p udp -s 10.10.10.10 -sport53 -j SNAT -to-source 192.168.1.20:53 そこで質問なのですが、この際Win2000でゾーン転送のセカンダリDNSの宛先アドレスはどうしたらよろしいのでしょうか? その際、iptablesの記述も教えてください。 一応、 # iptables -A FORWARD -p tcp -dport53 -j ACCEPT # iptables -A FORWARD -p udp -dport53 -j ACCEPT 53ポートのtcp,udpを許可しています。

  • 【 Fedora Core3 】 /etc/sysconfig/iptables

    DNSサーバ兼Webサーバに使おうと思っています。 SSHは使います。 (現在試験稼動中です。) セキュリティを強化するために是非ともご指摘・ご指南頂ければ幸いです。 よろしくお願いします。<(_ _)> /etc/sysconfig/iptables -- *filter :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 INPUT -p udp -m udp --sport 53 -j ACCEPT -A FORWARD -j RH-Firewall-1-INPUT -A OUTPUT -pudp -m udp --dport 53 -j ACCEPT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p ipv6-crypt -j ACCEPT -A RH-Firewall-1-INPUT -p ipv6-auth -j ACCEPT -A RH-Firewall-1-INPUT -d 244.0.0.251 -p udp --dport 5353 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISH -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT --

  • iptableコマンドを複数記載したスクリプトを実行したいです。

    Linuxのコマンドについてお聞きしたいです。 iptableコマンドを複数記載したスクリプトを作成し、そのスクリプトを実行することによってパケットフィルタリングの設定をしようと思っています。 Windowsで下記のようなファイルを作成しました。 #!/bin/sh iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE iptables -P INPUT DROP iptables -P FORWARD DROP iptables -A FORWARD -i eth1 -s 192.168.0.0/24 -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i eth0 -d 210.98.76.54 -p tcp --dport 80 -j ACCEPT iptables -A INPUT -i eth1 -d 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT iptables -A INPUT -i eth0 -d 202.228.202.2 -p udp --sport 53 --dport 1024:65535 -j ACCEPT iptables -A INPUT -j LOG --log-prefix "### INPUT ###" iptables -A FORWARD -j LOG --log-prefix "### FORWARD ###" これをLinuxの/rootに作成したbinフォルダにフロッピーでコピーしました。 ファイル名をfilterにしたので、[root@linux root]# filter とし、Enterとし、 スクリプトを実行して設定を反映させようとしました。 しかし、: bad interpreter: そのようなファイルやディレクトリはありません と出てしまいます。 何が足りないのでしょうか?

  • iptablesの設定でINPUTが制限されない

    iptablesをさわっています。80番ポートのみあけたいのですが、80番以外も外部からアクセスできてしまいます。 iptables -P FORWARD DROP iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT FILTERNAME=CKFILTER TARGET=CKFILTERED iptables -A $FILTERNAME -s 58.6.0.0/17 -j $TARGET iptables -A $FILTERNAME -s 58.6.128.0/17 -j $TARGET iptables -A $FILTERNAME -s 58.7.0.0/16 -j $TARGET iptables -A $FILTERNAME -s 58.14.0.0/15 -j $TARGET iptables -A $FILTERNAME -s 58.16.0.0/16 -j $TARGET iptables -A $FILTERNAME -s 58.17.0.0/17 -j $TARGET iptables -A CKFILTER -j ACCEPT iptables -A CKFILTERED -j LOG --log-prefix "Reject-TCP " iptables -A CKFILTERED -j DROP iptables -A INPUT -p tcp -m state --state NEW -j CKFILTER iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT どこが間違っているのか見つけられず困っています。