Forum Linux.général iptable

Posté par  .
Étiquettes : aucune
0
30
jan.
2007
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  (site web personnel, Mastodon) . Évalué à 2.

    Je n'y connais pas grand chose non plus à iptable, mais n'aurais-tu pas d'autres règles qui s'exécuteraient avant les tiennes et qui les court-circuiteraient ?

    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.
  • # Une source ?

    Posté par  . Évalué à 2.

    Il est possible qu'un -j ACCEPT n'interrompe pas l'examen des règles et que tes paquets redirigés soient quand même soumis à ton DNAT.

    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  . Évalué à 1.

      Il me semble qu'un ACCEPT interrompt toujours la suite des règles.
      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  . Évalué à 1.

    Il faut natter les packets que tu forward, sinon la réponse de mail2 aux packets ne passera pas forcement par mail1, et du coup rien ne marche (comme un drop).
    (
    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.