
Mempunyai pelayan Linux yang terdedah kepada rangkaian pada asasnya seperti mengeluarkan magnet untuk bot. Jika anda belum mengkonfigurasi sebarang langkah keselamatan, anda mungkin sudah mempunyai beribu-ribu percubaan log masuk yang gagal dalam log anda; terdapat mesin automatik yang sentiasa mencuba kombinasi nama pengguna dan kata laluan untuk cuba mengawal mesin anda melalui serangan brute-force.
Di sinilah Fail2ban memainkan peranan, sebuah alat yang bertindak sebagai pengawas yang tidak kenal erti penat lelah. Ia bukanlah firewall dalam erti kata yang paling ketat, tetapi ia menganalisis log sistem dan, apabila ia mengesan seseorang cuba menceroboh, ia akan menghalang mereka dengan menyekat alamat IP mereka menggunakan alat seperti iptables atau nftables. Mari kita lihat cara mengkonfigurasinya untuk menjadikan pelayan anda sukar untuk dipecahkan.
Apakah sebenarnya Fail2ban dan bagaimana ia berfungsi?
Secara ringkasnya, Fail2ban ialah daemon yang sentiasa memantau fail log perkhidmatan anda. Apabila ia menemui corak mencurigakan yang sepadan dengan peraturan yang telah ditetapkan, yang dipanggil penapis , ia mula mengira kegagalan. Jika alamat IP mencapai had percubaan yang dibenarkan dalam tempoh masa tertentu, program tersebut akan melaksanakan tindakan , yang biasanya melibatkan penambahan alamat IP tersebut ke senarai hitam tembok api.
Konfigurasi ini disusun menjadi apa yang dipanggil jail . Jail pada asasnya ialah satu set peraturan yang digunakan untuk perkhidmatan tertentu (seperti SSH, Apache atau MySQL). Dengan cara ini, anda boleh mempunyai dasar yang sangat ketat untuk akses jauh dan dasar yang lebih permisif untuk pelayan web, memastikan penceroboh disekat secara automatik tanpa anda perlu menyemak log secara manual setiap lima minit.

Pemasangan mengikut pengedaran Linux anda
Bergantung pada sistem yang anda gunakan, arahan untuk memasangnya sedikit berbeza, tetapi ia biasanya tersedia di hampir semua repositori rasmi.
- Pada Ubuntu dan Debian: Ia sangat mudah, anda hanya perlu menjalankan
sudo apt updateseguido desudo apt install fail2ban. - Pada Rocky Linux atau AlmaLinux: Oleh kerana ini adalah pengedaran Perusahaan, anda mesti mendayakan repositori EPEL terlebih dahulu dengan
sudo dnf install epel-releasedan kemudian pasang pakej dengansudo dnf install fail2ban fail2ban-firewalld. - Dalam Alpine Linux: Gunakan pengurus APK dengan
sudo apk add fail2banDan, memandangkan ia menggunakan OpenRC, anda mesti mendayakannya dengansudo rc-update add fail2ban defaultdan mulakannya dengansudo rc-service fail2ban start.

