Fail2ban serverga turli xil hujumlar qilayotgan IP manzillarni avtomatik aniqlab, ularni vaqtinchalik yoki butunlay bloklash uchun ishlatiladigan vosita. U xizmat sifatida fonda ishlab turadi va log fayllarni doimiy kuzatib boradi. Agar bir IP manzildan ko'p marta xato login urinishi bo'lsa yoki shubhali so'rovlar kelsa, Fail2ban iptables yoki firewalld orqali o'sha IP'ni bloklaydi. Bu juda samarali himoya usuli, chunki avtomatik ishlaydi va inson aralashuvi talab qilmaydi.
Fail2ban nima va u qanday ishlaydi
Fail2ban Python tilida yozilgan kichik dastur bo'lib, log fayllarni regulyar ifodalar yordamida tahlil qiladi. Har bir himoya qilinadigan servis uchun alohida filter yoziladi va shu filterda qanday matn brute force urinishi sifatida tushuniladi belgilanadi. Misol uchun, SSH log faylida "Failed password for" matni ko'p marta paydo bo'lsa, bu shubhali. Fail2ban shu hodisalarni sanaydi va belgilangan chegaradan oshsa, IP'ni bloklaydi. Blok muddati ham sozlanuvchi — bir necha daqiqadan tortib doimiy blokgacha qo'yish mumkin.
Ubuntu va Debian'da o'rnatish
Fail2ban barcha mashhur Linux distributivlarining standart paketlar omborida mavjud. Ubuntu yoki Debian serverda apt orqali bir buyruq bilan o'rnatiladi. O'rnatishdan keyin servis avtomatik ishga tushadi va SSH himoyasi sukut bo'yicha yoqilgan bo'ladi. CentOS, AlmaLinux yoki Rocky Linux'da yum yoki dnf paket menejerlari ishlatiladi, lekin avval EPEL omborini qo'shish kerak bo'lishi mumkin. O'rnatishdan keyin systemctl orqali holatini tekshirib ko'rish va xizmat ishlayotganiga ishonch hosil qilish lozim.
Jail va filter sozlamalari
Fail2ban'da har bir himoya qilinadigan servis "jail" deb ataladi. Jail.local faylida barcha sozlamalar saqlanadi va asl jail.conf faylini o'zgartirmaslik tavsiya etiladi, chunki yangilanishlarda u qayta yoziladi. Har bir jailda log fayl manzili, qaysi filter ishlatilishi, necha urinishdan keyin bloklash va blok muddati ko'rsatiladi. SSH uchun standart sozlamalar yaxshi, lekin maxsus portlarda ishlayotgan servislar uchun jailni qo'lda yozish kerak bo'ladi.
Web server va FTP himoyasi
Nginx va Apache uchun ham tayyor filterlar mavjud — ular 404 xatolari, kirish urinishlari va boshqa shubhali faoliyatlarni kuzatadi. WordPress sayti uchun wp-login.php sahifasiga qilingan brute force urinishlarini bloklash uchun maxsus filter yoziladi. ProFTPD, vsftpd va boshqa FTP serverlar uchun tayyor jaillar bor, ularni faqat yoqish kifoya. Pochta serverlari — Postfix, Dovecot — uchun ham filterlar tayyor, bu spam botlardan himoya qiladi.
Sayt.uz amaliyot
Sayt.uz serverlarida Fail2ban barcha mijoz serverlariga sukut bo'yicha o'rnatilgan va sozlangan. SSH portiga 5 marta xato urinishdan keyin IP 24 soatga bloklanadi. Web va pochta servislari uchun ham jaillar yoqilgan. Mijozlar kabinetdan o'z saytlarida qaysi IP'lar bloklanganini ko'rishi va kerak bo'lsa, ishonchli IP'ni oq ro'yxatga qo'shishi mumkin. Bizning ma'lumotimizga ko'ra, Fail2ban yoqilgandan keyin brute force urinishlari 95% kamayadi.