Cara Membatalkan Batalkan IP dengan benar dengan Fail2Ban

200

Saya menggunakan Fail2Ban di server dan saya ingin tahu bagaimana membatalkan IP dengan benar.

Saya tahu saya bisa bekerja dengan IPTables secara langsung: iptables -D fail2ban-ssh <number>

Tetapi apakah tidak ada cara untuk melakukannya dengan fail2ban-client?

Dalam manual itu menyatakan sesuatu seperti: fail2ban-client get ssh actionunban <IP>. Tapi itu tidak berhasil.

Juga, saya tidak mau /etc/init.d/fail2ban restartkarena itu akan menghilangkan semua larangan dalam daftar.

psp
sumber

Jawaban:

278

Dengan Fail2Ban sebelum v0.8.8:

fail2ban-client get YOURJAILNAMEHERE actionunban IPADDRESSHERE

Dengan Fail2Ban v0.8.8 dan yang lebih baru:

fail2ban-client set YOURJAILNAMEHERE unbanip IPADDRESSHERE

Bagian yang sulit adalah menemukan penjara yang tepat:

  1. Gunakan iptables -L -nuntuk menemukan nama aturan ...
  2. ... lalu gunakan fail2ban-client statusuntuk mendapatkan nama penjara yang sebenarnya. Nama aturan dan nama penjara mungkin tidak sama tetapi harus jelas yang terkait dengan yang mana.
ukoda
sumber
2
Jika Anda memiliki kesalahan berikut 'Invalid Action name', baca jawaban ini
Morgan Courbet
32
Dengan versi terbaru fail2banAnda harus menggunakan fail2ban-client set JAIL_NAME unbanip 1.2.3.4.
tftd
1
Apa nama penjara default? /etc/fail2ban/jail.conftidak bekerja untuk saya.
Alex W
1
Anda dapat menemukan nama penjara di log fail2ban jika Anda mencari IP Anda
fred727
7
sshd adalah nama penjara untukku.
agustaf
82

Karena v0.8.8 ada unbanipopsi ( actionunbanbukan untuk tujuan ini) Itu dapat dipicu oleh setperintah, jika Anda melihat daftar opsi, Anda akan melihat sintaksnya. Jadi itu akan (dengan hati, silakan periksa):

fail2ban-client set ssh-iptables unbanip IPADDRESSHERE 

lebih umum:

fail2ban-client set JAILNAMEHERE unbanip IPADDRESSHERE

bekerja untukku

pengguna157436
sumber
3
Perintah unbanip ditambahkan dalam versi 0.8.8. Solusi terbaik jika Anda menjalankan 0.8.8 atau yang lebih baru.
Alexander Garden
1
Masalah yang terkait dengan ini dalam pelacak fail2ban adalah ini: github.com/fail2ban/fail2ban/issues/132
aseques
ini jawaban yang benar untuk versi saat ini. Terima kasih!
billynoah
mendapatkan "Perintah tidak valid (tidak ada tindakan yang ditetapkan atau belum diimplementasikan)"
Tom
Anda harus menyatakan nama penjara yang benar (misalnya sshd atau sshd-dos, lihat log fail2ban Anda)
mirage
53

Contoh untuk SSH dalam mode interaktif.

ketikkan bash:

fail2ban-client -i

kemudian dalam mode mode interaktif baca status penjara:

status sshd

Anda akan mendapatkan:

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

kemudian ketik mode interaktif fail2ban:

set sshd unbanip 203.113.167.162

Anda akan mendapatkan:

203.113.167.162

itu berarti tidak lagi 203.113.167.162dalam daftar larangan.

Amaroc
sumber
3
Bagi saya nama penjara itu sshd(Ubuntu 16)
scipilot
Menurut saya, dikatakan total diblokir: 6, tetapi daftar di bawah ip yang diblokir hanya kosong :( harus menelusuri log
William Hilsum
21

Jawaban ukoda salah:

Panggilan fail2ban-clienttanpa parameter dan Anda melihat daftar perintah yang mungkin:

get JAIL actionunban ACT             

Ini mendapatkan perintah unban untuk ACT tindakan untuk JAIL.

Lihatlah parameter tindakan dari penjara yang Anda tetapkan, Anda mungkin memiliki tindakan iptables dan mungkin beberapa lagi seperti sendmail, whois atau apa pun. jadi jika tindakan Anda adalah iptables maka akan terlihat seperti ini:

fail2ban-client get JAIL actionunban iptables

dan jawabannya adalah:

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

Itu hanya akan menunjukkan kepada Anda apa yang harus Anda tulis untuk membatalkan pencekalan. Tidak ada perintah unban itu sendiri.

ingo
sumber
3
Ya, itu berhasil bagi saya, untuk membatalkan pemblokiran dari penjara SSH iptables -D fail2ban-ssh -s <IP> -j DROP. Terima kasih ingo!
Deele
8

Jika 192.168.2.1 dilarang

sudo iptables -L

Periksa Rantai mana yang dicekal, misalnya

Chain fail2ban-sasl (1 referensi)

DROP semua - 192.168.2.1 di mana saja

Kemudian:

# 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
Lionel Broes
sumber
4

Anda harus terlebih dahulu mendapatkan nama penjara. Anda bisa mendapatkan daftar (dalam kebanyakan kasus hanya akan menjadi ssh jail):

fail2ban-client status

Setelah mendapatkan nama penjara Anda dapat memeriksa IP mana yang sedang diabaikan.

fail2ban-client get ssh ignoreip

Jika IP Anda ada dalam daftar abaikan, Anda dapat menghapusnya melalui:

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

Hapus entri host Anda:

fail2ban-client reload
zainengineer
sumber
2
Daftar abaikan adalah daftar IP yang tidak pernah dilarang. Itu sama sekali tidak terkait dengan daftar IP yang saat ini dilarang, yaitu daftar yang ingin dihapus oleh OP.
jlh
3

Menggunakan 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
mengambil
sumber
Ini mengasumsikan bahwa hosts.deny adalah tindakan yang digunakan .... Tetapi masih lebih berguna daripada hal-hal yang mencoba mengubah metode IP yang tidak diblokir pada versi yang lebih lama dengan menggunakan actionunban...
Gert van den Berg
The delignoreiptindakan tidak menghapus IP dari larangan, itu menghapus sebuah IP dari daftar diabaikan IP (yaitu IP yang tidak akan pernah bisa dilarang).
Tonin
2

sayangnya dengan versi 0.8.2 dari fail2ban-client perintah:

fail2ban-client get jail actionunban ipaddress

tidak berjalan. Untuk mengatasi masalah, pilihan terbaik adalah meng-upgrade fail2ban ke versi terbaru dan menggunakan opsi baru:

unbanip
Pol Hallen
sumber
2
fail2ban-client set sshd unbanip ip_here

akan bekerja.

abhijithvijayan
sumber
1

Jika IP ada di beberapa penjara, ini akan merepotkan.

one-liner untuk menghapus 192.168.1.2 dari semua penjara:

 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

skrip untuk melakukan hal yang sama https://gist.github.com/yolabingo/c810db6fe7f8bfcb9eb4f6ffc531e474

yolabingo
sumber
0

Jika Anda menjalankan versi v0.10.2:

sudo fail2ban-client unban YOU_IP_ADDRESS

Ini dari bantuan:

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

Dikonfirmasi untuk bekerja dalam kasus saya ketika kemungkinan besar saya akan diblokir karena ssh client masuk berulang kali dengan kata sandi yang salah.

kashiraja
sumber