[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Probablement iptables] Probleme de relais smtp



Salut,

newbeewan a écrit :

La machine qui me sert de relai smtp est également la passerelle de mon réseau...

Situation courante.

Pour pouvoir filtrer ce qui sort de mon réseau, toute les requete interne sont redirigée vers le smtp de cette machine avec une regle iptables : $IPTABLES -t nat -A PREROUTING -i $INTIF -p tcp -m tcp --dport 25 -j DNAT --to adresse_de_mon_serveur:25

Inutile de répéter le port s'il ne change pas.

En fait c'est la rêgle de routage qui pose problème, mais c'est mon localhost qui ne parvient plus à se connecter à des serveurs smtp !

Pas clair. Aucune chance qu'une règle dans nat/PREROUTING interfère avec les connexions sortantes de la machine, dont les paquets ne traversent pas cette chaîne.

Dès que j'essaye de faire un telnet smpt.free.fr 25 j'obtiens :
$ telnet smtp.free.fr 25
Trying 213.228.63.58...
telnet: Unable to connect to remote host: Connection refused

Ça sent le filtrage en sortie.

Alors que si je le fai d'une autre machine du réseau (j'ai désactivé ma règle de routage avant !) ça marche correctement, j'ai le Helo du serveur SMTP...

Les paquets locaux et routés ne traversent pas les mêmes chaînes de filtrage : FORWARD pour les paquets routés, INPUT et OUTPUT pour les paquets locaux.

Donc je pense que c'est un problème iptables qui bloque mes demande du localhost :(

Probable. Vérifie la chaîne filter/OUTPUT.

J'ai les règles suivantes pour le localhost qui me semblaient suffisante :
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -A FORWARD -i lo -j ACCEPT
$IPTABLES -A FORWARD -o lo -j ACCEPT

Ces règles ne concernent que l'interface de loopback par laquelle transitent seulement les communications de la machine vers elle-même, pas les communications avec l'extérieur.

#interface interne
$IPTABLES -A INPUT -i $INTIF -j ACCEPT
$IPTABLES -A OUTPUT -o $INTIF -j ACCEPT

Ces règles ne concernent que les communications avec le réseau local.

$IPTABLES -A FORWARD -i $INTIF -j ACCEPT
$IPTABLES -A FORWARD -o $INTIF -j ACCEPT

Ces règles ne concernent que les communications qui traversent la machine, et non celles dont elle est la source ou la destination.

Y a-t-il des règles dans INPUT et OUTPUT qui concernent l'interface externe ? La sortie de la commande iptables-save serait l'idéal, si pas trop longue.


Reply to: