Bonjour
debutant en iptable j'essaye de rediriger mes ports...
le contexte :
soit un serveur mail1 192.168.42.15 et un serveur mail2 192.168.42.20.
Le but est de diriger tout le traffic smtp arrivant sur mail1 vers mail2 à l'exception du traffic arrivant de mail2
(mail2 fait le filtrage antispam & mail1 distribue le courrier mais tout le traffic smtp continu a arriver sur mail1)
apres lecture j'en suis arriver aux regles suivantes :
iptables -t nat -A PREROUTING -p tcp --dport 25 -j ACCEPT -s 192.168.42.20
iptables -t nat -A PREROUTING -p tcp --dport 25 -j DNAT --to-destination 192.168.42.20
mais cela ne marche pas !
/proc/sys/net/ipv4/ip_forward a 0 et iptables ne sert a rien
a 1 et plus de traffic smtp nul part :(
ou me suis-je trompé ?
merci de votre aide.
# Priorité des règles
Posté par libresurf (site web personnel, Mastodon) . Évalué à 2.
Sinon, il me semble qu'il vaut mieux écrire la première règle comme ça :
iptables -t nat -A PREROUTING -p tcp --dport 25 -s 192.168.42.20 -j ACCEPT
en mettant tout les paramètres de filtrage du paquet en premier et de mettre l'action à effectuer en dernier.
[^] # Re: Priorité des règles
Posté par Obsidian . Évalué à 2.
# Une source ?
Posté par Obsidian . Évalué à 2.
Essaie de spécifier une destination explicite en 192.168.42.15 pour ta deuxième règle (avec -d, mais laisse --to-destination inchangé).
[^] # Re: Une source ?
Posté par petit_bibi . Évalué à 1.
Par contre un DNAT non, et il me semble que seul un NAT est effectué quand il y a plusieurs matches pour un même packet, sais plus exactement..
Il est possible d'utiliser la négation, je crois que c'est comme ça:
iptables -t nat -A PREROUTING -p tcp --dport 25 -j DNAT -s ! 192.168.42.20 --to-destination 192.168.42.20
# Nat les packets que tu forward
Posté par petit_bibi . Évalué à 1.
(
En essayant d'être précis:
Mail2 répondra au client smtp en utilisant sa route par défaut et ne passera problablement pas par 192.168.42.15 mais via sa gateway par défaut (typiquement internet) ou directement au client si il est dans le même LAN.
Le client recevra potentiellement une réponse mais en provenance
d'une route différente et donc cette réponse sera ignorée. D'autant plus
que la réponse est pour une requète qui à été modifié par DNAT....
Ceci dit, je pense qu'il est tout de même possible de voir ces retours via tcpdump sur la machine cliente si elle est dans le même LAN.
)
Bref essai d'ajouter ça déjà:
iptables -t nat -A POSTROUTING -p tcp --dport 25 -d 192.168.42.20 -j SNAT 192.168.42.15
Il y a également des informations intéressante quand tu utilises:
iptables -t nat -vnL
En particulier le nombre de packets qui sont passés dans tes règles. ça te permettra d'avoir une idée de où se perde les packets..
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.