Konfigurasi induk: Rahsia fail .local
Kesilapan yang sangat biasa ialah mengedit fail secara langsung. jail.confJangan buat begitu! Fail itu boleh ditulis ganti apabila anda mengemas kini sistem. Peraturan utama adalah untuk mencipta salinan yang dipanggil penjara.lokalSebarang parameter yang anda tambahkan pada fail kedua ini akan diutamakan berbanding yang asal dan perubahan anda akan ditulis ganti. selamat daripada kemas kini.
Untuk bermula, anda boleh mengklon fail asal dengan sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local dan kemudian bukanya dengan editor kegemaran anda, seperti nano atau vim. Dalam bahagian [DEFAULT] Di sinilah anda menentukan keseluruhan tingkah laku sistem:
- waktu rehat: Tempoh masa alamat IP berniat jahat akan kekal beku. Ini boleh dalam beberapa saat atau menggunakan 'm' selama beberapa minit (cth., 10m).
- cari masa: Selang masa Fail2ban menyemak ralat. Jika seseorang gagal 5 kali dalam sejam tetapi masa pencarian adalah 10 minit, mereka tidak akan diharamkan.
- maxretry: Bilangan percubaan gagal yang dibenarkan sebelum sistem menyatakan Cukup dan sekat IP.
- abaikan ip: Penting untuk mengelakkan diri daripada mengharamkan diri anda. Di sini anda mesti memasukkan alamat IP awam atau julat VPN anda.
Melindungi perkhidmatan tertentu langkah demi langkah
Setelah tetapan umum dikonfigurasikan, tiba masanya untuk mengaktifkan penjara untuk perkhidmatan yang paling membimbangkan anda. Agar perlindungan berfungsi, anda mesti menetapkan enabled = true dalam bahagian masing-masing dalam jail.local.
Akses SSH (Titik paling kritikal)
Port 22 ialah sasaran nombor satu. Konfigurasi yang mantap akan menentukan maxretry = 3 dan bantime = 3600 (satu jam). Fail2ban akan membaca fail tersebut. /var/log/auth.log (pada Debian/Ubuntu) atau / var / log / selamat (pada CentOS/RHEL) untuk mengesan kegagalan pengesahan dan menutup akses kepada penyerang.
Pelayan Web (Apache dan Nginx)
Jika anda mempunyai laman web atau kedai dalam talian, bot akan cuba mengakses laluan sensitif seperti /wp-admin o /login.phpAnda boleh mencipta penapis tersuai dalam /etc/fail2ban/filter.d/ untuk mengesan corak-corak ini. Contohnya, untuk Lindungi WordPress403 ralat atau percubaan yang gagal dipantau dalam wp-login.php, menyekat IP jika ia melebihi had yang ditetapkan dalam jail Apache atau Nginx.
Pangkalan Data dan FTP
Untuk MySQL, anda boleh memantau log ralat untuk frasa tersebut Akses ditolak untuk penggunaDalam kes FTP (seperti ProFTPD), adalah penting untuk memastikan bahawa logpath padankan laluan sebenar ke log anda, kerana jika Fail2ban tidak dapat menemui fail log, perlindungan tersebut tidak akan berfungsi.
Pengurusan lanjutan dengan fail2ban-client
Anda tidak perlu sentiasa mengedit fail dan memulakan semula perkhidmatan untuk membuat perubahan pantas. Arahan fail2ban-client Ia membolehkan anda mengurus sistem dengan pantas dari konsol.
Untuk melihat penjara mana yang aktif dan berapa banyak IP yang disekat, gunakan sudo fail2ban-client statusJika anda ingin menyelidiki lebih mendalam tentang perkhidmatan, seperti SSH, jalankan sudo fail2ban-client status sshdTambahan pula, jika secara tidak sengaja Anda telah menyekat rakan sekerja Atau anda boleh melepaskan alamat IP dengan cepat dengan arahan tersebut sudo fail2ban-client set sshd unbanip IP_A_DESBLOQUEAR.
Mantenimiento y penyelesaian masalah
Jika anda perasan bahawa Fail2ban tidak menyekat seperti yang sepatutnya, tempat pertama yang perlu dilihat ialah fail log alat itu sendiri. /var/log/fail2ban.log. Menggunakan tail -f Anda boleh melihat dalam masa nyata siapa yang diharamkan dan mengapa.
Ingat bahawa Fail2ban menyimpan status kunci dalam pangkalan data SQLite dalam /var/lib/fail2ban/fail2ban.sqlite3Oleh itu, jika anda memulakan semula pelayan, IP yang telah diharamkan akan dibatalkan larangannya. akan kekal disekat sehingga tempoh penalti anda tamat. Setiap kali anda membuat perubahan pada fail konfigurasi, jangan lupa untuk menggunakan perubahan tersebut dengan sudo systemctl restart fail2ban.
Melaksanakan alat ini mengubah pelayan anda daripada sasaran mudah kepada kubu automatik, mengurangkan beban CPU dengan membuang trafik berniat jahat di lapisan rangkaian dan membolehkan anda tidur nyenyak kerana mengetahui bahawa bot tidak akan dapat menceroboh masuk secara brute-force. Dengan menggabungkan penggunaan fail .local, pengurusan jail tertentu dan pemantauan log yang berterusan, anda mencapai sistem pertahanan mendalam yang penting untuk mana-mana pentadbir sistem Linux.
