インターフェイス固有のファイアウォールルール

インターフェイス固有のファイアウォールルール

私のLinux VMは複数のネットワークカード(eth0とeth1)で構成されています。今、NICではSSHを有効にし、eth0でのみHTTPSを有効にしたいと思います。そのゾーンを除くすべてのトラフィックをドロップするようにドロップゾーンをデフォルトに設定しました。

ただし、次のように公開領域にこの設定を追加すると、

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0 eth1
  sources:
  services: dhcpv6-client https ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules: 

これにより、2つのネットワークカードまたは2つのネットワークカードのいずれかでhttpsとsshが有効になります。 NICサービス関係を管理する方法はありますか?

ベストアンサー1

Firewalldは「ゾーン」の概念を使用してルールをインターフェイスにマッピングします。ゾーン(firewall-cmd --zone=public --add-service=http --permanent)にサービスを追加すると、そのゾーンのメンバーであるすべてのインターフェイスでサービスが許可されます。

インターフェイスごとに異なるルールを設定するには、別々のゾーンを作成する必要があります。

この記事マルチゾーン構成の例を含む、Linux Journalの記事は、このトピックに関する有用なリソースです。

たとえば、

  • その領域からeth1を削除しpublicてそこに移動しますinternal

    firewall-cmd --zone=internal --change-interface=eth1 --permanent
    
  • sshこの領域を許可しますinternal

    firewall-cmd --zone=internal --add-service=ssh --permanent
    
  • ファイアウォール構成を再ロードします。

    firewall-cmd --reload
    

internalpublic次に、必要な設定を達成するために、必要に応じてゾーンにサービスを追加および削除します。


または、比較的単純なファイアウォール構成がある場合は、ルールを手動で削除してfirewalld作成できます。iptables

おすすめ記事