それはどのように理解するかについてですチェーンiptables
これは、OpenWrt(ルーターデバイス用のシンLinux)を実行している一般的なホームルーターの基本構成にありますが、特定のシステムに限定されない可能性があります。
ここではINPUT
メインチェーンに焦点FORWARD
を当て、OUTPUT
テーブル、そして表の合計ですPREROUTING
。POSTROUTING
nat
iptables -L -t filter
多くのルールを見せてください。脅威が少なくなり、理解を妨げる部分を把握しようと、以下の出力を並べ替えました。
filter
テーブルには、出力の上部に表示される3つの組み込みチェーンがあります。 (これは-v
私が見つけたので特に指摘します。あまり混乱しない.)
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
1260 133K ACCEPT all -- any any anywhere anywhere ctstate RELATED,ESTABLISHED
8 544 ACCEPT all -- lo any anywhere anywhere
787 41632 syn_flood tcp -- any any anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN
13012 1249K input_rule all -- any any anywhere anywhere
13012 1249K input all -- any any anywhere anywhere
Chain FORWARD … # not considering this chain here
Chain OUTPUT … # not considering either
ご覧のように、集中するために、およびFORWARD
参照のチェーンをカットしました。 (他の2つも同様の方法で構築されているので、どちらかを選択することもできます。)OUTPUT
INPUT
INPUT
ACCEPT
5つのルールを指定するポリシーがあります。最初の3つは私には明らかです。まず、「与えられたもの」または「関連するもの」を受け入れます。 (たとえば、送信したHTTPまたはDNS要求への応答を受け入れます。)数秒後にループバックデバイス()に送信されたすべてを受け入れます127.0.0.1
。 (これはローカルホスト自体からのみ来ることができます。私はそれがうまくいくことを望んでいます。そうでない場合は意味がありません。)第三に、Flood Protectionがあります。 (これにより特定の攻撃を防ぐことができます。)
Chain syn_flood (1 references)
pkts bytes target prot opt in out source destination
787 41632 RETURN tcp -- any any anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN limit: avg 25/sec burst 50
0 0 DROP all -- any any anywhere anywhere
input
ただし、と呼ばれる2つのチェーンに分岐する2つの規則がありますinput_rule
。問題はなぜ2つのルールがあり、どのルールを何に使用するのですか?
これらのルールのジャンプスタックをさらに詳しく見てみましょう。
Chain input_rule (1 references)
pkts bytes target prot opt in out source destination
ここにはまだ何もありません。これはルールを追加することです。しかし、どのようなルールがありますか?
Chain input (1 references)
pkts bytes target prot opt in out source destination
6315 482K zone_lan all -- br-lan any anywhere anywhere
6697 767K zone_wan all -- pppoe-wan any anywhere anywhere
さて、ここには機能があり、LANとWANにさらに移動できます。これはホームルータに適しています。
Chain zone_lan (1 references)
pkts bytes target prot opt in out source destination
6315 482K input_lan all -- any any anywhere anywhere
6315 482K zone_lan_ACCEPT all -- any any anywhere anywhere
Chain zone_wan (1 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT udp -- any any anywhere anywhere udp dpt:bootpc
0 0 ACCEPT icmp -- any any anywhere anywhere icmp echo-request
6697 767K input_wan all -- any any anywhere anywhere
6697 767K zone_wan_REJECT all -- any any anywhere anywhere
ご覧のとおり、これらの各ルールはより多くのカスタムルールに移動します。
Chain input_lan (1 references)
pkts bytes target prot opt in out source destination
Chain zone_lan_ACCEPT (2 references)
pkts bytes target prot opt in out source destination
4 1322 ACCEPT all -- any br-lan anywhere anywhere
6315 482K ACCEPT all -- br-lan any anywhere anywhere
目的は何ですかinput_lan
?別の可能性は、パケットを受け入れることです。しかし、その戦略がINPUT
何であるか疑問に思います。ACCEPT
しかし、ACCEPT
ここで繰り返すのはなぜですか?
今WANから入ります。上にスクロールすると、一部のUDPおよびICMPコンテンツが許可されていることがわかります。これはDHCPで動作し、基本的にping
非常に明確です。あまり明白ではないのは、部分的に空のものは次の規則に従うことです。
Chain input_wan (1 references)
pkts bytes target prot opt in out source destination
同じ問題がありますinput_lan
。
Chain zone_wan_REJECT (2 references)
pkts bytes target prot opt in out source destination
0 0 reject all -- any pppoe-wan anywhere anywhere
6697 767K reject all -- pppoe-wan any anywhere anywhere
OK、これはWANの入力です(設定されていないか関連していません)。はい、拒否したい場合があります。今ここには2つの拒否があります。 1 つはソケットを閉じようとする TCP 接続試行 ( tcp-reset
) で、もう 1 つはicmp-port-unreachable
ICMP メッセージに対する ICMP 応答 ( ) です。 )(考えるping
)。
Chain reject (5 references)
pkts bytes target prot opt in out source destination
595 31817 REJECT tcp -- any any anywhere anywhere reject-with tcp-reset
4858 582K REJECT all -- any any anywhere anywhere reject-with icmp-port-unreachable
最後はすべてを網羅することです。したがって、ここでは何も許可されません。
最後に、これはテーブルに埋め込まれたチェーンで参照されていないテーブルで見つかった他のチェーンのリストですfilter
。完全性のために同様の構造を持っているようです。INPUT
net
# other chains, not reached from the INPUT chain, so truncated and moved here
Chain forward (1 references)
Chain forwarding_lan (1 references)
Chain forwarding_rule (1 references)
Chain forwarding_wan (1 references)
Chain nat_reflection_fwd (1 references)
Chain output (1 references)
Chain output_rule (1 references)
Chain reject (5 references)
Chain zone_lan_DROP (0 references)
Chain zone_lan_REJECT (1 references)
Chain zone_lan_forward (1 references)
Chain zone_wan_ACCEPT (2 references)
Chain zone_wan_DROP (0 references)
Chain zone_wan_forward (1 references)
それでは。長すぎる投稿を投稿して申し訳ありません。その過程でいくつかの質問がありました。どのように簡単で短く表現するのか分かりません。このiptables
構成は、あちこちに不明瞭な詳細があるため、習得するのは簡単ではありません。これを明確にし、根拠を説明できることを願っています。関心をお寄せいただきありがとうございます。
ベストアンサー1
これは懸念事項の明確な分離です。 WANのアクセスルールは、LANのアクセスルールとは異なる必要があります。
デフォルト設定では、ネットワークで必ずしも利用できないサービスの受け入れ規則は提供されません。通常、ほとんどのユーザーはインターネットにサービスを提供しないでください。適切なルールセットに適切なルールを追加すると、サービスが有効になります。 OpenWrt Webインターフェースは、ドロップダウンメニューからヘルプを提供する必要があります。
これShorewall Basic 2インターフェースファイアウォール文書化は、何が起こっているのか、何が起こるのかについての良い理解を提供しなければなりません。 OpenWrtファイアウォールをShorewall-liteファイアウォールに置き換えることは可能ですが、デフォルトのファイアウォールの場合は既存のファイアウォールで十分です。一部のパッケージはデフォルトのファイアウォールを使用していると仮定していますが、そうでない場合は少し作業が必要です。