Bir IP'nin Fail2Ban ile Düzgün bir şekilde nasıl engellenmesi


200

Bir sunucuda Fail2Ban kullanıyorum ve bir IP'nin düzgün şekilde nasıl kaldırılacağını merak ediyorum.

IPTables ile doğrudan çalışabileceğimi biliyorum: iptables -D fail2ban-ssh <number>

Fakat bunu yapmanın bir yolu yok fail2ban-clientmu?

Kılavuzlarda şöyle birşeyler devletler: fail2ban-client get ssh actionunban <IP>. Ama bu işe yaramıyor.

Ayrıca, /etc/init.d/fail2ban restartlistedeki tüm yasakları kaybedeceğinden de istemiyorum .

Yanıtlar:


278

V0.8.8 öncesi Fail2Ban ile:

fail2ban-client get YOURJAILNAMEHERE actionunban IPADDRESSHERE

Fail2Ban v0.8.8 ve üstü ile:

fail2ban-client set YOURJAILNAMEHERE unbanip IPADDRESSHERE

Zor kısım doğru hapishaneyi bulmak:

  1. iptables -L -nKural adını bulmak için kullanın ...
  2. ... sonra fail2ban-client statusgerçek hapis isimlerini almak için kullanın . Kural adı ve hapishane adı aynı olmayabilir, ancak hangisinin hangisiyle ilgili olduğu açıkça anlaşılmalıdır.

2
Eğer aşağıdaki hatayı 'Invalid Action name'
Morgan Courbet

32
Son sürümleri fail2banile kullanıyor olmalısınız fail2ban-client set JAIL_NAME unbanip 1.2.3.4.
Ocak’ta

1
Varsayılan hapishane adı nedir? /etc/fail2ban/jail.confbenim için çalışmıyor
Alex W.

1
Eğer IP aramaya eğer fail2ban günlüğüne hapis adını bulabilirsiniz
fred727

7
sshd benim için hapishane adıydı.
agustaf

82

V0.8.8 unbanipseçeneği actionunbanolduğu için (bu amaç için değil) setKomut tarafından tetiklenebilir , seçenekler listesine bakarsanız, sözdizimini göreceksiniz. Böylece olacak (yürekten, lütfen kontrol ediniz):

fail2ban-client set ssh-iptables unbanip IPADDRESSHERE 

daha genel:

fail2ban-client set JAILNAMEHERE unbanip IPADDRESSHERE

benim için çalışıyor


3
Unbanip komutu 0.8.8 sürümünde eklendi. En iyi çözüm, 0.8.8 veya üstü bir sürüm kullanıyorsanız.
Alexander Garden


Bu mevcut sürümler için doğru cevaptır. teşekkür ederim!
billynoah

"Geçersiz komut (önceden ayarlanmış bir eylem yok veya henüz uygulanmadı)"
Tom

Doğru jailname belirtmek gerektiğinde (örneğin sshd veya sshd-dos için, sizin fail2ban günlüğüne bakın)
serap

53

Etkileşimli modda SSH örneği.

bash yazınız:

fail2ban-client -i

daha sonra etkileşimli modda bir hapishanenin durumunu okuyun:

status sshd

alacaksınız:

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

daha sonra fail2ban interaktif moduna yazın:

set sshd unbanip 203.113.167.162

alacaksınız:

203.113.167.162

artık 203.113.167.162yasak listesinde yok demek .


3
Benim için hapishane ismi sshd(Ubuntu 16) idi
scipilot


21

Ukoda'nın cevabı yanlış:

fail2ban-clientParametresiz arayın ve olası komutların bir listesini görün:

get JAIL actionunban ACT             

Bu, JAIL eyleminin ACT unban komutunu alır.

Tanımladığınız hapishanenin eylem parametresini inceleyin, muhtemelen iptables bir eyleminiz olabilir ve belki de bazıları sendmail, whois veya her neyse. Bu nedenle, eyleminiz iptables ise, şöyle görünecek:

fail2ban-client get JAIL actionunban iptables

ve cevap:

iptables -D fail2ban-NAME -s IP -j DROP

Size sadece bir yasak için ne yazmanız gerektiğini gösterir. Unban komutunun kendisi yoktur.


3
Evet, bu benim için işe yaradı, SSH hapishanesinin yasaklı olması iptables -D fail2ban-ssh -s <IP> -j DROP. Ingo teşekkürler!
Deele

8

192.168.2.1 yasaklandıysa

sudo iptables -L

Hangi Zincirde yasaklandığını kontrol et

Zincir fail2ban-sasl (1 referanslar)

DAMLA hepsi - 192.168.2.1 her yerde

Sonra:

# 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

4

İlk önce hapishanenin adını öğrenmelisin. Listeyi alabilirsiniz (çoğu durumda sadece ssh hapishanesi olacaktır):

fail2ban-client status

Hapishane adını aldıktan sonra hangi IP'lerin göz ardı edildiğini kontrol edebilirsiniz.

fail2ban-client get ssh ignoreip

IP'niz dikkate almazsa listeden silebilirsiniz:

fail2ban-client set ssh delignoreip your_ip_address
vi /etc/hosts.deny

Ana bilgisayar girişinizi kaldırın:

fail2ban-client reload

2
Yoksayma listesi, hiçbir zaman yasaklanmayan bir IP listesidir. Bu, OP'nin bir IP'yi kaldırmak istediği liste olan şu anda yasaklanmış IP'lerin listesi ile tamamen ilgisiz.
JLH

3

Fail2ban v.0.8.6 kullanarak:

$ 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

Bu, hosts.deny'nin kullanılan eylem olduğunu varsayar .... Fakat eski sürümlerde IP dengesizliği yöntemini değiştirmeye çalışan şeylerden daha da yararlıdır actionunban...
Gert van den Berg

delignoreipEylem olduğu değil o göz ardı IP (yasak olsun asla yani IP) listesinden bir IP kaldırıyor, bir yasak bir IP çıkarmadan.
Tonin

2

maalesef, 0.8.2 versiyonuyla fail2ban-client komutu

fail2ban-client get jail actionunban ipaddress

çalışmıyor. Sorunu çözmek için en iyi seçenek fail2ban'ı en son sürüme yükseltmek ve yeni seçenek kullanmaktır:

unbanip



0

Sürüm v0.10.2 kullanıyorsanız:

sudo fail2ban-client unban YOUR_IP_ADDRESS

Bu yardımdan:

unban <IP> ... <IP> unbans <IP> (in all jails and database)

Benim durumumda, ssh istemcisi yanlış şifre ile tekrar tekrar giriş yapmaktan dolayı yasaklandığımda çalışmaya başladı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.