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-clientfitur unbanperintah 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 reloadperintah sekarang juga memiliki --unbanopsi.
fail2ban digunakan iptablesuntuk 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 somethingmenunjuk ke penjara fail2ban (misalnya, Chain f2b-sshdmengacu 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 iptablesaturan 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-numbersdan 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 -allperintah. 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 fail2bankerjanya, hanya ada dua solusi yang mungkin:
fail2banjail 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