3 votes

Aucune connexion sortante via IPv4

Je rencontre un comportement étrange sur un VPS que je possède (Debian 8.6) et, honnêtement, j'en suis arrivé à un point où je n'ai aucune idée de comment enquêter plus ou de le réparer.

Autant que je puisse voir, le système d'exploitation est seulement capable de gérer une requête sortante vers une adresse IPv6 et pas vers une adresse IPv4 :

Requête curl à google sur IPv4 :

$ curl -v -4 google.be
* L'URL a été reconstruite en : google.be/
* Le nom d'hôte n'a pas été trouvé dans le cache DNS
*   Essai de 172.217.17.67...
* La connexion à 172.217.17.67 sur le port 80 a échoué : Délai de connexion dépassé
* Impossible de se connecter à google.be sur le port 80 : Délai de connexion dépassé
* Fermeture de la connexion 0
curl: (7) Impossible de se connecter à google.be sur le port 80 : Délai de connexion dépassé

Traceroute vers google sur IPv4 :

$ traceroute 172.217.17.67
traceroute jusqu'à 172.217.17.67 (172.217.17.67), 30 sauts max, 60 octets de données
 1  * * *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

Requête curl à google sur IPv6 :

$ curl -v -6 google.be
* L'URL a été reconstruite en : google.be/
* Le nom d'hôte n'a pas été trouvé dans le cache DNS
*   Essai de 2a00:1450:400e:802::2003...
* Connexion à google.be (2a00:1450:400e:802::2003) sur le port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.38.0
> Host: google.be
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Location: http://www.google.be/
< Content-Type: text/html; charset=UTF-8
< Date: Sam, 01 oct 2016 13:55:01 GMT
< Expires: Lun, 31 oct 2016 13:55:01 GMT
< Cache-Control: public, max-age=2592000
* Le serveur gws n'est pas blacklisté
< Serveur: gws
< Content-Length: 218
< X-XSS-Protection: 1; mode=block
< X-Frame-Options: SAMEORIGIN
<

301 Moved
301 Moved
Le document a été déplacé
ici.

* La connexion #0 à l'hôte google.be a été laissée intacte

Traceroute vers google sur IPv6 :

$ traceroute 2a00:1450:400e:802::2003
traceroute vers 2a00:1450:400e:802::2003 (2a00:1450:400e:802::2003), 30 sauts max, 80 octets de données
 1  v340.router1.dcga.ams.transip.net (2a01:7c8:aaac::2)  0.493 ms  0.409 ms  0.320 ms
 2  30gigabitethernet1-3.core1.ams1.he.net (2001:7f8:1::a500:6939:1)  11.541 ms  11.581 ms  11.569 ms
 3  amsix-router.google.com (2001:7f8:1::a501:5169:1)  1.531 ms  1.640 ms  1.509 ms
 4  2001:4860:0:f8d::1 (2001:4860:0:f8d::1)  1.500 ms 2001:4860:0:f8c::1 (2001:4860:0:f8c::1)  1.794 ms  1.871 ms
 5  2001:4860:0:1::15a9 (2001:4860:0:1::15a9)  1.774 ms  1.856 ms 2001:4860:0:1::15ad (2001:4860:0:1::15ad)  1.867 ms
 6  ams16s21-in-x03.1e100.net (2a00:1450:400e:802::2003)  1.857 ms  1.606 ms  1.459 ms

La chose étrange cependant est que le VPS est accessible en IPv4 (le serveur web et d'autres services répondent sur l'adresse IPv4).

D'après ce que je comprends, je n'ai pas de règles de pare-feu sur les connexions sortantes qui pourraient causer cela :

$ sudo iptables -L -n -v
Chaîne INPUT (politique DROP 76 paquets, 4352 octets)
 paquets bytes target     prot opt in     out     source               destination
 4330  481K LOG        all  --  eth0   *       0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 7 prefix "BANDWIDTH_IN:"
  664 79865 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
 4116  465K ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:10001
   36  2405 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443
   47  3192 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:86
    0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp multiport dports 20,21
    9   459 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:25
   46  5141 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp spt:53
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp spt:25

Chaîne FORWARD (politique ACCEPT 0 paquets, 0 octets)
 paquets bytes target     prot opt in     out     source               destination
    0     0 LOG        all  --  *      eth0    0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 7 prefix "BANDWIDTH_OUT:"
    0     0 LOG        all  --  eth0   *       0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 7 prefix "BANDWIDTH_IN:"

Chaîne OUTPUT (politique ACCEPT 7234 paquets, 6355K octets)
 paquets bytes target     prot opt in     out     source               destination
 6570 6275K LOG        all  --  *      eth0    0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 7 prefix "BANDWIDTH_OUT:"

Ma configuration réseau :

$ sudo ifconfig
eth0      Lien encap:Ethernet  HWaddr 52:54:00:xx:xx:xx
          addr. inet:95.170.xx.xx  Bcast:95.170.xx.xx  Masque:255.255.255.0
          adr inet6: 2a01:7c8:aaac:bb:5054:xx:xx:xx/64 Scope:Global
          adr inet6: fe80::5054:xx:xx:xx/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:309169854 errors:0 dropped:0 overruns:0 frame:0
          TX packets:62960742 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 long file d'attente de transmission:1000
          RX bytes:75197092341 (70.0 GiB)  TX bytes:32195269170 (29.9 GiB)

lo        Lien encap:Boucle locale
          inet adr:127.0.0.1  Masque:255.0.0.0
          adr inet6: ::1/128 Scope:Hôte
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:92231464 errors:0 dropped:0 overruns:0 frame:0
          TX packets:92231464 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 long file d'attente de transmission:0
          RX bytes:13174664705 (12.2 GiB)  TX bytes:13174664705 (12.2 GiB)

J'ai un autre VPS avec le même hébergeur et je n'ai aucun problème sur celui-ci.

9voto

MadHatter Points 77602

Votre problème n'est pas que vos paquets sortants sont bloqués, mais que les réponses entrantes suscitées par ces paquets sortants sont bloquées. Essayez d'ajouter une règle comme

iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

et voyez si cela résout le problème. Au fait, il est toujours bon de terminer votre ensemble de règles avec une règle de journalisation, afin de pouvoir voir ce qui est rejeté à la fin de la chaîne et bloqué par la politique; quelque chose comme

iptables -A INPUT -j LOG --log-prefix="INPUT DROP: "

De cette façon, si vous constatez que vous ne pouvez pas faire quelque chose que vous pensiez pouvoir faire, vous pouvez voir si du trafic est rejeté et pourrait être à l'origine du problème.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X