Centos7でファイアウォールを使用してポートへのアクセスを削除する方法


12

firewall-cmdを使用して公開用にポートを開いていた場合、このSITEで答えを見つけた特定のIPにこのポートを制限したかったのです。

以下を使用して開きました。

$ firewall-cmd --permanent --zone=public --add-port=10050/tcp
$ firewall-cmd --reload

ここで、見つけた情報の情報を使用して、このポートへのアクセスを特定のIPアドレスに制限したいと考えました。最初にこのポートをパブリックアクセスから削除する必要がありますか?

または、次のように新しいルールを追加するだけで問題を処理できますか?

$ firewall-cmd --new-zone=special
$ firewall-cmd --permanent --zone=special --add-rich-rule='
  rule family="ipv4"
  source address=”123.1.1.1"
  port protocol="tcp" port="10050" accept'

私は次を試しました:

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --reload

しかし、次を実行すると:

$ firewall-cmd --list-ports 

10050/tcp まだ表示されます。

私はサーバー側の設定にあまり慣れていないことを理解してください。

Soultion:--runtime-to-permanentを忘れないでください

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --runtime-to-permanent
$ firewall-cmd --reload 

ああ、忘れた --permanent
MCV

1
これを回答として投稿する(および受け入れる)必要があります。あなた自身の答えを受け入れることは完全に受け入れられ、このように質問は解決済みとしてマークされます。
ジェラルドシュナイダー

1
ファイアウォールルールを間違えた場合に備えて、を使用しないことを--permanentお勧めします。--permanent自分を使用してロックアウトした場合、回復する方法がないため、戻るのは非常に困難です。代わりに、を使用しないでください。--permanentルールに満足したら、を使用firewall-cmd --runtime-to-permanentしてルールをコミットします。ロックアウトされた場合、ファイアウォールをリロードするか再起動します。
マイケルハンプトン

それで、これfirewall-cmd --runtime-to-permanentは後に適用することができfirewall-cmd --reloadますか、それを完全に置き換えますか?私は間違いなくこれを試してみるつもりです。
mcv 16

回答:


27

解決: --runtime-to-permanentを忘れないでください

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --runtime-to-permanent 
$ firewall-cmd --reload 

1
私はまだ従わなければならなかったsystemctl restart firewalld
JaKu

これは私にはうまくいきませんでした。systemctlはバージョンで219あり、CentOS 7.5 64bit上のfirewall-cmdバージョン0.5.3です。
プレド

4
# firewall-cmd --zone=public --remove-port=12345/tcp --permanent
# firewall-cmd --reload

12345を削除するポートに置き換えます。


1
私はどこかでFedoraのドキュメントで--permanent、最初のオプションとして置くことを提案していることを読みました。しかし、はい、--permanentキーです。
WesternGun

通常は、何らかの理由でルールが正しくない場合に、ルールを永続的にせずに再起動できるようにするための最後のオプションとして保持します。それが私が望むことをするなら、私は上向き矢印と--permanent最後に追加することができます。
ジャスティンE

0

次の手順に従ってください、あなたは大丈夫です:

  1. $ firewall-cmd --zone = public --remove-port = 10050 / tcp
  2. $ firewall-cmd --runtime-to-permanent
  3. $ firewall-cmd --reload
  4. $ systemctl restart firewalld
  5. $ firewall-cmd --zone = public --list-ports

firewalldを再起動する必要はないと思います。firewalld実際には、設定を変更するたびにすべてのサービスを再起動することを避けるように設計されています。
-vdegenne
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.