Debian passerelle internet bloque le pop

Bonjour à tous,

J’essaye de faire une passerelle internet avec Debian Squeeze où eth0 est l’interface vers le réseau local et eth1 l’interface vers le réseau externe.

J’ai repris les configs squid,shorewall…d’un ancien poste sur une vieille debian 4. Tout semble fonctionner sauf les accès des postes clients en pop.

J’ai commencé par créer un script qui enlève les règles du pare-feu et autorise tout le monde pour vérifier:
echo "Stopping firewall and allowing everyone…"
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

Mais rien ne change j’ai toujours le message pour mes accès pop externe:
0X80042108 …n’arrive pas à se connecter au serveur pop

Merci pour votre aide.

Attention, si tu enlèves aussi l’éventuelle règle SNAT/MASQUERADE nécessaire à l’accès internet, normal que ça ne marche pas (et pas seulement le POP).

Ok

j’ai rajouté la ligne suivante:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

J’ai bien accès au Web mais toujours impossible de relever mon courier.

Ça va peut-être te paraître con comme question, mais avant de chercher du côté du routage as-tu vérifié que tu accèdes au(x) serveur(s) en question à partir de la passerelle elle-même ? (genre avec netcat ou telnet)

Un petit tcptraceroute peut aider au diagnostic.

Merci pour vos idées mais oui j’ai déjà fait le test…

J’ai testé avec un ping, telnet 110 et traceroute et mais pas tcptraceroute.

En tout cas j’accède bien à pop.1and1.fr depuis ma passerelle

Et qu’est-ce que ça donne exactement pour chaque commande ?

PING

ping pop.1and1.fr

PING pop.1and1.fr (212.227.15.156) 56(84) bytes of data.
64 bytes from pop.1and1.fr (212.227.15.156): icmp_req=1 ttl=51 time=85.4 ms
64 bytes from pop.1and1.fr (212.227.15.156): icmp_req=2 ttl=51 time=82.8 ms
64 bytes from pop.1and1.fr (212.227.15.156): icmp_req=3 ttl=51 time=82.6 ms
64 bytes from pop.1and1.fr (212.227.15.156): icmp_req=4 ttl=51 time=82.4 ms
64 bytes from pop.1and1.fr (212.227.15.156): icmp_req=5 ttl=51 time=82.4 ms
64 bytes from pop.1and1.fr (212.227.15.156): icmp_req=6 ttl=51 time=82.6 ms


TRACEROUTE

traceroute pop.1and1.fr 110

traceroute to pop.1and1.fr (212.227.15.156), 30 hops max, 110 byte packets
1 * * *
2 * * *
3 80.10.215.213 (80.10.215.213) 44.205 ms 46.374 ms 48.498 ms
4 ae43-0.nimsr302.Paris.francetelecom.net (193.252.159.153) 50.696 ms 52.246 ms 54.381 ms
5 81.253.184.22 (81.253.184.22) 66.507 ms 66.509 ms 66.090 ms
6 xe-10-0-2-0.auvtr3.Aubervilliers.opentransit.net (193.251.131.201) 61.830 ms 34.284 ms 34.771 ms
7 81.52.179.174 (81.52.179.174) 35.295 ms 35.403 ms 35.462 ms
8 ae3.scr4.CDG2.gblx.net (67.16.138.9) 48.709 ms 40.600 ms 36.541 ms
9 xe8-2-0-10G.scr4.LON3.gblx.net (67.16.165.230) 52.221 ms 53.739 ms 49.511 ms
10 lag2.ar9.LON3.gblx.net (67.17.106.149) 50.573 ms 50.425 ms 50.002 ms
11 146.82.54.42 (146.82.54.42) 68.774 ms 69.479 ms 71.064 ms
12 te-1-3.bb-c.bap.rhr.de.oneandone.net (212.227.120.49) 86.817 ms 83.147 ms 83.074 ms
13 ae-5.gw-diste-a.bap.rhr.de.oneandone.net (212.227.122.1) 82.809 ms 83.477 ms ae-4.gw-diste-a.bap.rhr.de.oneandone.net (212.227.121.161) 77.675 ms
14 pop.1and1.fr (212.227.15.156) 83.103 ms 82.937 ms 82.943 ms

TELNET

telnet pop.1and1.fr 110

Trying 212.227.15.156…
Connected to pop.1and1.fr.
Escape character is ‘^]’.
+OK POP server ready H mibap7

Apparemment tout passe bien. Où est le problème ?

