Jak chronić SSH za pomocą fail2ban na CentOS

Spisie treści

Serwery nie istnieją w izolacji, a większość z nich jest instalowana i dostosowywana tylko przy użyciu najbardziej podstawowej konfiguracji SSH, która może być podatna na ataki typu brute force.
Narzędzie fail2ban zapewnia sposób na automatyczną ochronę serwera przed podejrzanymi atakami i złośliwym oprogramowaniem.
Program działa poprzez skanowanie plików dziennika i pomaga reagować na działania, takie jak powtarzające się nieudane próby połączenia.
Zaczniemy od zainstalowania fail2ban
Ponieważ fail2ban nie jest dostępny w CentOS, musimy zacząć od pobrania repozytorium:
rpm- Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Następnie instalujemy fail2ban z wiersza poleceń za pomocą następującego polecenia
mniam zainstaluj fail2ban

Kopiujemy plik konfiguracyjny
Domyślnym plikiem konfiguracyjnym fail2ban jest lokalizacja w /etc/fail2ban/jail.conf. Nie należy jednak wykonywać prac konfiguracyjnych na tym pliku, a zamiast tego należy wykonać jego kopię lokalną w celu wykonania kopii zapasowej.
cp / etc / fail2ban / jail.conf / etc / fail2ban / jail.local

Po skopiowaniu pliku możemy dokonać wszystkich zmian w nowym pliku jail.local. Wiele możliwych usług, które mogą wymagać ochrony, znajduje się w tym pliku już wstępnie skonfigurowanych. Każdy znajduje się we własnej sekcji, skonfigurowany i wyłączony.
Ustaw domyślne Jail.Local
Otwórz nowy plik konfiguracyjny fail2ban:
 vi / etc / fail2ban / jail.local 

Pierwsza sekcja ustawień domyślnych obejmuje podstawowe zasady, którymi będzie się kierował fail2ban. Jeśli chcesz skonfigurować bardziej spersonalizowaną ochronę swojego wirtualnego serwera prywatnego, możesz dostosować szczegóły każdej sekcji.
Możesz zobaczyć domyślną sekcję, niektóre szczegóły, takie jak poniżej.
 [DOMYŚLNE] # "Ignoruj ​​IP" może być adresem IP, maską CIDR lub hostem DNS. Fail2ban nie zablokuje # ciągu pasującego do adresu na tej liście. Wiele adresów można #definiować za pomocą separatora spacji. ignoreip = 127.0.0.1 # "Bantime" to liczba sekund, przez które host ma zakaz dostępu lub jest zbanowany. bantime = 3600 # Czas w sekundach, przez który host zostanie zablokowany, jeśli wykona maksymalną liczbę nieudanych zapytań. findtime = 600 # "Maxretry" to liczba nieudanych prób, zanim zostanie zbanowany. maksymalna ponowna próba = 3 

Wpisz swój adres IP w osobistej linii ignoreip. Każdy adres możesz oddzielić spacją. IgnoreIP umieści na białej liście niektóre adresy IP i upewni się, że nie zostaną one pominięte w twoim VPS. Podanie adresu zapewni, że przypadkowo nie zablokujesz sobie dostępu do własnego wirtualnego prywatnego serwera.
Następnym krokiem jest określenie czasu bana, czyli liczby sekund, przez które host jest blokowany z serwera, jeśli złamie którąkolwiek z zasad. Jest to szczególnie przydatne w przypadku robotów, które po zakazie dostępu po prostu przejdą do kolejnego celu. Wartość domyślna to 10 minut, jeśli chcesz, możesz zwiększyć ją do godziny.
Maxretry to liczba niepoprawnych prób dostępu, które host może mieć, zanim jego próby dostępu zostaną zbanowane na czas trwania blokady.
Findtime odnosi się do czasu, przez który host musi wprowadzić domyślną wartość 10 minut, co oznacza, że ​​jeśli zostanie podjęta próba uzyskania dostępu do hosta do serwera i nie powiedzie się, zalogowanie się więcej niż maksymalna liczba ponownych prób 3 razy w wyznaczone 10 minut, Twój adres IP zostanie zablokowany i nie będziesz mieć dostępu.
Konfiguracja ssh - sekcja iptables w Jail.Local
Sekcja szczegółów SSH znajduje się nieco dalej w ustawieniach i jest już zainstalowana i aktywowana. Chociaż nie powinieneś być zobowiązany do wprowadzania jakichkolwiek zmian w tej sekcji, poniżej znajdziesz szczegółowe informacje na temat każdego wiersza.
 [ssh - iptables] enabled = true filter = sshd action = iptables [name = SSH, port = ssh, protocol = tcp] sendmail-whois [name = SSH, dest = root, [email protected]] logpath = / var / log / bezpieczna maksymalna próba = 5

Włączone po prostu odnosi się do faktu, że ochrona SSH jest włączona. Możesz to wyłączyć słowem false.
Filtr, którego używasz domyślnie dla sshd, odnosi się do pliku konfiguracyjnego, który zawiera reguły używane przez fail2banuses do wyszukiwania dopasowań. Nazwa jest skróconą wersją rozszerzenia pliku. Na przykład sshd odnosi się do /etc/fail2ban/filter.d/sshd.conf
Akcja opisuje kroki, jakie podejmie fail2ban, aby zbanować pasujący adres IP. Podobnie jak wpis filtra, każda akcja odnosi się do pliku w katalogu action.d. Domyślną akcję bana, iptable, można znaleźć w /etc/fail2ban/action.d/iptables.conf
W iptables możesz dodatkowo dostosować fail2ban. Na przykład, jeśli używasz niestandardowego portu, możesz zmienić numer portu w nawiasach na wysokość, dzięki czemu linia widzenia będzie tą samą rodziną:
na przykład . iptables [nazwa = SSH, port = 30000, protokół = TCP]
Możesz również zmienić protokół z TCP na UDP w tej linii, w zależności od tego, który chcesz, aby fail2ban monitorował.
Jeśli masz serwer pocztowy skonfigurowany na swoim wirtualnym serwerze prywatnym, fail2ban może wysłać Ci wiadomość e-mail, gdy adres IP zostanie zbanowany. W przypadku obejścia, sendmail-whois odnosi się do akcji znajdujących się w /etc/fail2ban/action.d/sendmail-whois.conf.
ścieżka dziennika odnosi się do lokalizacji dziennika, który będzie śledzony przez fail2ban.
Wiersz maksymalnej liczby ponownych prób w sekcji SSH ma taką samą definicję, jak opcja domyślna. Jeśli jednak usługa została włączona i chcesz mieć określone wartości dla każdej z nich, możesz tutaj ustawić nową maksymalną liczbę ponownych prób dla SSH.
Uruchom ponownie fail2ban
Po wprowadzeniu jakichkolwiek zmian w konfiguracji fail2ban, zawsze pamiętaj o ponownym uruchomieniu fail2ban:
sudo restart usługi fail2ban

Możesz zobaczyć zasady, które fail2ban wprowadza w życie w tabeli IP:
iptables- L
Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave