Bagaimana saya bisa menghapus semua larangan fail2ban di Ubuntu? Saya mencoba segalanya tetapi saya tidak mengerti.
Saya hanya ingin menghapus semua larangan - tetapi saya tidak tahu alamat IP apa pun.
Bagaimana saya bisa menghapus semua larangan fail2ban di Ubuntu? Saya mencoba segalanya tetapi saya tidak mengerti.
Saya hanya ingin menghapus semua larangan - tetapi saya tidak tahu alamat IP apa pun.
Jawaban:
Pada versi 0.10.0 fail2ban-client
fitur unban
perintah yang dapat digunakan dalam dua cara:
unban --all unbans all IP addresses (in all
jails and database)
unban <IP> ... <IP> unbans <IP> (in all jails and
database)
Selain itu, perintah restart <JAIL>
, reload <JAIL>
dan reload
perintah sekarang juga memiliki --unban
opsi.
fail2ban digunakan iptables
untuk memblokir lalu lintas. Jika Anda ingin melihat alamat IP yang saat ini diblokir, ketikkan
iptables -L -n
dan mencari berbagai rantai bernama fail2ban-something
, di mana something
menunjuk ke penjara fail2ban (misalnya, Chain f2b-sshd
mengacu pada penjara sshd
). Jika Anda hanya ingin menghapus blokir untuk satu alamat IP <IP>
untuk jail yang diberikan <JAIL>
, fail2ban menawarkan kliennya sendiri:
fail2ban-client set <JAIL> unbanip <IP>
Atau Anda dapat menggunakan nomor baris. Pertama, buat daftar iptables
aturan dengan nomor baris:
iptables -L -n --line-numbers
Selanjutnya bisa Anda gunakan
iptables -D fail2ban-somejail <linenumber>
untuk menghapus satu baris dari tabel. Sejauh yang saya tahu tidak ada opsi untuk memilih rentang nomor baris, jadi saya kira Anda harus membungkus perintah ini dalam for loop:
for lin in {200..1}; do
iptables -D fail2ban-somejail $lin
done
Di sini saya membuat angka 200 naik. Periksa output perintah Anda sendiri dengan --line-numbers
dan perhatikan bahwa baris terakhir (dengan RETURN
) harus tetap. Lihat komentar @ roaima di bawah ini untuk alasan di balik penghitungan mundur.
echo {5..1}
akan menghasilkan 5 4 3 2 1
.
Cara terbaik untuk membatalkan pemblokiran semua IP, adalah mengatur bantime menjadi 1 detik, maka semua IP akan segera dibebaskan.
fail2ban-client set JailName bantime 1
Setelah itu, Anda dapat mengatur waktu larangan yang tepat kembali.
Lebih baik membiarkan fail2ban untuk melakukan unban untuk Anda. Jangan mengedit iptables sendiri secara manual.
fail2ban-client status
Yang terbarufail2ban-client
(0.10) memiliki unban -all
perintah. Penjara juga dapat secara individual "dimulai kembali", secara efektif menghapus larangan.
Jika Anda memiliki versi yang lebih lama, trik ini mungkin berfungsi untuk larangan sementara otomatis: hapus penjara yang berisi larangan kemudian mulai ulang fail2ban sehingga penjara (sekarang kosong) akan dibuat kembali.
$ fail2ban-client stop sshd
Jail stopped
$ systemctl restart fail2ban
Simpan konfigurasi iptable ke file
$ iptables-save > iptables.conf
Edit dengan editor apa pun yang Anda suka daripada muat konfigurasi kembali ke iptables
$ iptables-restore < iptables.conf
Jangan lupa untuk menyimpan konfigurasi di dalam iptables sehingga akan diambil saat reboot
$ service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
inilah oneliner sederhana untuk membatalkan seluruh penjara fail2ban dengan cara yang benar:
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
CATATAN: perintah iptables mengambil awalan "f2b-" sebelum nama jail sementara "fail2ban-client" nama sebenarnya jail
Karena cara fail2ban
kerjanya, hanya ada dua solusi yang mungkin:
fail2ban
jail dan restart firewall.Ini adalah skrip yang saya gunakan untuk membatalkan semua alamat IP untuk ssh jail (cukup ganti sshd occourence dengan nama jail yang Anda butuhkan ... misalnya 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