ファイアウォールですべての受信トラフィックを一時的に拒否する

ファイアウォールですべての受信トラフィックを一時的に拒否する

私は、firewalld に相当するものを探していますufw default deny。新しいサーバーに SSH 経由でログインした後、システムを更新して保護する時間を確保するために、すべての新しい着信接続をブロックしたいというのが私の考えです。私は、firewalld 付きの CentOS7 を使用しています。

答え1

このことからserverfault 投稿この高いレベルでのトラフィック制限は「豊富な」ルールが必要

すべての 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。上記のルールは IPv4 に固有のものです。IPv6 の場合は、以下を使用します。

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

調査してみると、iptablesにエントリが追加され、「RELATED および ESTABLISHED」接続を受け入れるように設定することで、既存の ssh セッションが中断されることはありません。私のテストでは、結果として得られる iptables の「チェーン」は次のようになります (デフォルト ゾーンが「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.richlanguage.html

関連情報