Firewalld では、次のルールを作成できます。 ( note the invert="True"
)
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.0/24" invert="True" drop'
特定のソースに対してゾーンの一部として処理する必要があることを指定できます。
firewall-cmd --permanent --zone=external --add-source=ipset:knowns
これを元に戻して、ipsetにないすべてのIPを他の指定されたゾーンの一部と見なすことはできますか?マニュアルページを見ましたが、これが可能かどうかはわかりません。
答え1
すべての「無効な」IPアドレス/範囲を含むipset(firewall-cmdを使用)を生成することで、この動作を模倣できます。次に、このIPsetのみをソースとして使用してファイアウォールゾーンを追加します。
# firewall-cmd --permanent --zone=axisofevil --add-source=ipset:roguenations
ipset "roguenations" から発生するすべてのトラフィックは、"axisofevil" ゾーンのすべてのサービスにアクセスできます。サービスをまったく許可しないと、そのクライアントはどのサービスも受け取ることができません。
すべての「間違った」IPv6アドレス/範囲を含む他のinet6タイプゾーンを追加することを忘れないでください。
# firewall-cmd --permanent --new-ipset=roguenations6 --type=hash:net --family=inet6
ヒント:たとえば、地理的IPデータベース全体を使用できます。https://www.ip2location.com/free/visitor-blockerCIDR形式でipsetに追加する(firewall-cmd --new-ipset-from-fileを使用)または--ファイルから項目を追加します..:)
デフォルトでは、オンになっている「AllowZoneDrifting」を無効にすることをお勧めします。
ファタイ