
2 つの NIC (eth0 と eth1) を備えた CentOS 7 システムがあります。
NIC 構成:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.43.96.210 netmask 255.255.255.192 broadcast 10.43.96.255
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 146.81.34.150 netmask 255.255.255.128 broadcast 146.81.34.255
現在のルーティング テーブル:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.43.96.193 0.0.0.0 UG 100 0 0 eth0
10.43.96.192 0.0.0.0 255.255.255.192 U 100 0 0 eth0
146.81.34.0 0.0.0.0 255.255.255.128 U 0 0 0 eth1
146.81.34.128 146.81.34.254 255.255.255.128 UG 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1
NIC eth0 は 10.43.96.x ネットワークに接続されており、デフォルト ゲートウェイ (10.43.96.193) は 10.43.96.x ネットワーク内のコンピューターからパブリック インターネットへの送信接続に使用されます。
NIC eth1 は 146.81.34.128/25 ネットワーク (NIC IP 146.81.34.150、ネットマスク 255.255.255.128、GW 146.81.34.254、これらは顧客によって定義されます) に接続されており、IP 146.81.34.11 のサーバーにアクセスする必要があります。
146.81.0.0/16 ネットワークの他のサーバーは、ping (ゲートウェイ 146.81.34.254 経由) を使用して私のサーバー (146.81.34.150) に到達する必要があります。たとえば、146.81.23.95 のサーバーは私のサーバーに ping する必要があります。そのネットワークのネットワークとルーティング構成の詳細についてはわかりませんが、ゲートウェイ 146.81.34.254 を使用するように言われました。
現在の問題:
顧客は、146.81.0.0/16 ネットワーク (146.81.xx) の他のサーバーは 146.81.34.128/25 ネットワークに正しくアクセスできる (したがって、ping で 146.81.34.150 のサーバーにアクセスできる) と言っています。これは問題ありません。
ただし、146.81.0.0/16 ネットワーク内の他のサーバーは、デフォルト ゲートウェイ (10.43.96.193) を使用して、私のサーバー経由で他の IP アドレス (146.81.34.128/25 以外のネットワーク内) にアクセスしようとしますが、これは防止されるはずです。
質問:
146.81.0.0/16 ネットワーク内のサーバーからこのサーバー経由で転送される接続を防ぐにはどうすればよいですか? サーバーのデフォルト ゲートウェイ (10.43.96.193) は使用しないでください。
答え1
146.81.0.0/16 ネットワーク内のサーバーからこのサーバー経由で転送される接続を防ぐにはどうすればよいですか?
最も簡単な選択肢は完全にsysctl 経由で IP 転送を無効にします。
net.ipv4.conf.all.forwarding=0
net.ipv6.conf.all.forwarding=0
もしいくつかの特定の種類のトラフィックはサーバー経由で転送する必要がありますが、他の種類のトラフィックはサーバー経由で転送する必要はありません。ファイアウォールを使用します。必要なトラフィックを受け入れ、残りを拒否 (またはドロップ) するルールを追加するだけです。
- iptables には
FORWARD
まさにこの目的のためのチェーンがあります。 - nft にも同様に
forward
フックがあります。