Jak korzystać z Fail2ban, aby zabezpieczyć serwer Linux

Jak korzystać z Fail2ban, aby zabezpieczyć serwer Linux

Poprawa bezpieczeństwa serwera powinna być jednym z głównych priorytetów, jeśli chodzi o zarządzanie serwerem Linux. Przeglądając dzienniki serwera, często możesz znaleźć różne próby logowania Brute Force, powodzi w sieci, poszukiwanie exploit i wiele innych.

Z oprogramowaniem zapobiegającym włamaniom, takim jak Fail2ban, Możesz zbadać dzienniki serwera i dodać dodatkowe reguły IPTABLES, aby zablokować problematyczne adresy IP.

Przeczytaj także: Jak zainstalować Fail2ban, aby chronić SSH na Centos/Rhel 8

Ten samouczek pokaże, jak zainstalować Fail2ban i skonfiguruj podstawową konfigurację w celu ochrony systemu Linux przed atakami brutalnej siły.

Wymagania

Fail2ban jest napisane w Pythonie, a jedynym wymogiem jest zainstalowanie Pythona:

  • Upoważnienie oddział 0.9.x wymaga Python> = 2.6 lub Python> = 3.2
  • Upoważnienie oddział 0.8.x wymaga Python> = 2.4
  • Dostęp root do twojego systemu
  • Opcjonalnie iptables lub showewall i sendmail

Jak zainstalować Fail2ban w systemach Linux

Instalacja Fail2ban jest stosunkowo łatwe:

Zainstaluj Fail2ban na Centos/Rhel

Najpierw zaktualizuj swoje pakiety, włącz Epel repozytorium i instalacja Fail2ban jak pokazano.

# Yum Update # Yum Instal Epel-Release # Yum Instal instaluj fail2ban 

Zainstaluj Fail2ban na Debian/Ubuntu

Najpierw zaktualizuj swoje pakiety i zainstaluj Fail2ban jak pokazano.

# apt-get aktualizacja && apt-get aktualiza 

Opcjonalnie, jeśli chcesz włączyć obsługę poczty (w przypadku powiadomień pocztowych), możesz zainstalować Sendmail.

# mniam instaluj sendmail [on Centos/Rhel] # apt-get instaluj sendmail-bin sendmail [on Debian/Ubuntu] 

Umożliwić Fail2ban I Wyślij maila Użyj następujących poleceń:

# SystemCtl Start Fail2ban # Systemctl Włącz Fail2ban # Systemctl Start Sendmail # Systemctl Włącz sendmail 

Jak skonfigurować Fail2ban w systemach Linux

Domyślnie, Fail2ban używa .conf pliki znajdujące się w /etc/fail2ban/ które są czytane pierwsze. Można je jednak zastąpić .lokalny Pliki znajdujące się w tym samym katalogu.

Więc .lokalny plik nie musi zawierać wszystkich ustawień z .conf plik, ale tylko te, które chcesz zastąpić. Zmiany powinny być wprowadzane w .lokalny pliki, a nie w .conf. Zapobiegnie to zastąpieniu zmian podczas aktualizacji pakietu Fail2ban.

Na potrzeby tego samouczka skopiujemy istniejące Fail2ban.conf plik do Fail2ban.lokalny.

# cp/etc/fail2ban/fail2ban.conf/etc/fail2ban/fail2ban.lokalny 

Teraz możesz wprowadzić zmiany w .lokalny Plik za pomocą ulubionego edytora tekstu. Wartości, które możesz edytować, to:

  • Loglevel - Jest to poziom szczegółowości do zarejestrowania. Możliwe opcje to:
    • KRYTYCZNY
    • BŁĄD
    • OSTRZEŻENIE
    • OGŁOSZENIE
    • Informacje
    • ODPLUSKWIĆ
  • logTarget - Zaloguj działania w określonym pliku. Wartość domyślna to /var/log/fail2ban.dziennik. Możesz jednak zmienić to na:
    • STDOUT - Wyświetl dowolne dane
    • Stderr - Wydaj dowolne błędy
    • Syslog - rejestrowanie oparte na wiadomościach
    • Plik - wyjście do pliku
  • gniazdo elektryczne - katalog, w którym zostanie umieszczony plik gniazda.
  • Pidfile - Lokalizacja pidfile.

Skonfiguruj więzienie Fail2ban.lokalny

Jednym z najważniejszych plików w Fail2ban jest więzienie.conf który definiuje twoje więzienia. W tym miejscu definiujesz usługi, dla których należy włączyć Fail2ban.

Jak wspomnialiśmy wcześniej .conf Pliki można zmienić podczas aktualizacji, dlatego powinieneś utworzyć więzienie.lokalny plik, w którym możesz zastosować modyfikacje.

Innym sposobem na to jest po prostu skopiowanie .conf Plik z:

# cp/etc/fail2ban/więzienie.conf/etc/fail2ban/więzienie.lokalny 

Na wypadek, gdybyś używał Centos Lub Fedora, Będziesz musiał zmienić Backend W więzienie.lokalny z "automatyczny" Do „Systemd”.

