コマンド(IPと期間を指定)を起動するだけでIPアドレスをブロックするプログラムがDebianにありますか一時的に?
Iptables/ip6tablesだけでルールを作成できますが、手動で削除する必要があります。私もfail2banを使用していますが、fail2banルールのいずれも満たさない任意のIPアドレスをブロックすることはできないと思います。
Iptablesがそれに一致できるようにipsetを作成する必要があります。注timeoutは、デフォルトが期限切れにならないことを意味します。
ipset create temp_hosts hash:ip timeout 0
iptables -I INPUT 1 -m set -j DROP --match-set temp_hosts src
iptables -I FORWARD 1 -m set -j DROP --match-set temp_hosts src
セットが作成されたので、IPアドレスの追加を開始できます(タイムアウト単位:秒)。
ipset add temp_hosts 1.1.1.2 timeout 400
再起動後もこれらが必要な場合は、ルールを保存してロードする必要があることに注意してください。
ipset save -f /path/ipset.save
ipset restore -f /path/ipset.save
これらはcronまたはsystemdで自動化できます。
ダンのコメントに触発されたこのスクリプトを試してください。
#!/bin/bash
iptables -I INPUT -s $1 -j DROP
at ${2:-now+1hour} <<<"iptables -D INPUT -s $1 -j DROP"
/usr/local/sbin/blockip
として保存し、blockip 1.2.3.4
またはblockip 1.2.3.4 now+2hours
を実行します。デフォルトでは、IPは1時間ブロックされます。
REJECTセマンティクスが必要な場合は、DROPをREJECTに置き換えることができます。