Ako nastaviť IPS (Fail2ban) na ochranu pred rôznymi útokmi
IPS alebo Intrusion Prevention System je technológia používaná v sieťovej bezpečnosti na skúmanie sieťovej prevádzky a predchádzanie rôznym útokom detekciou škodlivých vstupov. Okrem toho, že iba zisťuje škodlivé vstupy, ako to robí systém na detekciu narušenia, tiež bráni sieti pred škodlivými útokmi. Môže zabrániť sieti pred hrubou silou, DoS (Denial of Service), DDoS (Distributed Denial of Service), zneužitím, červami, vírusmi a inými bežnými útokmi. IPS sú umiestnené hneď za firewallom a môžu odosielať alarmy, zahadzovať škodlivé pakety a blokovať nevhodné IP adresy. V tomto návode použijeme Fail2ban, čo je softvérový balík Intrusion Prevention Software, na pridanie bezpečnostnej vrstvy proti rôznym útokom hrubou silou.
Ako funguje Fail2ban
Fail2ban číta protokolové súbory (napr. /var/log/apache/error_log) a získava problematické adresy IP, ktoré sa pokúšajú o príliš veľa neúspešných hesiel alebo hľadajú exploity. Fail2ban v podstate aktualizuje pravidlá brány firewall, aby blokovali rôzne adresy IP na serveri. Fail2ban tiež poskytuje filtre, ktoré môžeme použiť pre konkrétnu službu (napr. Apache, ssh atď.).
Inštalácia Fail2ban
Fail2ban nie je na Ubuntu predinštalovaný, takže pred jeho použitím si ho musíme nainštalovať.
ubuntu@ubuntu:~$ sudo apt-get install fail2ban
Po nainštalovaní Fail2ban spustite a povoľte službu Fail2ban pomocou príkazového riadku.
ubuntu@ubuntu:~$ sudo systemctl enable fail2ban
Teraz skontrolujte stav služby fail2ban a potvrďte, či sa spustila alebo nie.
Konfigurácia Fail2ban pre SSH
Fail2ban môžeme nakonfigurovať úpravou súboru /etc/fail2ban/jail.conf. Pred jeho úpravou si urobte zálohu tohto súboru.
Teraz nakonfigurujeme Fail2ban, aby sme zabránili službe sshd pred škodlivými vstupmi. Otvorte súbor /etc/fail2ban/jail.local vo svojom obľúbenom editore.
Prejdite do sekcie [predvolené] a v sekcii [predvolené] zadajte konfiguračné parametre.
ignoreip = 127.0.0.1/8 192.168.18.10/32
bantime = 300
maxretry = 2
findtime = 600
ignoreip je zoznam masky cidr, adresy IP alebo hostiteľa DNS oddelených medzerou. Pridajte svoje dôveryhodné adresy IP do tohto zoznamu a tieto adresy IP sa dostanú na bielu listinu a nebudú blokované funkciou fail2ban, aj keď na server vykonajú útok hrubou silou.
bantime je čas, počas ktorého bude adresa IP zablokovaná po vykonaní určitého počtu neúspešných pokusov na server.
maxretry je počet maximálnych neúspešných pokusov, po ktorých je adresa IP zablokovaná funkciou fail2ban na určitý čas.
findtime je množstvo času, počas ktorého hostiteľ vykoná neúspešné pokusy o maxretry, bude zablokovaný.
Po nakonfigurovaní vyššie uvedených parametrov teraz nakonfigurujeme službu, na ktorú sa budú vzťahovať vyššie uvedené pravidlá. V predvolenom nastavení má Fail2ban preddefinované filtre pre rôzne služby, takže pre služby nemusíme zadávať žiadne konkrétne položky. V konfiguračnom súbore povoľujeme alebo zakazujeme iba rôzne služby. Otvorte súbor /etc/fail2ban/jail.local vo svojom obľúbenom editore.
Nájdite v súbore sekciu [sshd] a do sekcie zadajte nasledujúce parametre.
enable = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
povolené definuje, či je táto služba chránená systémom fail2ban alebo nie. Ak je povolená hodnota true, služba je chránená; v opačnom prípade nie je chránený.
port definuje port služby.
filter odkazuje na konfiguračný súbor, ktorý fail2ban použije. V predvolenom nastavení bude pre službu ssh používať súbor /etc/fail2ban/filter.d/sshd.conf.
logpath definuje cestu k protokolom, fail2ban bude monitorovať a chrániť službu pred rôznymi útokmi. Pre službu ssh možno overovacie protokoly nájsť na /var/log/auth.log, takže fail2ban bude monitorovať tento protokolový súbor a bude aktualizovať firewall detekciou neúspešných pokusov o prihlásenie.
maxretry definuje počet neúspešných pokusov o prihlásenie pred zablokovaním príkazom fail2ban.
Po použití vyššie uvedenej konfigurácie pre fail2ban reštartujte službu, aby sa zmeny uložili.
ubuntu@ubuntu:~$ sudo systemctl status fail2ban.service
Testovanie Fail2ban
Nastavili sme fail2ban na ochranu nášho systému pred útokmi hrubou silou na službu ssh. Teraz vykonáme neúspešné pokusy o prihlásenie do nášho systému z iného systému, aby sme skontrolovali, či fail2ban funguje alebo nie. Po niekoľkých neúspešných pokusoch o prihlásenie teraz skontrolujeme protokoly fail2ban.
Vidíme, že po neúspešných pokusoch o prihlásenie bola IP zablokovaná pomocou fail2ban.
Pomocou nasledujúceho príkazu môžeme získať zoznam všetkých služieb, pre ktoré je povolený fail2ban.
Vyššie uvedený obrázok ukazuje, že sme povolili fail2ban iba pre službu sshd. Ďalšie informácie o službe sshd môžeme získať zadaním názvu služby vo vyššie uvedenom príkaze.
Fail2ban automaticky odblokuje zakázanú IP adresu po bantime, ale pomocou príkazového riadku môžeme kedykoľvek zrušiť zákaz akejkoľvek IP adresy. To poskytne väčšiu kontrolu nad fail2ban. Na zrušenie zákazu IP adresy použite nasledujúci príkaz.
Ak sa pokúsite odbanovať IP adresu, ktorá nie je blokovaná funkciou fail2ban, len vám to oznámi, že IP adresa nie je zablokovaná.
Záver
Pre správcu systému alebo bezpečnostného inžiniera je veľkou výzvou udržať bezpečnosť serverov. Ak je váš server chránený heslom, nie párom verejného a súkromného kľúča, potom je váš server zraniteľnejší voči útočníkom hrubou silou. Môžu sa dostať do vášho systému použitím rôznych kombinácií hesiel. Fail2ban je nástroj, ktorý môže útočníkom obmedziť spúšťanie rôznych druhov útokov, vrátane útokov hrubou silou a DDoS útokov na váš server. V tomto návode sme diskutovali o tom, ako by sme mohli použiť Fail2ban na ochranu nášho servera pred rôznymi útokmi. Fail2ban môžeme použiť aj na ochranu iných služieb, ako sú apache, nginx atď.