Wskazówki dotyczące ochrony serwera Linux przed atakami z zewnątrz

Myślę, że ludzie, którzy prowadzą Serwery Linux wiedzieć i wiedzieć OdrzućHOST y Fail2ban. Tym, którzy go nie znają, będę wyjaśniać trochę o tych dwóch aplikacje.

John Fredy Perez jest jednym z zwycięzcy naszego cotygodniowego konkursu: «Podziel się swoją wiedzą o Linuksie«. Gratulacje! Niespokojny o uczestniczyć i wniesiesz swój wkład do społeczności, tak jak John?

Zainstalujemy i skonfigurujemy te dwie aplikacje, aby uniknąć późniejszych bólów głowy. Przede wszystkim wyjaśnimy, czym są te dwie aplikacje i jaka jest ich funkcja:

Fail2Ban

Jest to analizator dzienników, który wyszukuje nieudane próby rejestracji i blokuje adresy IP, z których te próby pochodzą. Jest rozpowszechniany na licencji GNU i zwykle działa na wszystkich systemach, które łączą się z systemem kontroli ataków lub lokalnym firewallem.

Fail2Ban ma świetną konfigurację i może również tworzyć reguły dla programów
własne lub osoby trzecie.

OdrzućHOST

Jest to narzędzie bezpieczeństwa napisane w Pythonie, które monitoruje dzienniki serwera dostępu, aby zapobiec atakom siłowym na serwer wirtualny. Program działa poprzez blokowanie adresów IP, które przekraczają określoną liczbę nieudanych prób połączenia.

Te aplikacje systemu Linux - DenyHosts i Fail2ban - mogą być używane osobno lub razem. W moim przypadku oboje pracują razem.

Instalacja i konfiguracja każdego z nich zależy od używanej dystrybucji. Ten post jest zorientowany na CentOS 6.3, chociaż różnice między innymi dystrybucjami nie są zbyt wyraźne.

No to bierz się do pracy.

Instalacja i konfiguracja Fail2Ban

Ta aplikacja generuje dynamiczne reguły w samej zaporze systemu Linux i jest odpowiedzialna za tworzenie reguł na żywo w IpTables.

instalacja

Do instalacji a:

mniam zainstaluj fail2ban 

Jeśli pakiet się nie pojawi, musimy dodać niezbędne repozytorium:

obr/min -Uvh http://mirror.metrocast.net/fedora/epel/6/i386/epel-release-6-7.noarch.rpm

W ten sposób powinieneś rozpocząć instalację aplikacji wraz z jej zależnościami.

Teraz musimy skonfigurować Fail2Ban, aby analizował logi, które chcemy i blokować
IP, wysyłanie powiadomień pocztą elektroniczną. W tym celu musimy zmodyfikować plik jail.conf, który znajdujemy w / etc / fail2ban

cd / etc / fail2ban
nanojail.conf

W tym pliku należy wykonać następujące czynności:

  • Modify to wartość bantime, ta wartość określa czas w sekundach, w którym adres IP atakującego zostanie zablokowany, domyślnie wartość wynosi 600 sekund.
  • Znajdź wartość maxretry, która będzie określać, ile razy adres IP może mieć nieudane uwierzytelnianie przed zablokowaniem.
  • Dodaj nasze adresy IP w parametrze ignoreip. W tym przypadku aplikacja zignoruje nasze uwierzytelnione adresy IP w tym parametrze.
[DEFAULT]
# „ignoreip” może być adresem IP, maską CIDR lub hostem DNS. Fail2ban nie będzie
# zbanuj hosta, który pasuje do adresu na tej liście. Może być kilka adresów
# zdefiniowane za pomocą separatora spacji.
ignorowaćip = 127.0.0.1

# „bantime” to liczba sekund, przez które host jest blokowany.
bantime = 600

# Host jest zbanowany, jeśli wygenerował "maxretry" podczas ostatniego "findtime"
# sekundy.
findtime = 600

