web-dev-qa-db-ja.com

firewalldですべてのポートを特定のIPに開く

私はRed Hat 7マシンを使用していて、ファイアウォールで特定のIPへのすべてのポートを開く必要があります。

私はこのコマンドを試しました:

firewall-cmd --permanent --zone=public --add-rich-rule='   rule family="ipv4"   source address="64.39.96.0/20"   port protocol="tcp" port="*" accept'

しかし、*に対して無効なポートエラーが発生します。

誰かがこれを正しく行う方法を知っていて、教えてもらえますか?

4
user99201

これには、firewalldzoneを使用します。ゾーンは、インターフェースまたは送信元IPアドレスのいずれかで指定できます。

実際、デフォルトでは、すべてのトラフィックを受け入れるゾーンがすでに存在し、trustedという名前が付けられています。ただし、デフォルトでは、このゾーンには何もありません。したがって、ゾーンを作成する必要はなく、trustedゾーンにIPアドレスを追加するだけです。

firewall-cmd --zone=trusted --add-source=64.39.96.0/20

CIDR範囲に加えて、ipset:で始まる単一のIPアドレスまたはipset名を指定できます。

この後、指定されたアドレスからのすべてのトラフィックが任意のポートで許可されます。 --permanentを追加してコマンドを繰り返すか、firewall-cmd --runtime-to-permanentを実行して、 永続化する を忘れないでください。

7
Michael Hampton

私の知る限り、ポートは単一のポート番号にすることができます123またはポート範囲123-456および*は有効な入力ではありません。

Not特定のポート番号/範囲を指定すると、一致しますanyポート。

0
HBruijn