Czy muszę także skonfigurować inne reguły iptables dla ipv6, jeśli właśnie użyłem iptables?


21

Powiedzmy, że mam konfigurację zapory ogniowej na moim serwerze linux z iptables, więc akceptuję tylko ruch z portu 22 i 80 i blokuję dostęp do wszystkich innych portów.

Czy te reguły działają tylko wtedy, gdy komputer kliencki używa adresu IPv4? Więc jeśli używany jest adres IPv6, klient może uzyskać dostęp do portów, których nie chcę? (tj. porty inne niż port 22 i port 80)


Nie zaznaczyłeś żadnej odpowiedzi jako użytecznej. Powinieneś to zrobić. ;-)
Anders

Odpowiedzi:


21

iptablesdziała dla IPv4, ale nie dla IPv6. ip6tablesjest równoważną zaporą IPv6 i jest instalowany z iptables.

Ostatecznie jednak iptablesdotyczy połączeń IPv4, ip6tablesdotyczy połączeń IPv6. Jeśli chcesz, aby Twoje iptablesreguły dotyczyły również IPv6, musisz je ip6tablesrównież dodać .


Jeśli spróbujesz zreplikować iptableszestaw reguł ip6tables, nie wszystkie reguły, które iptablesmogą to zrobić, zostaną odpowiednio przeniesione ip6tables, ale większość z nich tak.

Zapoznaj się z podręcznika dlaip6tables jeśli chcesz się upewnić, że komendy użyć w swojej iptableswoli zgrabnie nad portem.


Jeśli chcesz, możemy pomóc Ci w tworzeniu równoważnych ip6tableszestawów reguł zgodnych z twoimi iptablesregułami, jeśli podasz listę reguł zapory (usuwając wszelkie informacje, które mogłyby zidentyfikować system coruse). W przeciwnym razie możemy odpowiedzieć tylko na twoje ogólne pytanie.


10
Czy to nie jest takie śmieszne? Aby to wyjaśnić, więc teraz wszystkie moje porty na serwerze są szeroko otwarte dla każdego, kto łączy się z adresem IPv6?
user230779

3
@ user230779 Zgadzam się, że jest to „niedorzeczne”, ale właśnie dlatego ufwistnieją inni menedżerowie zapory ogniowej, którzy sami dodają reguły do ​​obu. Problemem tutaj nie jest jednak: „Czy ktoś z IPv6 może zobaczyć moją stronę?” większym problemem jest to, czy twój system ma adresy IPv6. Większość połączeń ma IPv4 i IPv6 z komputerów klienckich takich jak moje. Ale jeśli zdalny serwer nie ma publicznego adresu IPv6, wówczas IPv4 jest podłączony. Jak rozumiem, jeśli masz IPv6, powinieneś również dodać reguły ip6tables.
Thomas Ward

1
@ user230779 Mógłbym stworzyć skrypt, który wykonałby to samo polecenie dla iptablesAND ip6tables, a ogólne zasady, takie jak -p tcp --dport, nadal będą działać, ale bardziej złożone reguły mogą nie ... (jak -j REJECT --reject-with [something])
Thomas Ward

Thomas, czy możesz połączyć mnie z bezpiecznym przykładem ip6tables dla serwera Apache?
user230779

1
@Braiam nigdy nie powiedział nic o flagach. Niektóre polecenia nie będą działać ( -j REJECT --reject-with icmp-host-prohibitedna przykład, ponieważ pakiet odrzucania ma inną nazwę w IPv6)
Thomas Ward

3

Jak już powiedzieli inni, istnieją różne tabele zapory dla IPv4 i IPv6. Możesz skonfigurować reguły dla IPv6 jak dla IPv4, ale istnieje duże ryzyko, że zepsujesz je, jeśli nie znasz IPv6. Na przykład nie możesz wpaść ICMPna IPv6, ponieważ są tam niezbędne części do uzgadniania. Jak powiedzenie nadawcy, że ramki są zbyt duże itp. Bez tych rzeczy IPv6 może przestać działać dla niektórych użytkowników.

Zaleca więc użycie pakietu ufwlub pakietu shorewall6razem z shorewall. Do iptablesinterfejsu internetowego ufwobsługuje zarówno IPv4 i IPv6 i działa świetnie na serwerach z jednym lub dwoma interfejsami ale nie ruch trasach (praca jako routera lub bramy). Jeśli kierujesz ruchem, potrzebujesz czegoś lepszego, na przykład shorewallręcznie dodaj kilka reguł przekazywania dalej za pomocą iptablesi ip6tables.

Nie zapominaj, że możesz mieć więcej niż jeden adres IPv6 na swoich interfejsach. Niektóre z nich mają wyłącznie lokalny link, inne są statyczne i dynamiczne. Powinieneś więc odpowiednio skonfigurować reguły, a serwery nasłuchują tylko na właściwych adresach.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.