Peut être le problème de résolution DNS dont je te parlais dans un précédent post… Essaye de mettre l’ip du serveur smtp (212.27.48.4 à priori) à la place du nom smtp.free.fr pour voir dans les paramètre de messagerie d’un de tes clients, et retente.
bon et bien sur mon client j’ai bien mis l’ip du smtp de chez free et c’est pas mieux.
enfin j’ai peut être fait une connerie… je m’explique j’ai débranché ma connexion wan1 du serveur pour voir si mon mail depuis l’ordi du réseau 192.168.0.0 partait bien vers mon wan2 …
Je ne pense pas, mais bon… Jamais testé, je ne sais pas à quel point ca peut lui mettre le boxon (ou pas) de lui déconnecter une interface.
Tu ne t’es pas pris les pieds dans le tapis en établissant les règles des fois ?
ip route show table mail
ip route show table surf
ip rule list
ip route show table mail
default via 192.168.1.1 dev eth1
ip route show table surf
default via 192.168.200.1 dev eth2
ip rule list
0: from all lookup local
32759: from all fwmark 0x35 lookup surf
32760: from all fwmark 0x1bb lookup surf
32761: from all fwmark 0x50 lookup surf
32762: from all fwmark 0x3e3 lookup mail
32763: from all fwmark 0x1d1 lookup mail
32764: from all fwmark 0x6e lookup mail
32765: from all fwmark 0x19 lookup mail
32766: from all lookup main
32767: from all lookup default
Ok, non pourtant, çà, ca a l’air bon
Le pop fonctionne par le wan2 ? Le reste (web par exemple) fonctionne par le wan1 ?
Si tout fonctionne comme prévu en dehors du smtp qui fait une erreur, ca serait pas un problème de config du client de messagerie (genre une authentification manquante) ?
EDIT : il y a peut être un problème dans mon premier script, au niveau du masquerading.
Essaye de remplacer :
##### Masquerading (substitution de l'adresse source par l'adresse de l'interface de sortie)
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -s 192.168.0.0/24 -j MASQUERADE
par
#On peut peut être condenser en une seule ligne en regroupant les marques, je n'ai pas cherché ni pu tester
iptables -t nat -A POSTROUTING -o eth1 -m mark --mark 25 -j SNAT --to-source 192.168.1.254
iptables -t nat -A POSTROUTING -o eth1 -m mark --mark 110 -j SNAT --to-source 192.168.1.254
iptables -t nat -A POSTROUTING -o eth1 -m mark --mark 465 -j SNAT --to-source 192.168.1.254
iptables -t nat -A POSTROUTING -o eth1 -m mark --mark 995 -j SNAT --to-source 192.168.1.254
iptables -t nat -A POSTROUTING -o eth2 -m mark --mark 53 -j SNAT --to-source 192.168.200.254
iptables -t nat -A POSTROUTING -o eth2 -m mark --mark 80 -j SNAT --to-source 192.168.200.254
iptables -t nat -A POSTROUTING -o eth2 -m mark --mark 443 -j SNAT --to-source 192.168.200.254
On précise quels paquets doivent être natés, et comment, par rapport à leur marque, ce qu’on ne fait pas avec le premier script (on le laisse se débrouiller à masquerader avec la bonne interface, puisque le paquet à ce niveau connaît son interface de sortie grâce aux tables alternatives… Enfin, c’est ce que je pensais, mais c’est pas très clair pour moi, là… )
bonjour,
et bien même avec ce changement cela ne fonctionne pas
et si je met sur mon serveur un relai smtp ?
Le poste client d’où t’essayes est bien configuré ? (passerelle, serveur dns, masque,…)
Sinon, j’ai une autre idée, pour vérifier que les tables font bien leur boulot, que les paquets sont bien acheminés via une interface ou l’autre.
Supprimer toutes les règles, et en créer uniquement 2 :
- une qui redirige les paquets vers un site internet qui te donne ton ip publique (whatismyip.com - 72.233.89.199 )
- une autre vers un autre site qui fait la même chose (whatismyipaddress.com - 208.73.210.28)
Puis essayer de te connecter à ces 2 sites avec un poste client : ils devraient afficher 2 adresses WAN différentes.
#!/bin/bash
# Prérequis :
# les interfaces eth0, eth1 et eth2 sont correctement configurées (ip, masque et passerelle) dans le fichier /etc/network/interfaces
# les accès internet sont OK sur les réseaux 192.168.1.0 et 192.168.200.0
# je suis parti du postulat que ton dns était hébergé à l'extérieur (ex:opendns)
#activation du partage de connexion
echo 1 > /proc/sys/net/ipv4/ip_forward
# Initialisation de la table FILTER
iptables -t filter -F
iptables -t filter -X
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT DROP
iptables -t filter -P FORWARD DROP
# Initialisation de la table NAT
iptables -t nat -F
iptables -t nat -X
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
# Initialisation de la table MANGLE
iptables -t mangle -F
iptables -t mangle -X
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
iptables -t filter -A FORWARD -i eth1 -o eth0 -s 0.0.0.0/0 -d 192.168.0.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A FORWARD -i eth2 -o eth0 -s 0.0.0.0/0 -d 192.168.0.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A PREROUTING -i eth0 -t mangle -d 72.233.89.0/24 -j MARK --set-mark 25
iptables -A FORWARD -i eth0 -o eth1 -s 192.168.0.0/24 -d 72.233.89.0/24 -m state ! --state INVALID -j ACCEPT
iptables -A PREROUTING -i eth0 -t mangle -d 208.73.210.0/24 -j MARK --set-mark 80
iptables -A FORWARD -i eth0 -o eth2 -s 192.168.0.0/24 -d 208.73.210.0/24 -m state ! --state INVALID -j ACCEPT
iptables -A PREROUTING -i eth0 -t mangle -p udp --dport 53 -j MARK --set-mark 53
iptables -t filter -A FORWARD -i eth0 -o eth2 -s 192.168.0.0/24 -p udp --dport 53 -m state ! --state INVALID -j ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -m mark --mark 25 -j SNAT --to-source 192.168.1.254
iptables -t nat -A POSTROUTING -o eth2 -m mark --mark 80 -j SNAT --to-source 192.168.200.254
Tu relances ton script, tu lance 2 connexions depuis tes clients vers chacun des sites :
- whatismyip.com
-
whatismyipaddress.com
Ils devraient t’indiquer 2 adresses WAN différentes.