ipset エントリのタイムアウトを更新する方法を見つけようとしましたが、これまでのところうまくいきませんでした。ネイティブ ipset を使用する場合は、単に次のようにします。
$ ipset add foo 192.168.0.5 timout N -exist
しかし、マニュアル (man) によると、firewalld はこの機能を実装していないようですが、これは非常に便利で一般的な機能です。ip2ban は、firewalld ipset の実装をバイパスしてネイティブで使用するようです。試してみましたが、成功しませんでした。
ipset の作成:
$ ipset create foo hash:ip timeout 300
直接統治:
$ firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p TCP -m multiport --dports 22,443 -m set --match-set foo src -j ACCEPT
$ ipset add foo 192.120.11.1
https リクエストと ssh 接続の試行はホストへのルートがないためドロップされます。ファイアウォールを無効にすると、リクエストの送信と ssh への接続が成功します。
- デフォルトのゾーンを使用しています:
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
ファイアウォールコマンド --direct --get-all-rules: ipv4 フィルター 入力 0 -p TCP -m マルチポート --dports 22,443 -m set --match-set foo src -j ACCEPT
私が間違っているのは、firewalld でこれが可能かどうかです。
前もって感謝します