@Pascal : ça c’est à partir de la passerelle.
@Rboj : maintenant faudrait la même (ping, traceroute, tcptraceroute et telnet) à partir d’un poste qui déconne.

Si ça peux aider:

Windows 192.168.1.12
|
|
192.168.1.3/eth0
Passerelle
192.168.2.3/eth1
|
|
192.168.2.1
router
|
|
ADSL

Des postes clients Windows:

  • je peux aller sur internet et le squid fonctionne bien (demande d’authentification). La passerelle redirige bien le port 80 sur le port 8080 du squid
    -le DNS fonctionne bien avec Nslookup
    -tracert vers une adresse externe ne fonctionne pas
    -ping eth0 OK
    -ping eth1 OK
    -ping router ne fonctionne pas
    -ping vers une adresse externe ne fonctionne pas
    -le pop vers une adresse externe ne fonctionne pas.

Comme si la passerelle n’autorisait que le squid a fonctionner. Les autres ports étant bloqués même si nous configurons le firewall iptables a accepter toutes les connexions (shorewall arrêté et script ci-dessus lancé).

A partir des postes client windows

PING
ping pop.1and1.fr

Envoi d’une requête ‘ping’ sur pop.1and1.fr [212.227.15.156] avec 32 octets de données :
Délai d’attente de la demande dépassé.
Délai d’attente de la demande dépassé.

Statistiques Ping pour 212.227.15.156:
Paquets : envoyés = 2, reçus = 0, perdus = 2 (perte 100%),

TRACERT
C:\Users\manuinfo>tracert pop.1and1.fr
Détermination de l’itinéraire vers pop.1and1.fr [212.227.15.156]
avec un maximum de 30 sauts :

1 * * * Délai d’attente de la demande dépassé.
2 * * * Délai d’attente de la demande dépassé.
3 * * * Délai d’attente de la demande dépassé.
4 * * * Délai d’attente de la demande dépassé.
5 * * * Délai d’attente de la demande dépassé.

TELNET
telnet pop.1and1.fr 110
Socket Error: Une tentative de connexion a échoué car le parti connecté n’a pas répondu convenablement au-delà d’une certaine durée ou une connexion établie a échoué car l’hôte de connexion n’a pas répondu

Comme si la passerelle n’avait pas la fonction routeur (ip_forward) activée, en somme…
Le serveur DNS qu’interrogent les postes clients, c’est la passerelle, le routeur, un serveur extérieur ?

Le serveur DNS est un serveur autre sur le réseau
IP:192.168.101.52

Bien vu Pascal

je suis sur d’avoir lancer la commande echo 1 > /proc/sys/net/ipv4/ip_forward
mais vu ta remarque j’ai voulu vérifier le fichier par
cat /proc/sys/net/ipv4/ipforward
et il a affiché 0

J’ai donc relancer la commande echo 1 > /proc/sys/net/ipv4/ip_forward
Relancer Shorewall
Et désormais tout marche.

Merci beaucoup à vous deux de m’avoir aider et désolé de n’avoir pas pensé à ce fichier de config plus tôt.

Ce n’est pas vraiment un fichier. Le contenu de /proc n’est qu’un reflet des paramètres opérationnels du noyau.

C’est pas tout bêtement que tu as bien saisi cette commande, mais que tu as rebooté depuis ? Ça arrive souvent cette confusion, il faut exécuter la commande à chaque démarrage (habituellement un bon endroit c’est le script init.d où tu initialises tes règles iptables – mais vu que t’utilises shorewall là je sais pas trop).

Il me semble que shorewall devrait pouvoir activer ce paramètre. Sinon, un endroit pour l’activer automatiquement au démarrage est le fichier /etc/sysctl.conf.

Merci de ces précisions.

Pour bien clore le sujet:

Dans shorewall, il y a une option IP_FORWARDING=keep qui est sensée garder les paramètres précédents. Je l’ai mis à "on"
Après redémarrage toujours le même problème car shorewall n’était pas démarré.
Un petit coup chkconfig pour que shorewall soit lancé en init 2 au démarrage.
Après redémarrage toujours le même problème. Je vais dans /etc/init.d et j’essaye de lancé shorewall; il me dit qu’il ne peut pas le lancer car il n’est pas configuré.
Après quelques recherches, j’active la configuration de Shorewall en passant la directive startup dans /etc/default/shorewall à 1
Après redémarrage, ça marche enfin.

En bref, on peut lancer shorewall en ligne de commande mais pour ce qui est du démarrage automatique il y a une option à modifier dans /etc/default/horewall pour qu’il puisse se lancer.