ファイアウォールを使用してすべての着信トラフィックを一時的に拒否

ファイアウォールを使用してすべての着信トラフィックを一時的に拒否

私はファイアウォールと同等のものを探していますufw default deny。これは、SSHを介して新しいサーバーにログインした後にシステムを更新し、セキュリティを確保する時間を確保するために、着信するすべての新しい接続をブロックするアイデアです。ファイアウォールでCentOS7を使用しています。

答え1

この観点からサーバー障害後より高いレベルのトラフィック制限「豊富な」ルールが必要です

すべての IPv4 トラフィックを削除するためにデフォルトゾーンに作成された豊富なルールを適用するには、次の手順を実行します.

firewall-cmd --zone=$(firewall-cmd --get-default-zone) \
  --add-rich-rule='rule family=ipv4 source address=0.0.0.0/0 drop'

これはufw default deny動作に似ています。代わりに、ICMP拒否メッセージを送信するdropに変更しますreject。上記の規則は、IPv6用のIPv4にのみ適用されます。

firewall-cmd --zone=$(firewall-cmd --get-default-zone) \
  --add-rich-rule='rule family=ipv6 source address=::/0 drop'

調査すると iptables に項目が追加されます。後ろに既存のSSHセッションが破壊されないように、「関連して既に確立された」接続を受け入れます。私のテストでは、結果のiptables "chain"(デフォルト領域 "public"の場合)は次のようになります。

INPUT -> INPUT_ZONES -> IN_public -> IN_public_deny

更新プロセス中に再開するには、この--permanentフラグを追加してください。

更新プロセス中に再起動したくない場合は、このフラグを使用してください。このフラグは、それぞれ「5秒」、「10分」、「15時間」を意味する、またはなど--timeoutの値を受け入れます。これらのルールは、このタイムアウト後に削除されます。5s10m15h

追加したルールを削除するには、firewall-cmd以前と同じように実行しますが、IPv4を例にしてください--add-rich-rule--remove-rich-rule

firewall-cmd --zone=$(firewall-cmd --get-default-zone) \
  --remove-rich-rule='rule family=ipv4 source address=0.0.0.0/0 accept'

引用:http://www.firewalld.org/documentation/man-pages/firewalld.rich言語.html

関連情報