Jak korzystać z Fail2ban, aby zabezpieczyć serwer Linux
- 3718
- 322
- Pan Jeremiasz Więcek
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 Fail2banJeś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 awarii2banW 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 SSHWniosek
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.
- « Jak zainstalować i skonfigurować węzeł sterujący Ansible - Część 2
- Jak zainstalować Apache ActiveMQ na Debian 10 »