URL: https://linuxfr.org/forums/general-general/posts/ipv6-shorewall6-connexion-faussement-acceptee-ou-chercher Title: ipv6/shorewall6: connexion faussement acceptée, où chercher? Authors: Thomas Debesse Date: 2017年05月11日T18:50:44+02:00 License: CC By-SA Tags: Score: 0 Voilà, je suis en train de batailler avec un truc qui me semble assez simple, mais je dois manquer quelque chose de manière évidente donc ma question est un peu de l’ordre « où chercher ? ». J’ai un simple serveur sur le net avec un préfixe /56 (l’ipv6 est statique mais le routage est obtenu avec dhcpv6). `ifconfig` me sort quelque chose comme ça: ``` eth0 Link encap:Ethernet HWaddr inet adr: Bcast: Masque:255.255.255.0 adr inet6: /56 Scope:Global adr inet6: /64 Scope:Lien ``` Initialement c’était beaucoup plus complexe avec plein de réseaux différents, des bridges etc. mais j’ai réduit au minimum pour débuguer mon problème : une interface, deux zones (net et fw). Voici ma config `shorewall6`: ``` $ cat /etc/shorewall6/interfaces ?FORMAT 2 net eth0 tcpflags,forward=1 $ cat /etc/shorewall6/policy $FW all ACCEPT all all DROP info $ cat /etc/shorewall6/rules ?SECTION ALL ?SECTION ESTABLISHED ?SECTION RELATED ?SECTION INVALID ?SECTION UNTRACKED ?SECTION NEW DNS(ACCEPT) $FW net Ping(ACCEPT) net $FW ACCEPT:info net $FW tcp 33 $ cat /etc/shorewall6/zones fw firewall net ipv6 ``` J’ai quasiment la même coté `shorewall`, modulo les ajustements ipv4/ipv6. J’essaie donc d’accéder à un service sur le port 33 (sorti du chapeau), pour tester je lance un serveur ssh qui écoute sur ce port (ou bien un simple netcat en écoute), et j’essaie de faire une connexion ssh (ou bien un simple telnet) sur ce port. Il est important de noter que tout fonctionne tant que je ne démarre pas shorewall6, ce qui indique que ma configuration ipv6 et mon service fonctionnent correctement. Après avoir démarré `shorewall` et `shorewall6`, Je tente une connexion en ipv4 (`ssh -p 33 `) j’obtiens cela dans mes logs : ``` mai 11 16:14:16 box kernel: Shorewall:net-fw:ACCEPT:IN=eth0 OUT= MAC= SRC= DST= LEN=60 TOS=0x00 PREC=0x00 TTL=51 ID=42505 DF PROTO=TCP SPT=48164 DPT=33 WINDOW=29200 RES=0x00 SYN URGP=0 ``` et ma connexion ssh se fait. Je tente une connexion en ipv6 (`ssh -p 33 `) j’obtiens cela dans mes logs : ``` mai 11 16:16:45 box kernel: Shorewall:net-fw:ACCEPT:IN=eth0 OUT= MAC= SRC= DST= LEN=80 TC=0 HOPLIMIT=58 FLOWLBL=1016538 PROTO=TCP SPT=56320 DPT=33 WINDOW=28400 RES=0x00 SYN URGP=0 ``` et ma connexion ne se fait pas. Accessoirement, si je tente une connexion sur un port non autorisé (comme le port 34) j’obtiens : ``` mai 11 16:21:45 box kernel: Shorewall:net-fw:DROP:IN=eth0 OUT= MAC= SRC= DST= LEN=80 TC=0 HOPLIMIT=58 FLOWLBL=615549 PROTO=TCP SPT=45246 DPT=34 WINDOW=28400 RES=0x00 SYN URGP=0 ``` comme attendu. Si, au lieu d’un `ssh` je lance un `netcat` en écoute sur le serveur et un `telnet` sur le client, et que je tape quelque chose côté client, je ne reçois rien coté serveur, ce qui me confirme que ce n’est pas un problème dans le protocole ssh (négociation ou je sais pas quoi): absolument rien ne parvient, nada. Comme vous le voyez la connexion est acceptée, mais le service ne reçoit rien. Bref, la configuration me semble tellement simpliste que je ne sais même pas où chercher. Une idée ? Chose intéressante à savoir, quand je tombe `shorewall6`, la connexion ne se fait plus non-plus, donc le problème n’est probablement pas dans mes règles mais dans des configurations réseaux que shorewall6 fait implicitement. Le truc intéressant à savoir est que ma configuration réseau est faite ainsi (`/etc/network/interfaces`): ``` auto eth0 iface eth0 inet static address netmask 255.255.255.0 network broadcast gateway iface eth0 inet6 static address netmask 56 accept_ra 1 pre-up sleep 2s pre-up dhclient -cf /etc/dhcp/dhclient6.conf -pf /run/dhclient6.$IFACE.pid -6 -P -v $IFACE pre-down dhclient -x -pf /run/dhclient6.$IFACE.pid ``` Si je fais un `ifdown eth0; ifup eth0` _après_ avoir démarré `shorewall6`, tout fonctionne (et il fait bien son affaire). C’est aussi pour cela que je suspecte Shorewall de toucher à quelques paramètres réseaux... Une idée ?

AltStyle によって変換されたページ (->オリジナル) /