Kā instalēt Fail2Ban, lai aizsargātu SSH uz CentOS/RHEL 8


Fail2ban ir bezmaksas, atvērtā koda un plaši izmantots ielaušanās novēršanas rīks, kas skenē žurnālfailos IP adreses, kurās redzamas kaitīgas pazīmes, piemēram, pārāk daudz paroļu kļūmju, un vēl daudz vairāk, un tas tās aizliedz (atjaunina ugunsmūra noteikumus, lai noraidītu IP adreses) . Pēc noklusējuma tas tiek piegādāts ar filtriem dažādiem pakalpojumiem, tostarp sshd.

Šajā rakstā mēs paskaidrosim, kā instalēt un konfigurēt fail2ban, lai aizsargātu SSH un uzlabotu SSH servera drošību pret rupja spēka uzbrukumiem CentOS/RHEL 8.

Fail2ban instalēšana CentOS/RHEL 8

Pakete fail2ban nav oficiālajos krātuvēs, bet tā ir pieejama EPEL krātuvē. Pēc pieteikšanās savā sistēmā piekļūstiet komandrindas saskarnei un pēc tam iespējojiet sistēmā EPEL repozitoriju, kā parādīts.

# dnf install epel-release
OR
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Pēc tam instalējiet Fail2ban pakotni, izpildot šādu komandu.

# dnf install fail2ban

Fail2ban konfigurēšana, lai aizsargātu SSH

Konfigurācijas faili fail2ban atrodas direktorijā/etc/fail2ban /, un filtri tiek saglabāti direktorijā /etc/fail2ban/filter.d/ (sshd filtra fails ir /etc/fail2ban/filter.d/sshd.conf) .

Fail2ban servera globālais konfigurācijas fails ir /etc/fail2ban/jail.conf, tomēr nav ieteicams tieši modificēt šo failu, jo tas, iespējams, tiks pārrakstīts vai uzlabots pakotnes jaunināšanas gadījumā nākotnē.

Kā alternatīvu ieteicams konfigurācijas izveidot un pievienot failā jail.local vai atsevišķos .conf failos direktorijā /etc/fail2ban/jail.d/. Ņemiet vērā, ka jail.local iestatītie konfigurācijas parametri ignorēs visu, kas definēts jail.conf.

Šajā rakstā mēs izveidosim atsevišķu failu ar nosaukumu jail.local direktorijā/etc/fail2ban/kā parādīts.

# vi /etc/fail2ban/jail.local

Kad fails ir atvērts, nokopējiet un ielīmējiet tajā šādu konfigurāciju. Sadaļā [DEFAULT] ir globālās opcijas, un [sshd] ir sshd cietuma parametri.

[DEFAULT] 
ignoreip = 192.168.56.2/24
bantime  = 21600
findtime  = 300
maxretry = 3
banaction = iptables-multiport
backend = systemd

[sshd] 
enabled = true

Īsi izskaidrosim iepriekšminētās konfigurācijas opcijas:

  • ignoreip: norāda to IP adrešu vai resursdatoru nosaukumus, kurus nedrīkst aizliegt.
  • bantime: norādīts sekundes, kurās resursdators ir aizliegts (t.i. faktiskais aizlieguma ilgums).
  • maxretry: norāda kļūdu skaitu, pirms resursdators tiek aizliegts.
  • findtime: fail2ban aizliedz resursdatoru, ja tas pēdējās “findtime” sekundēs ir radījis “maxretry”.
  • banācija: darbības aizliegšana.
  • aizmugure: norāda aizmuguri, ko izmanto, lai modificētu žurnāla failu.

Tāpēc iepriekš minētā konfigurācija nozīmē, ja IP pēdējās 5 minūtēs ir izgāzies 3 reizes, aizliedz to 6 stundas un ignorē IP adresi 192.168.56.2.

Pēc tam sāciet un iespējojiet servisu fail2ban un pārbaudiet, vai tas darbojas un darbojas, izmantojot šādu komandu systemctl.

# systemctl start fail2ban
# systemctl enable fail2ban
# systemctl status fail2ban

Neveiksmīgas un aizliegtas IP adreses uzraudzība, izmantojot fail2ban-client

Pēc fail2ban konfigurēšanas drošai sshd varat pārbaudīt neizdevušās un aizliegtās IP adreses, izmantojot fail2ban-client. Lai skatītu fail2ban servera pašreizējo statusu, izpildiet šo komandu.

# fail2ban-client status

Lai uzraudzītu SSD cietumu, palaidiet.

# fail2ban-client status sshd

Lai atceltu IP adreses fail2ban (visās cietumos un datu bāzēs), izpildiet šo komandu.

# fail2ban-client unban 192.168.56.1

Lai iegūtu papildinformāciju par fail2ban, izlasiet šīs manas lapas.

# man jail.conf
# man fail2ban-client

Tas apkopo šo ceļvedi! Ja jums ir kādi jautājumi vai domas, par kuriem vēlaties dalīties par šo tēmu, nevilcinieties sazināties ar mums, izmantojot zemāk esošo atsauksmju veidlapu.