Automatizuojames prieš bruteforce
Kadangi prieš kurį laiką išsivaliau visas iptables taisykles, tai labai tingėjosi daryti visiems servisams iš naujo. Šiek tiek pagooglinęs radau alternatyvą, kuri už mane atliko visą reikalingą darbą: fail2ban. Mano serveryje naudojama Ubuntu Server distribucija, todėl įdiegimas nereikalavo jokių konfigūravimo ir kompiliavimo žinių (kartais tingisi tai daryt):
’sudo apt-get install fail2ban’
Tada beliko susirast /etc/fail2ban/fail2ban.conf.
maxfailures - kiek kartų suklydus blokuoti IP;
bantime - kuriam laikui blokuoti IP (dokumentacijoje parašyta, kad neigiamas skaičius reiškia permanent, tik man tai neveikė);
ignoreip - IP, kuriam negalioja draudimai (by default šio nustatymo nėra fail2ban.conf byloje.);
Dabar parodysiu, kaip reikia apsaugoti, pvz, SSH:
[SSH] - serviso pavadinimas;
enabled = true
logfile = /var/log/auth.log - kur fail2ban turi stebėti prisijungimų eigą;
port = ssh - serviso pavadinimas (iptables standartas);
timeregex = S{3}s{1,2}d{1,2} d{2}:d{2}:d{2} - laiko regexp’as
timepattern = %%b %%d %%H:%%M:%%S - laiko formatas naudojamas loguose;
failregex = : (?:(?:Authentication failure|Failed [-/w+]+) for(?: [iI](?:llegal|nvalid) user)?|[Ii](?:llegal|nvalid) user|ROOT LOGIN REFUSED) .*(?: from|FROM) (?:::f{4,6}:)?(?PS*) - klaidingo pranešimo forma sisteminiuose loguose.
Analogiškai nustatymai veikia ir kitiems servisams, detali informacija autorių puslapyje:www.fail2ban.org