IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Discussion :

iptables et nat


Sujet :

Sécurité

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Points : 35
    Points
    35
    Par défaut iptables et nat
    Bonjour à tous,

    Voila je vais exposer mon probleme ici (je m'excuse d'avance si j'aurai plutot du le poster dans la section reseaux)

    En fait j'aurai besoin de faire une translation d'adresse de ce type

    PC_quelconque -> XXX.XXX.XXX.XXX:8084 ->translation automatique vers YYY.YYY.YYY.YYY:80
    Le port que j'ai mis en entrée sur la machine XXX.XXX.XXX.XXX a été pris au hasard.

    Donc jusqu'a present j'avais essayé en mettant la regle suivante dans iptables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iptables -t nat -A PREROUTING -p tcp --dport 8084 -j DNAT --to-destination YYY.YYY.YYY.YYY:80
    Mais il s'avere que cela ne marche pas, je recois un delai d'attente de la demande dépassé. J'ai oublié de preciser que je ne suis pas un expert iptables, juste quelqu'un qui s'est renseigné sur les fofo

    Bonne journée,
    G.

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    as-tu étudié cela ?

    http://gorgonite.developpez.com/tuto...isations#LII-6


    1) je pense qu'il s'agit plus d'un FORWARD que d'un PREROUTING (à moins que XXX.XXX.XXX.XXX soit égal à YYY.YYY.YYY.YYY )

    2) est-ce que cela nécessite un "changement de carte réseau" ?
    du style PC_Quelconque - entree via eth1 -> XXX.XXX.XXX.XXX:8084 -sortie par eth0-> YYY.YYY.YYY.YYY:80

    dans ce cas il faudra ajouter ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to YYY.YYY.YYY.0/24
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Points : 35
    Points
    35
    Par défaut
    Merci je vais regarder ce lien

    Sinon pour repondre,
    non tout passe par la meme carte reseau eth0 et XXX.XXX.XXX.XXX est different de YYY.YYY.YYY.YYY

  4. #4
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Citation Envoyé par GuiYom00 Voir le message
    non tout passe par la meme carte reseau eth0 et XXX.XXX.XXX.XXX est different de YYY.YYY.YYY.YYY


    essaies le forward alors
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Points : 35
    Points
    35
    Par défaut
    Ok

    Donc si je ne me trompes pas, ca donnerait les regles suivantes (adaptation libre des regles trouvées sur ton tuto pour l'exemple avec ssh) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    iptables -A FORWARD -p tcp -s YYY.YYY.YYY.YYY  --dport 8084 -j ACCEPT
    iptables -A FORWARD -p tcp -d YYY.YYY.YYY.YYY  --dport 80 -j ACCEPT
    Mais ce que je ne vois pas avec ces regles, c'est comment faire la "correspondance" entre le port 80 de YYY... et le port 8084 de XXX... ?
    C'est justement cette question de correspondance qui m'avait fait penser à utiliser la table nat

  6. #6
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Citation Envoyé par GuiYom00 Voir le message
    Mais ce que je ne vois pas avec ces regles, c'est comment faire la "correspondance" entre le port 80 de YYY... et le port 8084 de XXX... ?
    C'est justement cette question de correspondance qui m'avait fait penser à utiliser la table nat

    ah oui, j'avais oublié le détail qui tue... ce n'est pas le même port, donc faudra passer par NAT


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    iptables -t nat -A PREROUTING  -s XXX.XXX.XXX.XXX/32 -p tcp -m tcp --dport 8084 \
        -j DNAT --to-destination YYY.YYY.YYY.YYY:80
    iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to YYY.YYY.YYY.0/24
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Points : 35
    Points
    35
    Par défaut
    Si je veux les rentrer telles quelles je recois un message
    Bad IP address `YYY.YYY.YYY.0/24'
    J'ai alors modifié la regle en mettant YYY.YYY.YYY.YYY au lieu de `YYY.YYY.YYY.0/24' mais meme dans ce cas je recois un message comme quoi la connexion a échoué

    Si ca peut aider je joins un tcpdump fais sur la machine XXX.XXX.XXX.XXX, la commande exacte a été juste :
    tcpdump "port 80 or port 8084"
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
    20:45:12.425040 IP AAA.AAA.AAA.AAA.1534 > XXX.XXX.XXX.XXX.8084: S 4158450877:4158450877(0) win 65535 <mss 1460,nop,nop,sackOK>
    20:45:12.425105 IP XXX.XXX.XXX.XXX.8084 > AAA.AAA.AAA.AAA.1534: R 0:0(0) ack 4158450878 win 0
    20:45:12.911715 IP AAA.AAA.AAA.AAA.1534 > XXX.XXX.XXX.XXX.8084: S 4158450877:4158450877(0) win 65535 <mss 1460,nop,nop,sackOK>
    20:45:12.911768 IP XXX.XXX.XXX.XXX.8084 > AAA.AAA.AAA.AAA.1534: R 0:0(0) ack 1 win 0
    20:45:13.414126 IP AAA.AAA.AAA.AAA.1534 > XXX.XXX.XXX.XXX.8084: S 4158450877:4158450877(0) win 65535 <mss 1460,nop,nop,sackOK>
    20:45:13.414171 IP XXX.XXX.XXX.XXX.8084 > AAA.AAA.AAA.AAA.1534: R 0:0(0) ack 1 win 0

    L'adresse AAA.AAA.AAA.AAA est l'adresse a partir de laquelle je fais le http://XXX.XXX.XXX.XXX:8084

    Ce qui m'étonne dans ce tcpdump c'est que je ne vois meme pas apparaitre l'adresse YYY.YYY.YYY.YYY autrement dit aucun routage n'est passé?

    Dans tous les cas merci pour l'aide

  8. #8
    Membre du Club Avatar de blacksnake
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 64
    Points : 69
    Points
    69
    Par défaut
    Tu peux essayer ceci, chez moi ca marche très bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $IPTABLES -A PREROUTING -t nat -p tcp -i eth0 --dport 66 -j DNAT --to-destination 172.16.0.1:80
    xxx.xxx.xxx.xxx:66 ==> 172.16.0.1:80

  9. #9
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Points : 35
    Points
    35
    Par défaut
    justement c'est ce que j'avais testé au debut donc c'est vrai que les connections xxx.xxx.xxx.xxx:66 ==> 172.16.0.1:80 passent bien mais le souci c'est que j'ai pas les paquets qui passent pour le trajet inverse

  10. #10
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    as-tu initialisé le début de ton fichier comme le mien sur mon tuto ?
    si oui, les réponses passeront
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  11. #11
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Points : 35
    Points
    35
    Par défaut
    pour etre sur je viens de partir d'une version "light" de ton fichier mais toujours rien...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    #! /bin/sh
     
    IPTABLES="iptables"
     
     
     
    IP_NET=YYY.YYY.YYY.YYY
    PORT_NET=80
    IP_LOCAL=XXX.XXX.XXX.XXX
    PORT_LOCAL=8084
    #### Initialisation
     
    # modes pour le ftp
    modprobe ip_nat_ftp
    modprobe ip_conntrack_ftp
     
    # purger iptables
    $IPTABLES -F
    $IPTABLES -t nat -F
    $IPTABLES -t mangle -F
    $IPTABLES -X
    $IPTABLES -t nat -X
    $IPTABLES -t mangle -X
     
     
    # On accepte les paquets reconnus par le moteur d'etat
    $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
     
    $IPTABLES -t nat -A PREROUTING -p tcp  --dport $PORT_LOCAL -j DNAT --to-destination $IP_NET:$PORT_NET
     
    #### Activer le routage
    echo 1 > /proc/sys/net/ipv4/ip_forward

    J'ai toujours les paquets qui arrivent bien sur YYY.YYY.YYY.YYY:80 mais aucun paquet en provenance de YYY.YYY.YYY.YYY n'est détecté sur ma machine XXX.XXX.XXX.XXX

Discussions similaires

  1. iptable probleme nat
    Par chris_013 dans le forum Réseau
    Réponses: 2
    Dernier message: 05/12/2008, 18h30
  2. Réponses: 0
    Dernier message: 03/11/2008, 09h04
  3. [IPTABLES] plusieurs IP public 1to1 NAT
    Par hpalpha dans le forum Réseau
    Réponses: 5
    Dernier message: 20/05/2008, 11h49
  4. Réponses: 1
    Dernier message: 13/05/2008, 14h44
  5. Problème de nat : iptables
    Par CodeurNé dans le forum Sécurité
    Réponses: 2
    Dernier message: 05/02/2005, 19h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo