Portál AbcLinuxu, 8. května 2025 00:43

Dotaz: IPv6 firewall nefunguje (ip6tables)

AraxoN avatar 27.7.2016 09:26 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
IPv6 firewall nefunguje (ip6tables)
Přečteno: 737×
Odpovědět | Admin
Experimentujem s ručne vytvoreným IPv6 firewallom na serveri a nedarí sa mi. Postupne som pôvodne zamýšľaný firewall na rôzne služby redukoval na 2 jednoduché pravidlá, z ktorých však ani jedno nefunguje ako by malo.

Firewall je vytvorený takto:
ip6tables -A INPUT -p tcp --dport 22 -j ACCEPT
ip6tables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
ip6tables -P INPUT DROP
Problém je, že od momentu kedy zmením na INPUT-e politiku na DROP (tretí riadok), firewall mi za niekoľko sekúnd odreže SSH a už sa späť nedostanem.

Vyzerá to tak, že to druhé pravidlo s conntrack chvíľu funguje (jednotky sekúnd) ale potom sa informácia o aktívnom spojení stratí a začne ďalšie packety DROP-ovať.

Pri opätovnom pokuse o pripojenie cez SSH potom z nejakého dôvodu nezafunguje prvé pravidlo a na server sa už cez IPv6 nedostanem.

Má niekto nejakú radu, kde som spravil chybu? Alebo nejaký nápad čo vyskúšať?

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

27.7.2016 09:41 NN
Rozbalit Rozbalit vše Re: IPv6 firewall nefunguje (ip6tables)
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co takto:
ip6tables -P INPUT DROP
ip6tables -P OUTPUT DROP
ip6tables -A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
ip6tables -A INPUT -p tcp --destination-port 22 -j ACCEPT
ip6tables -A OUTPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
ip6tables -A OUTPUT -j ACCEPT
AraxoN avatar 27.7.2016 09:50 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: IPv6 firewall nefunguje (ip6tables)
Nepomohlo. Nepripojím sa na SSH. :(
27.7.2016 11:47 NN
Rozbalit Rozbalit vše Re: IPv6 firewall nefunguje (ip6tables)
Tak to tam mas neco, bud jina pravidla, nebo meziprvek, ktery tu komunikaci filtruje.
AraxoN avatar 27.7.2016 12:03 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: IPv6 firewall nefunguje (ip6tables)
Pravidlá som predtým vyčistil, boli tam len tie od Teba. Medziprvok tam nie je. Je to fyzický server, ktorého ethernet port je pripojený priamo do switcha u providera. Sekne sa to za pár sekúnd potom čo sa default policy zmení na DROP. S politikou ACCEPT ide IPv6 úplne normálne, akurát firewall vtedy neplní účel.
27.7.2016 10:00 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: IPv6 firewall nefunguje (ip6tables)
Jaký smysl má nastavit chainu policy na DROP a pak do něj dát poslední pravidlo, které všechno acceptne? Jaký smysl má dávat tam to první pravidlo, když by bez něj byl výsledek úplně stejný?
27.7.2016 11:49 NN
Rozbalit Rozbalit vše Re: IPv6 firewall nefunguje (ip6tables)
Nerad bych tu rozjizdel debatu o permisivni a restriktivni politice, ktera tu uz ostatne uz jednou probehla.. Jsou proste dva tabory, deal with it..
27.7.2016 11:53 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: IPv6 firewall nefunguje (ip6tables)
Kdybych se chtěl bavit o permisivní a restriktivní politice, budu se ptát na smysl policy DROP v chainu OUTPUT. Můj dotaz byl na to, proč zcela zbytečně dávat do toho chainu dvě pravidla, která jen zpomalí zpracování paketů, když je výsledek nakonec naprosto stejný, jako kdyby byl chain prázdný a měl policy ACCEPT.
27.7.2016 10:05 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: IPv6 firewall nefunguje (ip6tables)
Odpovědět | | Sbalit | Link | Blokovat | Admin
firewall mi za niekoľko sekúnd odreže SSH a už sa späť nedostanem

Víte jistě, že je to ten firewall? Ověřoval jste, že se inkrementuje počítadlo u té politiky? Pokud ano, zkusil bych ještě na konec chainu přidat logovací pravidlo, aby bylo vidět, jak přesně vypadají pakety, které zahazuje.

AraxoN avatar 27.7.2016 10:59 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: IPv6 firewall nefunguje (ip6tables)
Počítadlá sa sporadicky inkrementujú:
host ~ # ip6tables -L -n -v
Chain INPUT (policy DROP 31 packets, 2240 bytes)
 pkts bytes target     prot opt in     out     source               destination
    3   192 ACCEPT     tcp      *      *       ::/0                 ::/0                 tcp dpt:22
    8   880 ACCEPT     all      *      *       ::/0                 ::/0                 ctstate RELATED,ESTABLISHED

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 30 packets, 2408 bytes)
 pkts bytes target     prot opt in     out     source               destination
Logging vyskúšam, to je dobrý nápad.
27.7.2016 11:12 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: IPv6 firewall nefunguje (ip6tables)
Jde hlavně o to, jestli se inkrementují (aspoň přibližně) ve chvíli, kdy vám umře to spojení. Ale z logu to samozřejmě bude vidět lépe.
AraxoN avatar 27.7.2016 12:13 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: IPv6 firewall nefunguje (ip6tables)
Keď sa pripájam, loguje to dookoloa tento záznam, ktorý prešiel celým chainom bez toho aby sa niekde matchol:
Jul 27 12:04:42 host kernel: [509093.114665] IN=net0 OUT= MAC=33:33:ff:60:64:00:00:1d:a1:b7:58:00:86:dd SRC=fe80:0000:0000:0000:021d:a1ff:feb7:5800 DST=ff02:0000:0000:0000:0000:0001:ff60:6400 LEN=72 TC=224 HOPLIMIT=255 FLOWLBL=0 PROTO=ICMPv6 TYPE=135 CODE=0
ICMPv6 Type 135 je Neighbor Solicitation. Možno to bude tak ako píše pán nižšie - potrebujem povoliť ešte ICMPv6...
27.7.2016 13:06 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: IPv6 firewall nefunguje (ip6tables)
Ano, to je přesně ono. Neighbor solicitation je IPv6 obdoba ARP dotazu. Pokud byste to chtěl řešit jemněji, budete určitě potřebovat povolit přinejmenším Neighbor advertisement, ale nemáte-li vážný důvod to omezovat, doporučoval bych povolit veškeré ICMPv6 pakety (nanejvýš s nějakým rate limitem).
AraxoN avatar 27.7.2016 16:39 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: IPv6 firewall nefunguje (ip6tables)
Vtipné je to, že som tam pôvodne mal pravidlá pre protokol "icmp", ale to je niečo iné než protokol "icmpv6". Ako mi to nešlo, tak som postupne pravidlá vyhadzoval až som dospel k tým dvom základným, ktoré som uviedol tu na fóre.
Řešení 2× (AraxoN (tazatel), Michal Kubeček)
27.7.2016 11:40 marek
Rozbalit Rozbalit vše Re: IPv6 firewall nefunguje (ip6tables)
Odpovědět | | Sbalit | Link | Blokovat | Admin
Dobry den.

Ipv6 nepouziva arp.

pouziva ipv6-icmp

-A INPUT -p ipv6-icmp -j ACCEPT
-A OUTPUT -p ipv6-icmp -j ACCEPT
Marek
AraxoN avatar 27.7.2016 12:24 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: IPv6 firewall nefunguje (ip6tables)
Ďakujem, bolo to tým. Stroj neprijímal žiadne ICMPv6 takže sa nevedel orientovať na linkovej úrovni.

Stačilo pridať:
ip6tables -A INPUT -p ipv6-icmp -j ACCEPT
27.7.2016 19:57 NN
Rozbalit Rozbalit vše Re: IPv6 firewall nefunguje (ip6tables)
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jeste dotaz. Ten server ma dynamickou IP? Se statickou by to fungovalo i bez ICMPv6?
27.7.2016 20:01 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: IPv6 firewall nefunguje (ip6tables)
Nefungovalo. Leda že byste nefunkční neighbor discovery obešel nastavením statických položek (na obou stranách).
27.7.2016 21:53 Ondrej Santiago Zajicek
Rozbalit Rozbalit vše Re: IPv6 firewall nefunguje (ip6tables)
I tak by mohl byt problem s path MTU discovery pri zablokovanem ICMP.
AraxoN avatar 27.7.2016 20:37 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: IPv6 firewall nefunguje (ip6tables)
Verejná IPv6 je nastavená statická, default routa ide z Router Announcement (RA). Na problém to ale nemá vplyv - problém je ten, že packety IPv6 sa balia do rámcov na linkovej úrovni a bez údajov z ICMPv6 nie je možné zistiť MAC adresu routra do hlavičky rámca, resp. router nevie MAC adresu zariadenia pri opačnom smere.

Pre IPv4 tento preklad zabezpečuje protokol ARP, ktorý je na nižšej úrovni, preto v IPv4 firewall bez ICMP funguje.
27.7.2016 21:09 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: IPv6 firewall nefunguje (ip6tables)
…default routa ide z Router Announcement (RA). Na problém to ale nemá vplyv…

Ne tak úplně, RA také používá ICMPv6.

28.7.2016 13:46 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: IPv6 firewall nefunguje (ip6tables)
Odpovědět | | Sbalit | Link | Blokovat | Admin

Chybí ICMPv6. Ne že by to musela nutně být příčina zrovna tohoto problému, ale zakazovat ICMP je hodně ošklivý nešvar.

AraxoN avatar 28.7.2016 13:53 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: IPv6 firewall nefunguje (ip6tables)
Áno, to bola príčina a už som to opravil.

"icmp" som tam od začiatku mal, rovnako ako pri IPv4 pravidlách. Len postupne ako som hľadal problém, tak som pravidlá redukoval, než som sa odhodlal napísať na fórum.

Zlyhal som na tom, že "icmp" nie je to isté čo "icmpv6", ako sa nakoniec ukázalo.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.