私はiptables
recent
モジュールを使用しています:
-A INPUT -m recent --rsource --name PORTSCAN --set -j DROP
上記の行は問題のIPアドレスを/proc/net/xt_recent/PORTSCAN
。
n
これで、このリストを定期的にチェックし(cron操作)、数時間経過したアイテムを削除する方法を探しています。
私が使用しているxt_recent.ip_pkt_list_tot=1
オプションrecent
。これは、私がパケットを見たときにそれを複数回捕捉しないことを意味します。私はパケットを最後に見た時間だけを保持します。
リストは/proc/net/xt_recent/PORTSCAN
次のとおりです。
src=185.242.5.46 ttl: 240 last_seen: 4312349727 oldest_pkt: 1 4312349727
src=184.100.29.188 ttl: 57 last_seen: 4312673918 oldest_pkt: 1 4312673918
src=184.157.25.107 ttl: 57 last_seen: 4312086204 oldest_pkt: 1 4312086204
n
このリストを定期的に「削除」するには、数時間未満の項目しか残らないようにするにはどうすればよいですか。
iptables
これを行う方法はありますか?または、いくつかのカスタムスクリプトを使用して実行する必要がありますか?
答え1
--reap
これがまさにあなたが探しているようです。iptables 拡張マニュアルページ、次の部分に関する部分recent
:
--reap
このオプションはでのみ利用可能です--seconds
。このオプションを使用すると、最後に指定された時間(秒)より古いエントリが消去されます。
仕組みは次のとおりです。Linuxカーネルの関連ソースコード部分。