eth0
一部のホストネットワークA(インターフェイスの背後)からのトラフィックが私のcentos 7ボックスを介してネットワークB(後ろの一部のホスト)に到達することを許可するにはどうすればよいですかeth1
?
ネットワークA:1.1.1.0/24
ネットワークB:2.2.2.0/24
ファイアウォールインターフェース:
イーサネット1:1.1.1.1
イーサリアム2:2.2.2.1
ソースホスト:1.1.1.30
目的地:2.2.2.45 port 80/tcp and 2.2.2.46 port 80/tcp
転送を有効にして無効にするiptables
と、Webサーバーにアクセスできます1.1.1.30
。
どうやってこれを達成できますかfirewall-cmd
?
答え1
FirewallDとIPTABLESサービスは同時に共存できないため、まずIPTABLESサービスを無効にする必要があります。
IPTABLES を無効にするには、次を実行します。# systemctl stop iptables
次に、FirewallDサービスが有効になって開始されたことを確認します。
# systemctl start firewalld && systemctl enable firewalld
デフォルトでは、ファイアウォールで使用できる特定のネットワーク領域に使用可能な各インターフェイス(この場合はeth0とeth1)を割り当てる必要があります。
仮定:eth0は内部領域(ネットワーク-A)とeth1は公開領域(ネットワーク-B)。これができるはずです。
# firewall-cmd --permanent --zone=internal --add-interface=eth0
# firewall-cmd --permanent --zone=public --add-interface=eht1
これでファイアウォールの設定が完了しました。たとえば、ルール設定に関連してホストのhttpトラフィックが常駐することを許可します。ネットワーク-A内部領域にインバウンドルールを設定する必要があります。
# firewall-cmd --permanent --zone=internal --add-service=http
また、ネットワークBに送信されたときにIPアドレスを変換するには、パブリックエリアで仮面舞踏会を有効にする必要があります。
# firewall-cmd --permanent --zone=public --add-masquerade
最後に変更を適用するには、FirewallDデーモンを再ロードしてください。
# firewall-cmd --reload
内部領域のルールなどの領域のルールの一覧表示
# firewall-cmd --zone=internal --list-all