
Izloženost Linux servera mreži u biti je kao postavljanje magneta za botove. Ako niste konfigurirali nikakve sigurnosne mjere, vjerojatno već imate tisuće neuspjelih pokušaja prijave u svojim zapisnicima; postoje automatizirani strojevi koji stalno pokušavaju kombinacije korisničkog imena i lozinke kako bi pokušali preuzeti kontrolu nad vašim računalom putem napada grubom silom.
Tu nastupa Fail2ban, alat koji djeluje kao neumorni čuvar. Nije vatrozid u najstrožem smislu, već analizira sistemske zapise i, kada otkrije da netko pokušava provaliti, zalupi im vrata pred nosom blokirajući im IP adresu pomoću alata poput iptables ili nftables. Pogledajmo kako ga konfigurirati da vaš poslužitelj bude težak za razbijanje.
Što je točno Fail2ban i kako funkcionira?
Jednostavno rečeno, Fail2ban je demon koji kontinuirano prati datoteke zapisnika vaših usluga. Kada pronađe sumnjive obrasce koji odgovaraju unaprijed definiranim pravilima, nazvanim filteri , počinje brojati neuspjehe. Ako IP adresa dosegne ograničenje dopuštenih pokušaja unutar određenog vremena, program izvršava radnju koja obično uključuje dodavanje te IP adrese na crnu listu vatrozida.
Ove konfiguracije su organizirane u ono što se naziva zatvorima . Zatvor je u osnovi skup pravila koja se primjenjuju na određenu uslugu (kao što su SSH, Apache ili MySQL). Na taj način možete imati vrlo strogu politiku za udaljeni pristup i popustljiviju za web poslužitelj, osiguravajući da se uljezi automatski blokiraju bez potrebe da ručno provjeravate zapisnike svakih pet minuta.

Instalacija prema vašoj Linux distribuciji
Ovisno o sustavu koji koristite, naredba za instalaciju se malo razlikuje, ali je općenito dostupna u gotovo svim službenim repozitorijima.
- Na Ubuntuu i Debianu: Vrlo je jednostavno, samo trebaš trčati
sudo apt updateslijedisudo apt install fail2ban. - Na Rocky Linuxu ili AlmaLinuxu: Budući da su ovo Enterprise distribucije, prvo morate omogućiti EPEL repozitorij s
sudo dnf install epel-releasea zatim instalirajte paket ssudo dnf install fail2ban fail2ban-firewalld. - U Alpine Linuxu: Koristite upravitelj APK-ova s
sudo apk add fail2banA budući da koristi OpenRC, morate ga omogućiti ssudo rc-update add fail2ban defaulti započnite ssudo rc-service fail2ban start.

Glavna konfiguracija: Tajna .local datoteke
Vrlo česta greška je izravno uređivanje datoteke. jail.confNemojte to učiniti! Ta se datoteka može prebrisati kada ažurirate sustav. Zlatno pravilo je stvoriti kopiju pod nazivom zatvor.lokalniSvi parametri koje dodate ovoj drugoj datoteci imat će prednost nad originalom, a vaše promjene bit će prepisane. sigurno od ažuriranja.
Za početak, možete klonirati izvornu datoteku pomoću sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local a zatim ga otvorite svojim omiljenim editorom, kao što su nano ili vim. U odjeljku [ZADANO] Ovdje definirate cjelokupno ponašanje sustava:
- vrijeme zabrane: Duljina vremena koliko će zlonamjerna IP adresa ostati zamrznuta. To može biti u sekundama ili korištenjem 'm' za minute (npr. 10m).
- vrijeme pronalaska: Vremenski interval u kojem Fail2ban provjerava greške. Ako netko ne uspije 5 puta u satu, ali vrijeme pronalaska je 10 minuta, neće biti baniran.
- maksimalni ponovni pokušaj: Broj neuspjelih pokušaja dopušten prije nego što sustav kaže Dosta i blokiraj IP.
- ignorirajip: Bitno je kako biste izbjegli zabranu samog sebe. Ovdje morate unijeti svoje javna IP adresa ili vaš VPN raspon.
Zaštita određenih usluga korak po korak
Nakon što su konfigurirane opće postavke, vrijeme je za aktiviranje zatvora za usluge koje vas najviše zanimaju. Da bi zaštita funkcionirala, morate postaviti enabled = true u odgovarajućem odjeljku unutar jail.local.
SSH pristup (najkritičnija točka)
Port 22 je cilj broj jedan. Robusna konfiguracija bi definirala maxretry = 3 a bantime = 3600 (jedan sat). Fail2ban će pročitati datoteku. /var/log/auth.log (na Debianu/Ubuntuu) ili /var/log/secure (na CentOS-u/RHEL-u) za otkrivanje neuspjeha u autentifikaciji i zatvaranje pristupa napadaču.
Web poslužitelji (Apache i Nginx)
Ako imate web stranicu ili online trgovinu, botovi će pokušati pristupiti osjetljivim rutama kao što su /wp-admin o /login.phpMožete stvoriti prilagođene filtere u /etc/fail2ban/filter.d/ otkriti te obrasce. Na primjer, Zaštitite WordPress403 greške ili neuspjeli pokušaji se prate u wp-login.php, blokirajući IP adresu ako premašuje ograničenja postavljena u Apache ili Nginx jailu.
Baze podataka i FTP
Za MySQL možete pratiti zapisnik grešaka za frazu Pristup odbijen korisnikuU slučaju FTP-a (kao što je ProFTPD), ključno je osigurati da logpath uskladite stvarnu putanju s vašim zapisnicima, jer ako Fail2ban ne može pronaći datoteku zapisnika, zaštita jednostavno neće raditi.
Napredno upravljanje s fail2ban-clientom
Ne morate uvijek uređivati datoteke i ponovno pokretati uslugu da biste napravili brze promjene. Naredba fail2ban-client Omogućuje vam upravljanje sustavom u hodu iz konzole.
Da biste vidjeli koji su zatvori aktivni i koliko je IP adresa blokirano, koristite sudo fail2ban-client statusAko želite dublje istražiti uslugu, poput SSH-a, pokrenite sudo fail2ban-client status sshdNadalje, ako greškom Blokirali ste kolegu Ili možete brzo sami osloboditi IP adresu naredbom sudo fail2ban-client set sshd unbanip IP_A_DESBLOQUEAR.
Održavanje i otklanjanje kvarova
Ako primijetite da Fail2ban ne blokira kako bi trebao, prvo mjesto koje trebate pogledati je log datoteka samog alata. /var/log/fail2ban.log. Koristeći tail -f Možete vidjeti u stvarnom vremenu tko je zabranjen i zašto.
Imajte na umu da Fail2ban pohranjuje status zaključavanja u SQLite bazu podataka u /var/lib/fail2ban/fail2ban.sqlite3Stoga, ako ponovno pokrenete poslužitelj, zabranjene IP adrese bit će odblokirane. ostat će blokiran dok ne istekne kazneno razdoblje. Kad god mijenjate konfiguracijske datoteke, ne zaboravite primijeniti promjene s sudo systemctl restart fail2ban.
Implementacija ovog alata pretvara vaš poslužitelj iz lake mete u automatiziranu tvrđavu, smanjujući opterećenje CPU-a odbacivanjem zlonamjernog prometa na mrežnom sloju i omogućujući vam miran san znajući da botovi neće moći prodrijeti brutalnom silom. Kombiniranjem upotrebe .local datoteka, upravljanja specifičnim zatvorima i stalnim praćenjem logova, postižete sustav dubinske obrane neophodan za svakog Linux sistemskog administratora.
