正直なところ、回避策がわからず、iptablesを頻繁に使用しないため、解決できない問題があります。
インターネットアクセス用のゲートウェイを表し、(WAN IP)123.123.123.0/30 - > 234.234.234.0/23(内部)ネットワークにトラフィックを転送するデフォルトのLinuxルーターがあります。内部ネットワーク234.234.234.0内には、3つのインターフェースを備えた別のLinuxルーターがあります。明確にするために、234.234.234.254/23 eth0、192.168.1.1/24 eth1、および172.16.0.1/24 eth2と言えます。したがって、回路図は次のようになります。
WAN:123.123.123.2 (eth0) -> (eth1) LAN:234.234.234.1/23 // (eth2) LAN:234.234.234.2 -> (eth0) LAN:192.168.0.1/21 および:e1 0.1/24
明らかに、123.123.123.1/30を介してデフォルトルータ0.0.0.0 0.0.0.0でデフォルトルートを設定するだけです(インターフェイスはISPゲートウェイです)。
eth0とeth1でSNATを設定しました。それとも234.234.234.254/23 eth2を介して(192.168.1.0/24および172.16.0.0/24)と言うべきですか?
例:
iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 234.234.234.2
今、両方のプライベートネットワーク上のすべてのトラフィックは234.234.234.254を通過します。ご希望のインターネットにアクセスできますが、問題は、プライベートネットワークで望ましくない234.234.234.0/23ネットワークにもアクセスできることです。トラフィック全体を外部に分離したいのですが、234.234.234.0/23 ネットワーク上のどのコンピュータにも接続できません。
どうすればいいですか?
発信トラフィックを制限するためにどのようなルールがありませんか?それとも、「インターネット」アクセスのみを許可し、「イントラネット」(ネットワーク234.234.234.0/23)は許可しないと言うべきですか?
答え1
filter/FORWARD
前述のように、nat/POSTROUTING
パケットは以前のルールに対して評価されます。このNetfilter回路図ではそのため、FORWARD
変更されていない送信元IPアドレスは引き続き表示されます。したがって、複雑さや特別な設定、NATについて考える必要はありません。 2番目のルーターに追加されたファイアウォールルールは簡単です。
iptables -A FORWARD -s 192.168.1.0/24 -d 234.234.234.0/23 -j REJECT
iptables -A FORWARD -s 172.16.0.0/24 -d 234.234.234.0/23 -j REJECT
考慮すべきさまざまなバリエーションがあり、ここではすべて可能です。たとえば、に置き換えること-s 192.168.1.0/24
ができます。-i eth0
-s 172.16.0.0/24
-i eth1
反対方向はNATによって「保護」される。それにもかかわらず、それを実施し、内部ネットワークからプライベートネットワークを保護するためには、より多くのルールを追加する必要がありますが、パブリックトラフィックを追跡してからシナリオを簡素化することができる実際のステートフルルールセットを検討する方が良いでしょう。プライベートネットワークと内部ネットワーク間の特定のソースまたは宛先の一部の例外。詳細を確認してくださいはい 使用 状態を保存 ファイアウォール、または「stateful iptables」を検索してください(この例ではstate
モジュールは次のように交換されました。conntrack
基準寸法)。