web-dev-qa-db-ja.com

CentOS 7でFirewall-cmdを使用してアドレス固有の制限を作成する

特定のネットワークが1つのサービスのみにアクセスし、1つのゾーンのすべてのサービスですべてを許可するように、firewall-cmdツール(新しいfirewalld)を使用してファイアウォールルールを作成するにはどうすればよいですか。

例えば:

インターフェースeno1が1つだけあり、それはパブリックゾーンに関連付けられています。そのゾーンでHttpおよびhttpsサービスが有効になっています。そのゾーンでsshアクセスを有効にしたいが、ネットワークへのsshアクセスを制限したい(例:100.0.0.0/8)

これを行う最良の方法は何ですか?

5
lawrence Da

答えを探しましたが、自分の質問に関連する多くの質問が見つかりました。

多くの勉強の後、私は回避策を思いつきました。これが私がやったことです

パブリックゾーンにインターフェースを追加しました

その後

Sudo firewall-cmd --permanent --zone=public --add-service=http 
Sudo firewall-cmd --permanent --zone=public --add-service=https
Sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="x.x.x.x/x" service name="ssh" log prefix="ssh" level="info" accept' 
Sudo firewall-cmd --reload

注:送信元アドレスは範囲である可能性があります。ネットワークマスクを指定するだけ

Sshはpublicゾーンに追加されなかったため、デフォルトでブロックされます。リッチルールは、そのソースIPに対してのみ有効にします。

より良い解決策を追加してください。

6
lawrence Da