サーバーでFail2Banを使用していて、IPを適切に禁止解除する方法を知りたいです。
私はIPTablesを直接操作できることを知っています:iptables -D fail2ban-ssh <number>
しかし、fail2ban-client
でそれを行う方法はありませんか?
マニュアルでは、fail2ban-client get ssh actionunban <IP>
のように記載されています。しかし、それはうまくいきません。
また、リスト内のすべての禁止事項が失われるため、/etc/init.d/fail2ban restart
を使用したくありません。
V0.8.8より前のFail2Banの場合:
fail2ban-client get YOURJAILNAMEHERE actionunban IPADDRESSHERE
Fail2Ban v0.8.8以降の場合:
fail2ban-client set YOURJAILNAMEHERE unbanip IPADDRESSHERE
難しいのは、適切な刑務所を見つけることです。
iptables -L -n
でルール名を検索...fail2ban-client status
実際の刑務所名を取得します。ルール名と刑務所名は同じではない可能性がありますが、どちらがどれに関連しているかは明確でなければなりません。V0.8.8以降、unbanip
オプションがあります(actionunban
はこの目的には使用できません)。オプションのリストを見ると、set
コマンドによってトリガーできます。 、構文が表示されます。だからそれは(心で、確認してください):
fail2ban-client set ssh-iptables unbanip IPADDRESSHERE
より一般的な:
fail2ban-client set JAILNAMEHERE unbanip IPADDRESSHERE
私のために働く
インタラクティブモードのSSHの例。
bashと入力します。
fail2ban-client -i
次に、インタラクティブモードで、刑務所のステータスを読み取ります。
status sshd
あなたが得るでしょう:
Status for the jail: ssh
|- Filter
| |- Currently failed: 0
| |- Total failed: 6
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 1
|- Total banned: 2
`- Banned IP list: 203.113.167.162
次にfail2banインタラクティブモードで入力します。
set sshd unbanip 203.113.167.162
あなたが得るでしょう:
203.113.167.162
もう意味しない203.113.167.162
禁止リストにあります。
ウコダの答えは間違っています:
パラメータなしでfail2ban-client
を呼び出すと、可能なコマンドのリストが表示されます。
get JAIL actionunban ACT
これにより、JAILのアクションACTの禁止解除コマンドが取得されます。
定義したjailのactionパラメーターを調べてください。おそらくiptablesアクションがあり、おそらくsendmail、whoisなどのようなものがあります。したがって、アクションがiptablesの場合、次のようになります。
fail2ban-client get JAIL actionunban iptables
答えは次のとおりです。
iptables -D fail2ban-NAME -s IP -j DROP
それはあなたが禁止解除のために何を書かなければならないかをあなたに示すだけです。禁止解除コマンド自体はありません。
192.168.2.1が禁止されている場合
Sudo iptables -L
禁止されているチェーンを確認してください。
Chain fail2ban-sasl(1参照)
DROP all-192.168.2.1どこでも
次に:
# to view the proper command for un-banning
Sudo fail2ban-client get sasl actionunban
# actual command
iptables -D fail2ban-sasl -s 192.168.2.1 -j DROP
最初に刑務所の名前を取得する必要があります。あなたはリストを得ることができます(ほとんどの場合それはssh刑務所だけです):
fail2ban-client status
Jail名を取得したら、無視されているIPを確認できます。
fail2ban-client get ssh ignoreip
IPが無視リストにある場合は、次の方法で削除できます。
fail2ban-client set ssh delignoreip your_ip_address
vi /etc/hosts.deny
ホストエントリを削除します。
fail2ban-client reload
Fail2ban v.0.8.6の使用:
$ Sudo fail2ban-client status # to reveal your JAIL name (mine is ssh)
$ Sudo fail2ban-client set ssh delignoreip your_ip_address
$ Sudo nano /etc/hosts.deny # delete your ip address
$ Sudo fail2ban-client reload
残念ながら、fail2ban-clientのバージョン0.8.2では、次のコマンドを使用します。
fail2ban-client get jail actionunban ipaddress
実行されません。この問題を解決するには、fail2banを最新バージョンにアップグレードし、新しいオプションを使用するのが最適です。
unbanip
fail2ban-client set sshd unbanip ip_here
うまくいくでしょう。
IPが複数の刑務所にある場合、これは面倒になります。
すべての刑務所から192.168.1.2を削除するワンライナー:
for jail in $(fail2ban-client status | grep 'Jail list:' | sed 's/.*Jail list://' | sed 's/,//g'); do fail2ban-client set $jail unbanip 192.168.1.2; done
同じことを行うスクリプト https://Gist.github.com/yolabingo/c810db6fe7f8bfcb9eb4f6ffc531e474
バージョンv0.10.2を実行している場合:
Sudo fail2ban-clientがYOUR_IP_ADDRESSの禁止を解除しました
これはヘルプからです:
unban <IP> ... <IP> unbans <IP> (in all jails and database)
Sshクライアントが間違ったパスワードで繰り返しログインしたために禁止された可能性が最も高い場合に、私のケースで動作することを確認しました。