Instalacja Fail2ban w Alma Linux 8
Fail2Ban jest aplikacją, która powinna być zainstalowana w zasadzie na każdej maszynie działającej pod kontrolą Unix / Linux / BSD, wystawioną na świat (zewnętrzne IP). Głównym zadaniem Fail2Ban jest blokada podejrzanych, zakończonych niepowodzeniem prób logowania się do usług świadczonych przez nasz serwer. Podsumowując zabezpiecza przed atakami typu brute force.
Działanie programu Fail2Ban opiera się na analizie logów i wychwytywaniu nieautoryzowanych prób logowania się do różnego rodzaju usług (np. ssh, smtp, pop3, imap…), po czym blokuje adres IP atakującego za pomocą reguł iptables lub dodając wpis do pliku /etc/hosts.deny
Aby dokonać instalacji na początek musimy zainstalować repozytorium epel:
1 | dnf install epel-release -y |
Kolejny krok to instalacja Fail2Ban
1 | dnf install fail2ban fail2ban-firewalld -y |
Uruchamiamy w systemie poleceniami:
1 | systemctl start fail2ban |
1 | systemctl enable fail2ban |
Skonfiguruj Fail2Ban
Główny plik konfiguracyjny Fail2Ban znajduje się w /etc/fail2ban/jail.conf. Dobrym pomysłem jest stworzenie kopii głównego pliku konfiguracyjnego. Możesz go utworzyć za pomocą następującego polecenia:
1 | cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local |
Domyślnie Fail2Ban używa zapory Iptables. Aby włączyć obsługę firewalld, uruchom następujące polecenie:
1 | mv /etc/fail2ban/jail.d/00-firewalld.conf /etc/fail2ban/jail.d/00-firewalld.local |
Następnie uruchom ponownie usługę Fail2Ban, aby zastosować zmiany:
1 | systemctl restart fail2ban |
Domyślnie Fail2Ban nie jest skonfigurowany do blokowania zdalnych adresów IP. Będziesz musiał skonfigurować plik konfiguracyjny więzienia Fail2Ban dla każdej usługi, którą chcesz chronić.
Aby chronić usługę SSH, utwórz plik konfiguracyjny więzienia dla SSH za pomocą następującego polecenia:
1 | nano /etc/fail2ban/jail.d/sshd.local |
Dodaj następujące wiersze:
1 2 3 4 5 | # Ta konfiguracja zablokuje zdalny host na 2 godziny po 3 nieudanych próbach logowania SSH. [sshd] enabled = true bantime = 2h maxretry = 3 |
Po zakończeniu zapisz i zamknij plik, a następnie uruchom ponownie usługę SSH, aby zastosować zmiany:
1 | systemctl restart fail2ban |
Możesz teraz zweryfikować konfigurację za pomocą następującego polecenia:
1 | fail2ban-client status |
Skonfigurowane więzienie otrzymasz w następujący sposób:
1 2 3 | Status |- Number of jail: 1 `- Jail list: sshd |
Aby sprawdzić, czy w SSH nie ma zakazanego adresu IP, uruchom następujące polecenie:
1 | fail2ban-client status sshd |
Otrzymasz listę wszystkich zbanowanych adresów IP w następującym wyniku:
1 2 3 4 5 6 7 8 9 | Status for the jail: sshd |- Filter | |- Currently failed: 6 | |- Total failed: 15 | `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd `- Actions |- Currently banned: 2 |- Total banned: 2 `- Banned IP list: 96.9.67.48 43.154.142.8 |
Jeśli chcesz ręcznie odblokować adres IP, uruchom następujące polecenie:
1 | fail2ban-client unban remote-ip-address |
remote-ip-address ZASTĘPUJEMY ADRESEM IP