回答:
バージョン0.10.0 fail2ban-client
では、unban
次の2つの方法で使用できるコマンドを備えています。
unban --all unbans all IP addresses (in all
jails and database)
unban <IP> ... <IP> unbans <IP> (in all jails and
database)
また、restart <JAIL>
、reload <JAIL>
およびreload
コマンドは、今も持っている--unban
オプションを選択します。
fail2banはiptables
トラフィックをブロックするために使用します。現在ブロックされているIPアドレスを表示するには、次のように入力します。
iptables -L -n
そして、名付けられ、様々なチェーンを探しfail2ban-something
、something
fail2banの刑務所へのポイントは、(例えば、Chain f2b-sshd
刑務所を参照sshd
)。<IP>
特定のjailの単一のIPアドレスのブロックのみを削除する場合<JAIL>
、fail2banは独自のクライアントを提供します。
fail2ban-client set <JAIL> unbanip <IP>
または、行番号を使用できます。最初に、iptables
行番号を使用してルールをリストします。
iptables -L -n --line-numbers
次に使用できます
iptables -D fail2ban-somejail <linenumber>
テーブルから1行削除します。私の知る限り、行番号の範囲を選択するオプションがないため、このコマンドをforループでラップする必要があると思います。
for lin in {200..1}; do
iptables -D fail2ban-somejail $lin
done
ここで私は200番を作りました。を使用してコマンドの独自の出力を確認--line-numbers
し、最後の行(でRETURN
)が残ることに注意してください。カウントダウンの理由については、以下の@roaimaのコメントを参照してください。
echo {5..1}
結果はになり5 4 3 2 1
ます。
すべてのIPの禁止を解除する最良の方法は、禁止時間を1秒に設定すると、すべてのIPがすぐに解放されることです。
fail2ban-client set JailName bantime 1
その後、適切な禁止期間を設定し直すことができます。
fail2banがあなたのためにアンバンをするようにした方が良いです。自分でiptablesを手動で編集しないでください。
fail2ban-client status
最新fail2ban-client
(0.10)がありunban -all
、コマンドを。刑務所は個別に「再開」でき、事実上禁止を解除できます。
古いバージョンを使用している場合、このトリックは自動一時禁止で機能する可能性があります。禁止を含むjailを削除し、fail2banを再起動して(現在は空の)jailを再作成します。
$ fail2ban-client stop sshd
Jail stopped
$ systemctl restart fail2ban
iptable configをファイルに保存します
$ iptables-save > iptables.conf
設定をiptablesに戻すよりも、好きなエディターで編集してください
$ iptables-restore < iptables.conf
iptables内に構成を保存することを忘れないでください。再起動時にピックアップされます。
$ service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
fail2ban刑務所全体を適切な方法で禁止解除するための単純なonelinerがあります:
iptables -L f2b-recidive -n | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | grep -v 0.0.0.0 | xargs -n 1 fail2ban-client set recidive unbanip
注:iptablesコマンドは、jail名の前に「f2b-」プレフィックスを取り、「fail2ban-client」は実際のjail名を取ります
fail2ban
動作方法により、考えられる解決策は2つだけです。
fail2ban
jail を含むファイアウォール構成スクリプトを作成し、ファイアウォールを再起動します。これは、私がssh刑務所のすべてのIPアドレスの禁止を解除するために使用しているスクリプトです(sshdの出現を必要な刑務所の名前に置き換えるだけです。例えばmysqld-auth)
#!/bin/bash
j=$(iptables -L f2b-sshd | grep -c 'REJECT')
for ((i=1;i<=j;i++))
do
fail2ban-client set sshd unbanip $(fail2ban-client status sshd | grep 'Banned IP list:' | cut -c23-)
done