Ogólnie rzecz biorąc, bezpieczeństwo jest rzeczą cebulową, jak już wspomniano. Istnieją powody, dla których istnieją zapory ogniowe, i nie tylko wszystkie inne lemingi są głupimi kretynami.
Ta odpowiedź pochodzi, ponieważ wyszukiwanie hasła „fail2ban” na tej stronie nie dało mi żadnych wyników. Więc jeśli podwoję inne treści, zachowajcie mnie. I przepraszam, jeśli trochę wygaduję, zapewniam proste doświadczenie, ponieważ może się przydać innym. :)
Uwagi dotyczące sieci, lokalne a zewnętrzne
Jest to raczej specyficzne dla Linuksa i koncentruje się na firewallu opartym na hoście, co zwykle jest przypadkiem użycia. Zewnętrzna zapora ogniowa idzie w parze z odpowiednią strukturą sieci i zwykle uwzględniają to inne względy bezpieczeństwa. Albo wiesz, co to sugeruje, prawdopodobnie nie będziesz potrzebować tego postu. Albo nie, to po prostu czytaj dalej.
Uruchamianie zapór zewnętrznych i lokalnych może wydawać się sprzeczne z intuicją i podwójną pracą. Daje to jednak również możliwość zmiany reguł na zewnętrznym, bez narażania bezpieczeństwa wszystkich pozostałych hostów za tym stojących. Potrzeba może wynikać z przyczyn debugowania lub dlatego, że ktoś właśnie spieprzył. Kolejny przypadek użycia pojawi się w sekcji „globalna zapora ogniowa adaptacyjna”, do której potrzebne będą również zapory globalne i lokalne.
Koszt i dostępność i ta sama historia przez cały czas:
Zapora ogniowa jest tylko jednym z aspektów odpowiednio zabezpieczonego systemu. Nie instalując zapory ogniowej, ponieważ „kosztuje” pieniądze, wprowadza SPOF lub cokolwiek innego, to bzdury, przepraszam za mój francuski tutaj. Wystarczy skonfigurować klaster. Och, ale co, jeśli komórka ogniowa ma awarię? Następnie ustaw klaster na dwa lub więcej przedziałów ogniowych.
Ale co, jeśli całe centrum danych jest nieosiągalne, ponieważ oba zewnętrzne nośniki są nieczynne (koparka zabiła twoje włókno)? Po prostu spraw, aby twój klaster obejmował kilka centrów danych.
To jest drogie? Klastry są zbyt złożone? Cóż, za paranoję trzeba zapłacić.
Samo marudzenie na temat SPOF, ale nie chcieć płacić więcej pieniędzy lub tworzyć nieco bardziej skomplikowane konfiguracje, to wyraźny przypadek podwójnych standardów lub po prostu małego portfela po stronie firmy lub klienta.
Ten wzór dotyczy WSZYSTKICH tych dyskusji, bez względu na to, która usługa jest aktualną sprawą dnia. Bez względu na to, czy jest to brama VPN, Cisco ASA używana tylko do zapory ogniowej, bazy danych MySQL lub PostgreSQL, systemu wirtualnego lub sprzętu serwerowego, zaplecza pamięci, przełączników / routerów, ...
Do tej pory powinieneś mieć pomysł.
Po co zawracać sobie głowę zaporą ogniową?
Teoretycznie twoje rozumowanie jest rozsądne. (Można korzystać tylko z uruchomionych usług.)
Ale to tylko połowa prawdy. Zapora ogniowa, szczególnie zapora ogniowa stanowa, może zrobić dla ciebie znacznie więcej. Bezstanowe zapory ogniowe są ważne tylko wtedy, gdy występują problemy z wydajnością, takie jak wspomniane wcześniej.
Łatwa, centralna, dyskretna kontrola dostępu
Wspomniałeś o opakowaniach TCP, które implementują tę samą funkcjonalność do zabezpieczenia twojego. Dla argumentu załóżmy, że ktoś nie wie tcpd
i lubi używać myszy? fwbuilder
może przyjść na myśl.
Pełny dostęp z sieci zarządzania jest czymś, co powinieneś włączyć, co jest jednym z pierwszych przypadków użycia zapory opartej na hoście.
Co powiesz na konfigurację wieloserwerową, w której baza danych działa gdzie indziej i nie możesz umieścić obu / wszystkich komputerów we wspólnej (prywatnej) podsieci z jakiegokolwiek powodu? Użyj zapory, aby zezwolić na dostęp do MySQL na porcie 3306 tylko dla jednego podanego adresu IP drugiego serwera, gotowe, proste.
I to działa również bezbłędnie dla UDP. Lub jakikolwiek protokół. Zapory ogniowe mogą być tak cholernie elastyczne. ;)
Łagodzenie Portscan
Ponadto, dzięki zaporze ogniowej, można wykrywać i ograniczać ogólne skany portów, ponieważ ilość połączeń w danym okresie czasu można monitorować za pośrednictwem jądra i stosu sieciowego, a zapora może na to działać.
Również niepoprawne lub niejasne pakiety mogą być obsługiwane przed dotarciem do aplikacji.
Ograniczanie ruchu wychodzącego
Filtrowanie ruchu wychodzącego jest zwykle uciążliwe. Ale może być koniecznością, w zależności od umowy.
Statystyka
Kolejną rzeczą, którą zapora może Ci dać, są statystyki. (Pomyśl watch -n1 -d iptables -vnxL INPUT
o dodaniu kilku reguł dla specjalnych adresów IP u góry, aby sprawdzić, czy pakiety nadchodzą.)
Możesz zobaczyć w świetle dziennym, czy coś działa, czy nie. Co jest BARDZO przydatne podczas rozwiązywania problemów z połączeniami i możliwości powiadamiania drugiej osoby przez telefon, że nie otrzymujesz pakietów, bez konieczności uciekania się do rozmów tcpdump
. Praca w sieci jest fajna, większość ludzi po prostu teraz wie, co robi, a często to tylko proste błędy routingu. Do diabła, nawet ja nie zawsze wiem, co robię. Chociaż pracowałem z dosłownie dziesiątkami skomplikowanych systemów i urządzeń, często także z tunelowaniem.
IDS / IPS
Zapora ogniowa w warstwie 7 jest zwykle olejem wężowym (IPS / IDS), jeśli nie jest odpowiednio obsługiwana i regularnie aktualizowana. Co więcej, licencje są cholernie drogie, więc oszczędzę sobie, jeśli nie będziesz naprawdę potrzebował wszystkiego, co mogą ci kupić pieniądze.
Maskarada
Łatwo, po prostu spróbuj tego ze swoimi opakowaniami. :RE
Lokalne przekierowanie portów
Zobacz maskarada.
Zabezpieczanie kanałów dostępu do hasła za pomocą dynamicznych adresów IP
Co jeśli klienci mają dynamiczne adresy IP i nie ma wdrożonej konfiguracji VPN? Lub inne dynamiczne podejścia do zapory ogniowej? Jest to już wskazane w pytaniu, a tutaj pojawi się przypadek użycia dla Niestety, nie mogę znaleźć żadnych zapór ogniowych, które to robią. część.
Wyłączenie dostępu do konta root za pomocą hasła jest koniecznością. Nawet jeśli dostęp jest ograniczony do niektórych adresów IP.
Ponadto posiadanie gotowego kolejnego konta blanko z logowaniem do hasła w przypadku zgubienia kluczy ssh lub niepowodzenia wdrożenia jest bardzo przydatne, jeśli coś pójdzie naprawdę nie tak (użytkownik ma dostęp administracyjny do komputera i „coś się stało”?). Jest to ten sam pomysł na dostęp do sieci, ponieważ ma on tryb pojedynczego użytkownika w systemie Linux lub korzystanie init=/bin/bash
z grub
lokalnego dostępu jest naprawdę bardzo złe i nie może korzystać z dysku na żywo z jakiegokolwiek powodu. Nie śmiej się, są produkty do wirtualizacji, które tego zabraniają. Nawet jeśli funkcjonalność istnieje, co się stanie, jeśli uruchomiona zostanie przestarzała wersja oprogramowania pozbawiona tej funkcjonalności?
W każdym razie, nawet jeśli uruchomisz demona ssh na jakimś ezoterycznym porcie, a nie na 22, jeśli nie zaimplementowałeś takich rzeczy, jak pukanie portów (aby otworzyć nawet inny port i tym samym łagodzić skany portów, powoli granicząc z byciem zbyt niepraktycznym), skany portów wykryją twoje usługi w końcu.
Zazwyczaj wszystkie serwery są konfigurowane z tą samą konfiguracją, z tymi samymi portami i usługami ze względu na wydajność. Nie można ustawić ssh na innym porcie na każdym komputerze. Nie można go również zmienić na wszystkich komputerach za każdym razem, gdy uważa się, że jest to informacja „publiczna”, ponieważ jest już po skanie. Kwestia nmap
legalności, czy nie, nie stanowi problemu, gdy masz do dyspozycji zhakowane połączenie Wi-Fi.
Jeśli to konto nie ma nazwy „root”, ludzie mogą nie odgadnąć nazwy konta użytkownika „backdoora”. Ale będą wiedzieć, jeśli zdobędą inny serwer od twojej firmy, lub po prostu kupią trochę przestrzeni internetowej i spojrzą na niezrootowane / nieskażone / niezabezpieczone /etc/passwd
.
Aby uzyskać czysto teoretyczną ilustrację, mogliby skorzystać z dostępnej na tej stronie witryny, aby uzyskać dostęp do twojego serwera i sprawdzić, jak zwykle działają u Ciebie. Twoje narzędzia do wyszukiwania włamań mogą nie działać 24 godziny na dobę, 7 dni w tygodniu (zwykle robią to w nocy ze względu na wydajność dysku podczas skanowania systemu plików?), A skanery antywirusowe nie są aktualizowane, gdy tylko nowy dzień zero ujrzy światło dzienne, więc będzie nie wykrywaj tych zdarzeń naraz, a bez innych środków ochronnych możesz nigdy nie wiedzieć, co się stało. Aby powrócić do rzeczywistości, jeśli ktoś ma dostęp do exploitów zero-day, jest bardzo prawdopodobne, że i tak nie będzie atakował twoich serwerów, ponieważ są one po prostu drogie. Ma to na celu zilustrowanie, że zawsze istnieje możliwość wejścia do systemu, jeśli pojawi się „potrzeba”.
Ale w tym temacie, po prostu nie używaj dodatkowego konta z hasłem i nie przejmuj się? Proszę czytaj dalej.
Nawet jeśli atakujący zdobędą nazwę i port tego dodatkowego konta, kombinacja fail2ban
+ iptables
zatrzyma ich na krótko, nawet jeśli użyłeś tylko ośmioliterowego hasła. Plus fail2ban można również wdrożyć dla innych usług, poszerzając horyzont monitorowania!
W przypadku własnych usług, jeśli kiedykolwiek zajdzie taka potrzeba: w zasadzie każda awaria logowania usługi do pliku może uzyskać obsługę fail2ban poprzez udostępnienie pliku, dopasowanie wyrażenia regularnego i liczbę dozwolonych awarii, a zapora sieciowa z przyjemnością zablokuje każdy adres IP jest powiedziane.
Nie mówię, aby używać 8-cyfrowych haseł! Ale jeśli zostaną zablokowani na 24 godziny za pięć prób podania błędnego hasła, możesz zgadnąć, jak długo będą musieli spróbować, jeśli nie będą mieli do dyspozycji botnetu, nawet przy tak kiepskim zabezpieczeniu. Byłbyś zaskoczony tym, jakich haseł używają klienci, nie tylko do ssh
. Przejrzenie haseł poczty elektronicznej za pośrednictwem Plesk mówi ci wszystko, czego wolałbyś nie chcieć wiedzieć, gdybyś kiedykolwiek zrobił, ale czego nie próbuję tu oczywiście sugerować. :)
Adaptacyjna globalna zapora ogniowa
fail2ban
to tylko jedna aplikacja, która używa czegoś podobnego do tego iptables -I <chain_name> 1 -s <IP> -j DROP
, ale możesz łatwo zbudować takie rzeczy za pomocą magii Bash dość szybko.
Aby dalej rozwinąć coś takiego, zsumuj wszystkie adresy IP fail2ban z serwerów w Twojej sieci na dodatkowym serwerze, który selekcjonuje wszystkie listy i przekazuje je z kolei do twoich podstawowych zapór blokujących cały ruch już na krawędzi sieci.
Takiej funkcjonalności nie można sprzedać (oczywiście można, ale będzie to po prostu kruchy system i zasysanie), ale trzeba ją wplecić w infrastrukturę.
Możesz na nim także używać adresów IP z czarnej listy lub list z innych źródeł, niezależnie od tego, czy są one agregowane przez ciebie, czy przez zewnętrzne.