poradniki

Fail2Ban blokowanie ataków brute force

wpis_header_img

Co to jest Fail2Ban

Fail2Ban to aplikacja, która odpowiada za blokowanie podejrzanych, zakończonych niepowodzeniem prób logowania się do usług świadczonych przez nasz serwer. Podsumowując zabezpiecza przed atakami typu brute force. Fail2Ban zabezpiecza przed atakami typu brute force, DDoS lub próbami wykorzystania exploitów. Aplikacja opiera się na analizie logów i wychwytywaniu nieautoryzowanych prób logowania się do różnego rodzaju usług (np. ssh, smtp, pop3, imap itp.), w następstwie czego blokuje adres IP atakującego za pomocą reguł iptables lub dodając wpis do pliku /etc/hosts.deny.

Instalacja i konfiguracja Fail2Ban

Instalacja Fail2Ban

sudo apt update
sudo apt install fail2ban

Uruchamiamy Fail2Ban

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Konfiguracja Fail2Ban

Podczas edycji pliku /etc/fail2ban/jail.local można zmodyfikować parametry takie jak:

  • ignoreip: w tym parametrze znajduje się lista adresów IP, które powinny być wyłączone z zasad fail2ban. Można dodać swój adres IP.
  • bantime: ten parametr określa jak długo (w sekundach) ban będzie aktywny (domyślnie jest 10 minut).
  • maxretry: ten parametr określa domyślną ilość prób połączenia zanim ban zostanie nałożony na adres IP (domyślnie jest 3).
  • destemail: ta opcja pozwala ustawić adres e-mail, na który będą przychodzić powiadomienia zdarzeń.
  • logpath: ważne, aby sprawdzić czy ścieżka do pliku logów podana w parametrze logpath jest prawidłowa.

Aby rozpocząć konfigurowanie Fail2ban, należy skopiować domyślny plik /etc/fail2ban/jail.conf zawierający domyślną konfigurację do pliku /etc/fail2ban/jail.local. Dzieje się tak, ponieważ podczas aktualizacji pliki domyślne mogą zostać nadpisane.

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

Dodajemy nasz adres IP do wyjątków

ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 192.168.1.120

Ustwiania czasu blokady ustawiamy w ten sposób oczywiście wartości możemy zmienić według własnego uznania

	
bantime  = 1d
findtime  = 10m
maxretry = 5

Blokada błędnych logowań ssh Fail2Ban

	
[sshd]
enabled   = true
maxretry  = 3
findtime  = 1d
bantime   = 1w
 
port    = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
Jeżeli chcemy otrzymywać powiadomienia email o blokadach dodaje następujące polecenia
action = %(action_mw)s
destemail = nasz_adres_email
sender = root@domena.pl
Scroll to Top