
Izloženost Linux servera mreži je u suštini kao postavljanje magneta za botove. Ako niste konfigurirali nikakve sigurnosne mjere, vjerovatno već imate hiljade neuspjelih pokušaja prijave u svojim zapisnicima; postoje automatizovane mašine koje stalno pokušavaju kombinacije korisničkog imena i lozinke kako bi pokušale preuzeti kontrolu nad vašim računarom putem napada grubom silom.
Tu nastupa Fail2ban, alat koji djeluje kao neumorni čuvar. Nije zaštitni zid u najstrožem smislu te riječi, već analizira sistemske logove i, kada otkrije da neko 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š server bude težak za razbijanje.
Šta je tačno Fail2ban i kako funkcioniše?
Jednostavno rečeno, Fail2ban je demon koji kontinuirano prati log datoteke vaših servisa. Kada pronađe sumnjive obrasce koji odgovaraju unaprijed definiranim pravilima, nazvanim filteri , počinje brojati neuspjehe. Ako IP adresa dostigne ograničenje dozvoljenih pokušaja u određenom vremenu, program izvršava radnju , koja obično uključuje dodavanje te IP adrese na crnu listu zaštitnog zida.
Ove konfiguracije su organizirane u ono što se naziva zatvorima (jails ). Zatvor je u osnovi skup pravila koja se primjenjuju na određenu uslugu (kao što su SSH, Apache ili MySQL). Na ovaj način možete imati vrlo strogu politiku za udaljeni pristup i popustljiviju za web server, osiguravajući da se uljezi automatski blokiraju bez potrebe da ručno provjeravate logove svakih pet minuta.

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

Glavna konfiguracija: Tajna .local datoteke
Vrlo česta greška je direktno uređivanje datoteke. jail.confNemojte to raditi! Ta datoteka može biti prepisana kada ažurirate sistem. Zlatno pravilo je da kreirate kopiju pod nazivom jail.localSvi parametri koje dodate ovoj drugoj datoteci imat će prednost nad originalom, a vaše promjene će biti prepisane. sigurno od ažuriranja.
Za početak, možete klonirati originalnu datoteku pomoću sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local a zatim ga otvorite pomoću svog omiljenog editora, kao što su nano ili vim. U odjeljku [ZADANO] Ovdje definirate cjelokupno ponašanje sistema:
- vrijeme zabrane: Vremenski period tokom kojeg će zlonamjerna IP adresa ostati zamrznuta. Ovo može biti u sekundama ili korištenjem 'm' za minute (npr. 10m).
- vrijeme pronalaska: Vremenski interval u kojem Fail2ban provjerava greške. Ako neko ne uspije 5 puta u satu, ali je vrijeme pronalaska 10 minuta, neće biti banovan.
- maksimalni ponovni pokušaj: Broj dozvoljenih neuspjelih pokušaja prije nego što sistem kaže Dosta i blokiraj IP adresu.
- ignoriši IP: Bitno je da biste izbjegli zabranu samog sebe. Ovdje morate unijeti svoje javna IP adresa ili vaš VPN domet.
Zaštita određenih usluga korak po korak
Nakon što su konfigurisane opšte postavke, vrijeme je da aktivirate zatvore za servise koji vas najviše zanimaju. Da bi zaštita funkcionisala, morate postaviti enabled = true u odgovarajućem dijelu unutar jail.local.
SSH pristup (najkritičnija tačka)
Port 22 je cilj broj jedan. Robusna konfiguracija bi definirala maxretry = 3 i a bantime = 3600 (jedan sat). Fail2ban će pročitati datoteku. /var/log/auth.log (na Debianu/Ubuntuu) ili / var / log / secure (na CentOS/RHEL-u) za otkrivanje grešaka u autentifikaciji i zatvaranje pristupa napadaču.
Web serveri (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 kreirati prilagođene filtere u /etc/fail2ban/filter.d/ da otkriju ove obrasce. Na primjer, da Zaštitite WordPressGreške 403 ili neuspjeli pokušaji se prate u wp-login.php, blokirajući IP adresu ako premaši ograničenja postavljena u Apache ili Nginx jail-u.
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 logovima, jer ako Fail2ban ne može pronaći datoteku dnevnika, zaštita jednostavno neće raditi.
Napredno upravljanje pomoću fail2ban-clienta
Ne morate uvijek uređivati datoteke i ponovo pokretati servis da biste brzo izvršili promjene. Komanda fail2ban-client Omogućava vam upravljanje sistemom 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, kao što je SSH, pokrenite sudo fail2ban-client status sshdNadalje, ako greškom Blokirali ste kolegu Ili možete brzo sami osloboditi IP adresu pomoću naredbe sudo fail2ban-client set sshd unbanip IP_A_DESBLOQUEAR.
Održavanje i rješavanje problema
Ako primijetite da Fail2ban ne blokira kako bi trebao, prvo mjesto koje trebate pogledati je log datoteka samog alata. /var/log/fail2ban.log. Korišćenje tail -f Možete vidjeti u stvarnom vremenu ko 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 ponovo pokrenete server, zabranjene IP adrese će biti odblokirane. ostat će blokiran dok ne istekne period kazne. Kad god vršite promjene u konfiguracijskim datotekama, ne zaboravite primijeniti promjene sa sudo systemctl restart fail2ban.
Implementacija ovog alata transformiše vaš server iz lake mete u automatizovanu tvrđavu, smanjujući opterećenje CPU-a odbacivanjem zlonamjernog prometa na mrežnom sloju i omogućavajući vam da mirno spavate znajući da botovi neće moći da se upuste brutalnom silom. Kombinacijom upotrebe .local datoteka, upravljanja specifičnim zatvorima i stalnim praćenjem logova, postižete sistem dubinske odbrane neophodan za svakog Linux sistem administratora.