# "maxretry" to liczba niepowodzeń, zanim host zostanie zbanowany.
maxretry = 3

Przykład tego, jak może wyglądać, wygląda następująco:

ignorujip = 127.0.0.1 190.25.242.75 192.168.1.0/24
bantime = 800
maxretry = 2

Skonfiguruj Fail2Ban i SSH

Aby wyszukać nieudane próby logowania SSH, modyfikujemy plik, aż będzie wyglądał następująco:

[ssh-iptables] 
włączone = prawda
filter = sshd
action = iptables [name = SSH, port = 22, protocol = tcp] sendmail-whois [name = SSH, dest=FredySnake@outlook.com, sender = fail2ban @ localhost] logpath = / var / log / secure # To jest log, który przeanalizuje fail2ban
maxretry = 3 # każde IP, które ma trzy lub więcej nieudanych prób zostanie zablokowane.
bantime = 86400 # 24-godzinny ban czas wyrażony w sekundach

Nie zapominaj, że jeśli zmodyfikujesz port, na którym nasłuchuje SSH, musisz również zmodyfikować parametr portu.

Ta aplikacja działa nie tylko w przypadku nieautoryzowanego dostępu w SSH, ale także w przypadku apache, do czytania dzienników Asteriska itp.

Instalacja i konfiguracja DenyHOSTS

Jego działanie opiera się na wykorzystaniu pliku /etc/hosts.deny, czyli na blokowaniu adresów „atakujących” hostów, tworzeniu listy odrzucanych hostów.

Instalację z repozytoriów można uzyskać za pomocą następującego polecenia:

mniam zainstaluj denyhosts 

Plik konfiguracyjny znajduje się w /etc/denyhosts.conf

Zanim przejdziemy dalej, jako ludzie możemy popełniać błędy i wykonywać typową „warstwę 8” podczas uzyskiwania dostępu do dowolnych usług i blokowania się. Aby tego uniknąć, edytujemy plik /etc/hosts.allow i dodajemy adresy IP maszyn, z których nie chcemy być ograniczani z powodu błędu dostępu.

Zmodyfikuj plik denyhosts.conf

Aby nie iść tak daleko w ustawieniach, w tym pliku będziemy tylko edytować i odkomentować niektóre parametry. To są:

SERWER_SYNC = http://xmlrpc.denyhosts.net:9911
SYNC_INTERVAL = 1 godz
SYNC_UPLOAD = tak
SYNC_DOWNLOAD = tak
SYNC_DOWNLOAD_THRESHOLD = 3
SYNC_DOWNLOAD_RESILIENCY = 5 godz

W ten sposób pozostawimy konfigurację praktycznie domyślnie, ale z dużym zabezpieczeniem przed atakami SSH.

nano /etc/hosts.allow

przykład:

sshd:127.0.0.1 
sshd:192.168.1.10
sshd: 192.168.0. *

Następnie ponownie uruchamiamy usługę:

/etc/init.d/denyhosts ponowne uruchomienie

W ten sposób udzielamy pozwolenia na adres IP, zakres adresów IP i oczywiście na nasz interfejs sprzężenia zwrotnego. Coś, czego nie próbowałem - dlatego nie wiem, czy zadziała - to dodanie DNS do tego pliku; to znaczy z usługami takimi jak DynDNS. Jeśli to zrobię, powiem ci, jak poszło.

Dzięki pewnym opcjom i dostosowaniom upewnimy się również, że po upływie czasu, który wskażemy w konfiguracji DenyHOSTS, zapisane adresy są czyszczone i aktualizowane innymi listami utworzonymi przez innych - jeśli wskażemy - udzielając uprawnień dostępu serwer DenyHOSTS.

Aby od czasu do czasu wyczyścić zapisane adresy, zgodnie z konfiguracją, demon musi być uruchamiany z parametrem –purge:

/etc/init.d/denyhosts uruchom --purge

Oprócz tego musimy uwzględnić to na początku systemu:

chkconfig odrzucanie hostów włączone