Saya menjalankan Fail2Ban di Server Centos saya. (Konfigurasi di bawah)
Dalam var / log / pesan saya saya melihat sesuatu yang sangat aneh:
Jun 19 12:09:32 localhost fail2ban.actions: INFO [postfix] 114.43.245.205 already banned
Saya mengkonfigurasi Fail2Ban untuk menambahkan IP yang terlarang ke iptables.
Jail.conf saya:
[postfix]
enabled = true
filter = postfix
action = iptables
port = smtp,ssmtp
filter = postfix
logpath = /var/log/maillog
bantime = 43200
maxretry = 2
Postfix.conf saya:
[INCLUDES]
before = common.conf
[Definition]
failregex = reject: RCPT from (.*)\[<HOST>\]: 550 5.1.1
reject: RCPT from (.*)\[<HOST>\]: 450 4.7.1
reject: RCPT from (.*)\[<HOST>\]: 554 5.7.1
reject: RCPT from (.*)\[<HOST>\]: (.*)@yahoo.com.tw
ignoreregex =
Pertanyaan saya adalah bagaimana mungkin orang yang sudah diblokir iptables
tetap terhubung ke server?
iptables -L -nv
ke pertanyaan Anda?Jawaban:
Penjara residen yang direkomendasikan dalam jawaban lain di sini tidak memperbaiki masalah bagi saya. Saya akhirnya memperbaiki ini, jadi inilah metode saya kalau-kalau itu membantu orang lain.
Fail2ban hanya memblokir TCP secara default. Paling tidak dengan pengaturan saya, saya melihat pesan "sudah dilarang" muncul ketika bot kembali untuk mencoba port yang diblokir di atas UDP.
Untuk memperbaiki masalah ini, beri tahu Fail2ban untuk memblokir port melalui semua protokol, bukan hanya TCP. Anda perlu melakukan perubahan ini di /etc/fail2ban/jail.conf dan di bagian [Init] dari setiap tindakan yang Anda gunakan di /etc/fail2ban/action.d/ .
Ubah ini:
Untuk:
Selanjutnya, saya menonaktifkan permintaan gema ICMP sehingga IP yang diblokir tidak bisa mengenai server:
Tambahkan dua baris ini:
Setelah itu, jalankan reload fail2ban-client dan Anda seharusnya tidak melihat lagi pesan-pesan "yang sudah dilarang" ini kecuali Anda spammed oleh IP yang mendapat beberapa upaya akses sebelum blok tersebut berlaku.
Juga, penting untuk memblokir semua port untuk setiap pelaku daripada port yang mereka coba akses dengan menggunakan action iptables-allports di masing-masing Penjara. Jika tidak, mereka dapat memicu Penjara lain dan berakhir sebagai "sudah dilarang" di log.
sumber
/etc/fail2ban/jail.local
beberapa filter saya milikiaction = iptables-multiport[name=apache-myadmin, port="http,https", protocol=tcp]
dan beberapa tidak, haruskah saya mengubah semua itu? Haruskah saya mengubah sesuatu/etc/fail2ban/filter.d
?-p tcp',
-p udp ',-p udplite',
-p sctp' atau` -p dccp '"Jika Anda melihat output dari
iptables-save
, Anda akan melihat bahwafail2ban
rantai diatur sehingga mereka mengevaluasi paket sesuai dengan aturan yang ditetapkan oleh filter, misalnya:Lalu lintas masih mencapai server sebelum aturan perutean lain diterapkan dan lalu lintas ditolak.
fail2ban
masih melihat lalu lintas awal ini, dan itulah sebabnya Anda melihat pesan "sudah dilarang". Selain itu, ada filter khusus untuk residivis (/etc/fail2ban/filter.d/recidive.conf
):sumber
Ini akan terjadi jika alamat IP yang Anda blokir sebenarnya bukan alamat IP klien yang terhubung ke server. Misal jika server Anda berada di belakang load balancer atau proxy.
Butuh waktu cukup lama untuk memikirkan hal ini baru-baru ini. Ikan haring merah adalah bahwa log dikonfigurasi untuk menangkap
X-Forwarded-For
alamat IP, bukan alamat sumber nyata, yang dalam kasus saya adalah penyeimbang beban.Dalam hal ini fail2ban tidak banyak membantu, karena melarang IP yang melanggar akan memblokir semua lalu lintas.
sumber
Saya ingin menyumbangkan masalah dan solusi saya sendiri dengan pesan "sudah dilarang". Seperti yang Anda tulis, saya memiliki ratusan dari mereka dalam beberapa menit sementara penyerang seharusnya sudah dilarang.
Sebelum saya mulai, inilah sistem saya:
Ketika saya menginstal OpenVPN pada server root saya, saya telah beralih firewalld ke iptables. Itu mungkin telah menyebabkan masalah ini bagi saya, tetapi selain itu sistem saya sebagian besar tidak tersentuh dan cukup baru diinstal (Strato rootserver menyarankan instal image).
Jika Anda memiliki masalah ini, silakan periksa /etc/fail2ban/jail.d/00-firewalld.conf untuk baris yang terlihat seperti ini:
Sejak saya berkomentar, menyimpan file dan restart
fail2ban.service
, semuanya baik-baik saja dengan fail2ban. Tidak ada lagi pesanSaya bukan ahli tetapi berharap untuk memberikan jawaban yang tepat. Jika itu berhasil untuk Anda, beri tahu saya!
sumber
Ini terhubung ke server hanya satu kali, tetapi dalam satu koneksi itu mencoba untuk mengirim beberapa email ke kotak surat yang mungkin tidak dapat diandalkan (seperti [email protected], [email protected], [email protected] dll.)
Anda telah mengonfigurasi filter postfix Anda untuk mencekal upaya-upaya tersebut sehingga IP akan diblokir setelah X mencoba. Klien mungkin sudah terputus dari postfix, tetapi karena postfix mungkin belum selesai memproses semua emailnya, fail2ban dapat mendeteksi upaya lain dari klien yang sama ketika postfix memproses surat-suratnya, dan dengan demikian Anda mendapatkan alamat pesan yang sudah dilarang. Itu karena cara kerja antrian postfix.
sumber
Pertanyaan bagus yang luar biasa. Saya sedang mencari-cari apakah aturan firewall saya tidak berfungsi, tetapi
iptables --list-rules
cocok persis dengan server produksi lain dengan berfungsi fail2ban.Solusi mindblowing adalah menambahkan port 8080 ke port yang diblokir, karena saya masih mengakses halaman login melalui port pengembangan.
Jadi perbaikan dalam situasi saya adalah masalah ini adalah adaptasi saya yang cukup sederhana
jail.local
:sumber
lihat /unix//a/525798/22315
Anda mungkin kehilangan port 587 dari baris "port =", dan Anda dapat memeriksa file konfigurasi postfix atau melakukan "lsof -i: 587" untuk mencari tahu, secara langsung, jika postfix telah dikonfigurasikan untuk membuka port itu.
sumber