Włącz backend w Fail2ban

Jeśli używasz Ubuntu/Debian, Nie ma potrzeby dokonywania tej modyfikacji, nawet jeśli one również używają Systemd.

Plik więzienia umożliwi domyślnie SSH Debian I Ubuntu, ale nie włączone Centos. Jeśli chcesz to włączyć, po prostu zmień następujący wiersz w /etc/fail2ban/więzienie.lokalny:

[sshd] włączony = true 
Czas zakazu i ponownego ponownego

Możesz skonfigurować okoliczności, po których zablokowany jest adres IP. W tym celu, Fail2ban zastosowania Bantime, znaleźć czas I Maxretry.

  • Bantime - Jest to liczba sekund, w których adres IP pozostanie zakazany (domyślnie 10 min).
  • znaleźć czas - ilość czasu między próbami logowania, zanim gospodarz zostanie zbanowany. (domyślny 10 min). Innymi słowy, jeśli upadek2ban jest ustawiony na blokowanie adresu IP po 3 Nieudane próby logowania, te 3 Próby, należy wykonać w okresie znalezienia (10 mins).
  • Maxretry - liczba prób podjęcia przed zastosowaniem zakazu. (domyślny 3).
Whitelist IP Adres

Oczywiście będziesz chciał białą niektóre adresy IP. Aby skonfigurować otwarte takie adresy IP /etc/fail2ban/więzienie.lokalny z ulubionym edytorem tekstu i odbicie następującego wiersza:

Ignorowanie = 127.0.0.1/8 :: 1 

Następnie możesz umieścić adresy IP, które chcesz zignorować. Adresy IP powinny być oddzielone od przestrzeni lub przecinka.

powiadomienia email

Jeśli chcesz otrzymać powiadomienia pocztowe na zdarzeniu, musisz skonfigurować następujące ustawienia w /etc/fail2ban/więzienie.lokalny:

  • Destemail - Adres pocztowy, w którym otrzymasz powiadomienie.
  • Imię nadawcy - nadawca, który zobaczysz podczas otrzymania wiadomości.
  • nadawca - Adres e -mail, z którego Fail2ban wyśle ​​e -maile.

Domyślny MTA (Agent przesyłania poczty) jest ustawione na Wyślij maila.

Aby otrzymać powiadomienia pocztowe, musisz również zmienić "działanie" ustawienie z:

Action = %(Action_) s 

Do jednego z nich:

Action = %(Action_MW) s Action = %(Action_Mwl) s 
  • %(Action_MW) s - Zakazuje gospodarza i wyśle ​​pocztą z raportem WHOIS.
  • %(akcja_mwl) s - Zakazuje hosta, dostarcza informacje WHOIS i wszystkie istotne informacje z pliku dziennika.

Dodatkowa konfiguracja więzienia awarii2ban

Do tej pory przyjrzeliśmy się podstawowym opcjom konfiguracji. Jeśli chcesz skonfigurować więzienie, musisz go włączyć w więzienie.lokalny plik. Składnia jest dość prosta:

[jail_to_enable]… włączony = true 

Gdzie powinieneś wymienić Jail_to_enable Na przykład z rzeczywistym więzieniem, „SSHD”. w więzienie.lokalny Plik, następujące wartości zostaną określone dla usługi SSH:

[sshd] port = ssh logpath = %(sshd_log) s 

Możesz włączyć filtr, który pomoże zidentyfikować, czy linia w dzienniku jest nieudana. Wartość filtra jest w rzeczywistości odniesieniem do pliku o nazwie usługi, a następnie .conf. Na przykład: /etc/fail2ban/filtr.D/sshd.conf.

Składnia to:

Filter = usługa 

Na przykład:

filtr = sshd 

Możesz przejrzeć istniejące filtry w następującym katalogu: /etc/fail2ban/filtr.D/.

Użyj fail2ban-client

Fail2ban jest wyposażony w klienta, którego można użyć do przeglądu i zmiany bieżącej konfiguracji. Ponieważ zapewnia wiele opcji, możesz przejść przez jego instrukcję:

# Man Fail2ban-Client 

Tutaj zobaczysz niektóre z podstawowych poleceń, których możesz użyć. Aby przejrzeć aktualny status Fail2ban Lub w przypadku konkretnego więzienia możesz użyć:

# Fail2ban-Client Status 

Wynik będzie wyglądał podobnie do tego:

Sprawdź status awarii2ban

W przypadku indywidualnego więzienia możesz uruchomić:

# Fail2ban-Client Status Sshd 

Na poniższym zrzucie ekranu zobaczysz, że celowo zawiodłem wiele loginów, więc Fail2ban może zablokować adres IP, z którego próbowałem się połączyć:

Sprawdź status Fai2ban SSH
Wniosek

Fail2ban jest doskonałym, dobrze udokumentowanym systemem zapobiegania włamaniom, który zapewnia dodatkowe bezpieczeństwo systemowi Linux. Wymaga to trochę czasu, aby przyzwyczaić się do jego konfiguracji i składni, ale po zapoznaniu się z nim będziesz mógł zmienić i rozszerzyć jego zasady.