web-dev-qa-db-ja.com

firewalldを使用してポートを完全にブロックするにはどうすればよいですか?

免責事項:firewalldを使用するのは初めてです。優しくしてください:)。


CentOSマシンを使用していて、firewalldを使用して次の要件を実装したい:

  • どこからでもポート1、2、3、4への接続を許可します。
  • IPアドレスIP1、IP2、IP3からのみポート5への接続を許可する
  • どこからでも、ポート6への接続を完全にブロックします。

だから私はこれをしました:

  • ポート1、2、3、4をpublicゾーンに追加しました
  • ポート5およびIPアドレスIP1、IP2、IP3をゾーンtrustedに追加しました

ゾーンは次のようになります。

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eno12345
  sources:
  services: ssh dhcpv6-client
  ports: 1/tcp 2/tcp 3/tcp 4/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

trusted (active)
  target: ACCEPT
  icmp-block-inversion: no
  interfaces:
  sources: IP1 IP2 IP3
  services:
  ports: 5/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

注:publicはデフォルトのゾーンです。

したがって、最初の2つのルールは正しく適用されているようです。

しかし、私は最終的なルールに行き詰まりました(ポート6を完全にブロックします)。私は複数の解決策を試しましたが、どれもうまくいかないようです。

1)。これを適用するにはどうすればよいですか?

2)。 firewalld構成で許可されていると明示的にリストされていなくても、ポート6を介して接続できるのはなぜですか? iptablesにもそれに関するルールは追加されていません。

2
Radu Murzea

いくつかの一般的なコマンドは以下のとおりです

firewall-cmd --list-ports
firewall-cmd --get-zones
firewall-cmd --zone=public --add-port=5000/tcp

その他のドキュメントや詳細については、こちらをご覧ください。 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Configuring_firewalld.html

2
asktyagi

私が解決した方法は、trustedゾーンにリッチルールを追加することです。

rule family="ipv4" port port="6" protocol="tcp" drop

私が知っていることから、豊富なルールが最初に適用されます。私の場合は正常に動作しているようです。

2
Radu Murzea