Zastanawiałem się, czy ktoś może mi pomóc z następującą zasadą iptables:
Chcielibyśmy zezwolić na DOWOLNY i WSZYSTKO lokalnie inicjujący (jak na serwerze działającym iptables) ruch.
DNS, HTTP itp. ... wszystko to. Każde połączenie zainicjowane przez serwer z uruchomionym programem iptables powinno być dozwolone.
Obecnie używamy w zasadzie domyślnej polityki WYJŚCIA, AKCEPTUJĘ. Czy to jest poprawne? Wejścia są blokowane, więc zakładam, że oznacza to, że połączenia (oprócz tych, na które zezwalamy) nie mogą zostać uruchomione, ponieważ zostaną zerwane, zanim nasza strona będzie mogła zastosować politykę WYDAJNOŚCI?
Przepraszam, moje umiejętności iptables są słabe;)
Uprzejmie dziękuję.
-d 0.0.0.0/0
jest zbędny i nie jest potrzebny.To wystarcza dla WYJŚCIA, ponieważ Netfilter nie potrzebuje specjalnych reguł, aby rozpocząć śledzenie połączeń stanowych.
Ale jeśli chcesz odfiltrować ruch przychodzący zgodnie z zasadą „ domyślnego odmowy ”, możesz to zrobić przełączając
INPUT
-chain naDROP
:iptables -P INPUT DROP
Potem wszystko będzie ustawione z tylko 2 zasadami :
Zwróć uwagę na regułę zezwalającą na ruch wejściowy na interfejsie sprzężenia zwrotnego - jak zauważyłem w swoim blogu „ Minimalna zapora ogniowa dla użytkownika końcowego ”, chyba że wyraźnie zezwolono, ruch sprzężenia zwrotnego nie będzie obsługiwany przez „sprawdzone” sprawdzanie stanu, w porównaniu ze zwrotem ruch na, powiedzmy,
eth0
.Aby mieć pewność, że ten minimalny zestaw reguł jest ładowany „ tak jak jest ” bez ingerencji w reguły, które już mogą tam być, wygodnie jest skorzystać z
iptables-restore
sesji SHELL:Zanim to zrobisz, upewnij się, że nie przerwiesz własnego połączenia sieciowego 1 , chociaż już otwarte sesje SSH powinny kontynuować normalne działanie, próby otwarcia nowych nie będą działać.
__
-A INPUT -j ACCEPT -p tcp --dport 22
- nie trzeba-m state
tutaj majstrować . Nie zapomnij też naprawićlptables-restore
tegoiptables-restore
przed wypróbowaniem;)źródło