Précédent   Forum des professionnels en informatique > Systèmes > Linux > Sécurité
Sécurité Vos questions sur la sécurité sous Linux/Unix
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/10/2007, 11h02   #1
Membre à l'essai
 
Inscription : avril 2007
Messages : 42
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 42
Points : 22
Points : 22
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 :
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.
GuiYom00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2007, 11h11   #2
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 774
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 774
Points : 14 303
Points : 14 303
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 :
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
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2007, 14h55   #3
Membre à l'essai
 
Inscription : avril 2007
Messages : 42
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 42
Points : 22
Points : 22
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
GuiYom00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2007, 16h26   #4
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 774
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 774
Points : 14 303
Points : 14 303
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
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2007, 17h15   #5
Membre à l'essai
 
Inscription : avril 2007
Messages : 42
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 42
Points : 22
Points : 22
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 :
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
GuiYom00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2007, 18h24   #6
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 774
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 774
Points : 14 303
Points : 14 303
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 :
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
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2007, 21h01   #7
Membre à l'essai
 
Inscription : avril 2007
Messages : 42
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 42
Points : 22
Points : 22
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
GuiYom00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2007, 22h16   #8
Membre du Club
 
Avatar de blacksnake
 
Inscription : octobre 2006
Messages : 62
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 62
Points : 44
Points : 44
Tu peux essayer ceci, chez moi ca marche très bien

Code :
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
blacksnake est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2007, 22h45   #9
Membre à l'essai
 
Inscription : avril 2007
Messages : 42
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 42
Points : 22
Points : 22
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
GuiYom00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2007, 08h27   #10
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 774
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 774
Points : 14 303
Points : 14 303
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
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2007, 14h32   #11
Membre à l'essai
 
Inscription : avril 2007
Messages : 42
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 42
Points : 22
Points : 22
pour etre sur je viens de partir d'une version "light" de ton fichier mais toujours rien...

Code :
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
GuiYom00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h19.


 
 
 
 
Partenaires

Hébergement Web