OpenWrtでiptablesチェーン構成を理解する方法

OpenWrtでiptablesチェーン構成を理解する方法

それはどのように理解するかについてですチェーンiptablesこれは、OpenWrt(ルーターデバイス用のシンLinux)を実行している一般的なホームルーターの基本構成にありますが、特定のシステムに限定されない可能性があります。

ここではINPUTメインチェーンに焦点FORWARDを当て、OUTPUTテーブル、そして表の合計ですPREROUTINGPOSTROUTINGnat

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つも同様の方法で構築されているので、どちらかを選択することもできます。)OUTPUTINPUT

INPUTACCEPT5つのルールを指定するポリシーがあります。最初の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-unreachableICMP メッセージに対する 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。完全性のために同様の構造を持っているようです。INPUTnet

# 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ファイアウォールに置き換えることは可能ですが、デフォルトのファイアウォールの場合は既存のファイアウォールで十分です。一部のパッケージはデフォルトのファイアウォールを使用していると仮定していますが、そうでない場合は少し作業が必要です。

おすすめ記事