poradniki
Strona główna » Blog » Linux » Fail2Ban blokowanie ataków brute force instalacja i konfiguracja
Fail2Ban blokowanie ataków brute force
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