Myślę, że prawie mam ukończoną konfigurację iptables w moim systemie CentOS 5.3. Oto mój skrypt ...
# Establish a clean slate
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F # Flush all rules
iptables -X # Delete all chains
# Disable routing. Drop packets if they reach the end of the chain.
iptables -P FORWARD DROP
# Drop all packets with a bad state
iptables -A INPUT -m state --state INVALID -j DROP
# Accept any packets that have something to do with ones we've sent on outbound
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# Accept any packets coming or going on localhost (this can be very important)
iptables -A INPUT -i lo -j ACCEPT
# Accept ICMP
iptables -A INPUT -p icmp -j ACCEPT
# Allow ssh
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Allow httpd
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# Allow SSL
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Block all other traffic
iptables -A INPUT -j DROP
W kontekście ten komputer jest hostem aplikacji wirtualnego serwera prywatnego.
W poprzednim pytaniu Lee B powiedział, że powinienem „trochę zablokować ICMP”. Dlaczego nie po prostu całkowicie go zablokować? Co by się stało, gdybym to zrobił (co złego by się stało)?
Jeśli muszę nie blokować ICMP, jak mogę bardziej go zablokować?
Odpowiedzi:
ICMP to znacznie więcej niż „traceroute” i „ping”. Służy do przesyłania informacji zwrotnych po uruchomieniu serwera DNS (portu nieosiągalnego), który w nowoczesnym serwerze DNS może faktycznie pomóc w wyborze innej maszyny, która będzie szybciej wyszukiwać.
ICMP jest również, jak wspomniano powyżej, wykorzystywany do wykrywania ścieżki MTU. Możliwe, że Twój system operacyjny ustawia „DF” (nie fragmentuj) na wysyłanych pakietach TCP. Oczekuje, że otrzyma z powrotem pakiet „wymaganej fragmentacji” ICMP, jeśli coś wzdłuż ścieżki nie obsłuży tego rozmiaru pakietu. Jeśli zablokujesz cały ICMP, twoja maszyna będzie musiała użyć innych mechanizmów awaryjnych, które w zasadzie wykorzystują limit czasu do wykrycia „czarnej dziury” PMTU i nigdy nie będą poprawnie optymalizowane.
Ponadto powinieneś zadać sobie pytanie, dlaczego chcesz zablokować ICMP. Czego konkretnie próbujesz tutaj zapobiec? Jest całkiem jasne, że nie rozumiesz, do czego służy ICMP, co jest dość powszechne. Byłbym bardzo ostrożny w blokowaniu czegoś, czego nie do końca rozumiesz.
Aby jeszcze trudniej się o tym dowiedzieć, wiele popularnych książek o zaporach mówi „blokuj ICMP” - jasne jest, że ich autorzy nigdy nie czytali RFC ani nie musieli rozwiązywać problemów związanych z takimi poradami. Złą radą jest blokowanie całego ICMP.
Teraz ograniczenie prędkości może również boleć. Jeśli Twój komputer jest zajęty, a nawet nie, możesz uzyskać duży ruch ICMP. Mój serwer internetowy prawdopodobnie otrzymuje około 10-100 pakietów ICMP na minutę, z których większość to odkrycie PMTU. Nawet jeśli ktoś zdecyduje się zaatakować mój serwer pakietami ICMP jakiegoś typu, to naprawdę nie jest taka wielka sprawa. Jeśli twój komputer akceptuje nawet jedno połączenie TCP (ssh, http, mail, itp.), Istnieje większe prawdopodobieństwo, że będzie to większy wektor ataku niż kiedykolwiek źle zrozumiany ICMP.
źródło
redirect
typu. To jedyny typ ICMP, jaki należy rozważyć w przypadku blokowania.redirect
. Rozumiem teraz, że powinienem to rozważyć, ale nie mam nic lepszego - wciąż nie mogę zdecydować w ten czy inny sposób :) Czy to ryzyko, czy nie?ICMP jest używany do szeregu funkcji diagnostycznych (np. Ping, traceroute) i kontroli sieci (np. Wykrywanie PMTU). Bezkrytyczne blokowanie ICMP powoduje u innych ludzi zgagę i jeśli nie wiesz dokładnie, co robisz, powinieneś zostawić to w spokoju.
źródło
Nigdy nie zrozumiałem, dlaczego ludzie taktują ICMP, jak powiedziano powyżej, tylko powodują bóle głowy dla ciebie i innych. Możesz ustalić, czy host działa wystarczająco łatwo i dopóki jest wystarczająco ograniczony, aby nie być używany jako DOS, nigdy nie słyszałem żadnych istotnych powodów, aby go zablokować. (Jeśli ktoś może wymyślić powód, proszę opublikować)
źródło
możesz po prostu spróbować ograniczyć icmp w ten sposób, że nie może być użyty jako atak DOS. ale istnieje zbyt wiele narzędzi do rozwiązywania problemów, takich jak ping, mtr (nie pamiętam odpowiednika systemu Windows), traceroute (tracert), które używają icmp. ich całkowite upuszczenie jest po prostu głupie. Jest to dobry sposób na sprawdzenie, czy instancja działa, nawet jeśli nie można telnetować na żadnym porcie.
do twoich reguł icmp jest prawdopodobnie przyzwoity limit, biorąc pod uwagę, ile komputer naprawdę może obsłużyć.źródło
Oto alternatywny punkt widzenia w duchu sugestii teorii bezpieczeństwa. Inne plakaty mają rację, że praktyki bezpieczeństwa są często nadgorliwe, ale ich podstawa jest dobra.
Teoria bezpieczeństwa polega na tym, że włączasz tylko to, czego potrzebujesz. Inne rzeczy (które mogą być przydatne - np. Odpowiedzi ping) mogą zostać wykorzystane przez atakującego do ograniczenia zasięgu systemu lub ewentualnie jako wektor ataku w przypadku niektórych luk, które dopiero zostaną odkryte.
Patrząc na typy komunikatów ICMP, czego POTRZEBUJESZ do normalnej, poprawnej pracy systemu?
...i tak dalej. Jeśli naprawdę chcesz to zrozumieć, dowiedz się o różnych typach ICMP i do czego służą. Artykuł w Wikipedii jest dobrym punktem wyjścia.
W praktyce naprawdę brzydkie jest przekierowanie; jeśli chcesz zrobić coś szybko i pożytecznie, zablokuj to i pozwól reszcie.
Dodałbym, że śledzenie połączeń IPtables pozwoli na odpowiednie zwracanie pakietów ICMP dla aktywnych połączeń. Więc jeśli korzystasz z conntrack, powinieneś być w stanie zablokować większość przychodzących ICMP, o ile akceptujesz POWIĄZANE pakiety (zanim zablokujesz ICMP w zestawie reguł).
źródło
Jest to przydatne narzędzie diagnostyczne do rozwiązywania problemów z łącznością sieciową.
Umożliwia także korzystanie z połączeń w innym miejscu w Internecie, które używają mniejszych MTU niż w Twojej sieci. Jeśli spróbujesz wysłać pakiet w miejsce, które jest zbyt duże i nie można go podzielić na fragmenty, urządzenie upuszcza pakiet i wysyła potrzebny pakiet fragmentacji ICMP z powrotem do nadawcy. Jeśli upuścisz wszystkie pakiety ICMP, stracisz je i wydarzy się coś dziwnego w twojej sieci.
Prawdziwe pytanie brzmi „po co blokować ICMP?” Co zyskujesz Po prostu miej dobre zasady filtrowania na granicy i przed cennymi aktywami.
źródło
ping jest dobrym narzędziem diagnostycznym, naprawdę będziesz chciał, abyś go kiedyś miał. Używam tych:
możesz też chcieć go zdławić.
źródło
Obecnie nawet ograniczenie pakietów ICMP po stronie serwera może powodować ból głowy podczas ataków DDoS. Ataki najczęściej wykonywane przez wysyłanie ogromnych okien ICMP do jednego serwera, a jeśli serwer próbuje odpowiedzieć na każdy z nich, zgadnij, co się stanie?
Najważniejsze, że mamy serwer teamspeak, który dostaje złe pakiety każdego dnia, było kilka dni w ciągu dwóch miesięcy, że mieliśmy trochę „wolnego czasu”. To, co zrobiliśmy, jest całkowicie wyłączone / zablokowane odpowiedzi ICMP, nie mamy serwerów DNS na serwerze, żadnych serwerów NTP, żadnych serwerów poczty, żadnych serwerów FTP, tylko dwa apache i teamspeak. wszystkie porty, które są niepotrzebne dla usług, są wyłączone. Planujemy zablokować nawet ssh i pozostawić tylko dwa porty otwarte. Obecnie istnieje 21 tys. (!) Stałych zakazów.
Sytuacja polega na tym, że atakujący używają głównie tunelowania ICMP, a kilka naprawdę interesujących linii dziennika zostało omówionych z administratorami serwera i powiedzieli, że mają włączone żądania ICMP serwera, więc atakujący wykorzystali to do tunelowania ataku przez nie i atakowania nas. Brzmi dziwnie, ale to prawda.
Jeśli nie potrzebujesz diagnostyki serwera i jeśli możesz całkowicie zablokować żądania lub je przefiltrować, aby na przykład upuścić ogromne okna, zrób to. Sugeruję również całkowite zablokowanie: Chiny, Korea, Tajlandia, Turcja, ponieważ większość adresów IP pochodzi właśnie z tego kraju. Miałem całe listy inetnum tych krajów, ale prawie każdego dnia pojawiają się nowe.
Mówię, co robię, jeśli się nie zgadzasz - nie rób tego. Proste. Powodzenia
źródło
Jako minimum powinieneś zezwolić na przekazywanie icmp typów 3 (miejsce docelowe nieosiągalne), 4 (tłumienie źródła) i 11 (przekroczenie czasu). Wszystkie te typy służą do rozwiązywania problemów z siecią i nie powinny być filtrowane.
(Typ gaszenia źródła jest obecnie nieaktualny, ale otwarcie go nie zaszkodzi)
źródło
Zezwalam na ruch ICMP z lokalnego intranetu, blokuję go z Internetu. W ten sposób mój serwer jest prawie niewidoczny online (odpowiada tylko na niestandardowy port SSH).
Spowoduje to wstawienie go po standardowej pętli zwrotnej, ustanowieniu, białej liście LAN, białej liście dostawców VOIP i AKCEPTACJACH portów SSH. Pozwalam na ruch, który chcę, a następnie staram się, aby serwer był niewidoczny dla reszty świata.
źródło