[IPTables] Un règle avancée ....

Un règle avancée .... [IPTables] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 12-06-2002 à 13:19:19    

Voila, j'ai mon routeur en 10.0.0.1
Je veut que toute machine du sous reseau 10.0.0.0/24 sauf la 10.0.0.2  quand elle essaye de contacter l'ip w.x.y.z en tcp sur le  port p soit redirigée ( DNAT ) vers la machine 10.0.0.2 du reseau local.
 
J'ai essayé :
 
iptables -D PREROUTING -s \! 10.0.0.2/32 -d w.x.y.z -t nat -p tcp --dport p -j DNAT --to-destination 10.0.0.2:p
 
mais ca marche pas ...  
 
Quelqu'un a une idée ?

Reply

Marsh Posté le 12-06-2002 à 13:19:19   

Reply

Marsh Posté le 12-06-2002 à 14:08:32    

246tNt a écrit a écrit :

Voila, j'ai mon routeur en 10.0.0.1
Je veut que toute machine du sous reseau 10.0.0.0/24 sauf la 10.0.0.2  quand elle essaye de contacter l'ip w.x.y.z en tcp sur le  port p soit redirigée ( DNAT ) vers la machine 10.0.0.2 du reseau local.
 
J'ai essayé :
 
iptables -D PREROUTING -s \! 10.0.0.2/32 -d w.x.y.z -t nat -p tcp --dport p -j DNAT --to-destination 10.0.0.2:p
 
mais ca marche pas ...  
 
Quelqu'un a une idée ?  




 
 
ben c'est plutot un -A qu'un -D non ?

Reply

Marsh Posté le 12-06-2002 à 14:39:54    

... oui bon ... j'ai pris la mauvaise ligne lors du copier coller .. j'avais mis un -A puis j'ai fait un -D comme ca marchait pas

Reply

Marsh Posté le 12-06-2002 à 15:55:48    

ben redit exactement ce que tu veux (en bon français , si possible) et dis à quoi correspond l'ip w.x.y.z

Reply

Marsh Posté le 12-06-2002 à 16:10:47    

J'ai un reseau local. Sur celui ci il y a deux serveur, deux machines linux. Une de celle ci c'est le routeur ( 10.0.0.1 ) et la deuxieme, c'est un serveur web proxy ( 10.0.0.2 ).  
Il y a une ip a l'exterieure w.x.y.z qui est aussi un serveur web et dont je veut "cacher" ( pas masquer, fait faire du cache, genre squid ). J'ai pour ca un programme qui tourne sur mon 10.0.0.2 et qui se charge de faire le cache. Mais pour que ca soit transparent a toutes mes machines dans mon LAN, il faut que toute les requete vers le site que je veut cacher soit redirigée vers le 10.0.0.2 ( sauf celle provenant de 10.0.0.2 sinon lui non plus ne pourait pas voir le contenu actuel ).
 
Alors j'ai essayé de mettre :
 
 iptables -A PREROUTING -s \! 10.0.0.2/32 -d w.x.y.z -t nat -p tcp --dport p -j DNAT --to-destination 10.0.0.2:p
 
Mais ca ne marche pas. Si par contre je redirige vers le 10.0.0.1 ( la machine ou je met la rules ), la ca marche, quand je me connecte a partir d'une machine du LAN vers le port 80 de w.x.y.z je tombe bien sur le serveur Web de ma passerelle

Reply

Marsh Posté le 12-06-2002 à 16:44:41    

246tNt a écrit a écrit :

J'ai un reseau local. Sur celui ci il y a deux serveur, deux machines linux. Une de celle ci c'est le routeur ( 10.0.0.1 ) et la deuxieme, c'est un serveur web proxy ( 10.0.0.2 ).  
Il y a une ip a l'exterieure w.x.y.z qui est aussi un serveur web et dont je veut "cacher" ( pas masquer, fait faire du cache, genre squid ). J'ai pour ca un programme qui tourne sur mon 10.0.0.2 et qui se charge de faire le cache. Mais pour que ca soit transparent a toutes mes machines dans mon LAN, il faut que toute les requete vers le site que je veut cacher soit redirigée vers le 10.0.0.2 ( sauf celle provenant de 10.0.0.2 sinon lui non plus ne pourait pas voir le contenu actuel ).
 
Alors j'ai essayé de mettre :
 
 iptables -A PREROUTING -s \! 10.0.0.2/32 -d w.x.y.z -t nat -p tcp --dport p -j DNAT --to-destination 10.0.0.2:p
 
Mais ca ne marche pas. Si par contre je redirige vers le 10.0.0.1 ( la machine ou je met la rules ), la ca marche, quand je me connecte a partir d'une machine du LAN vers le port 80 de w.x.y.z je tombe bien sur le serveur Web de ma passerelle  




 
a premiere vue ta regle a l air correcte
qd tu dis que ca marche pas, c'est que tu obtiens une erreur qd tu applique cette regle ou bien que le routage apres ne se fais pas kom il faut ?
 
juste une chose a la limite le \, je le mettrai pas
je suppose que c pour ne pas interpreter le !, mais normalement c pas necessaire
 
puis je pense que c mieux de declarer le -t nat avant de mettre le -A PREROUTING


Message édité par djtoz le 06-12-2002 à 16:48:18
Reply

Marsh Posté le 12-06-2002 à 18:42:31    

ben ca route pas correctement. Si j'essaie de faire a partir d'une machine du reseau un telnet w.x.y.z 80   ca met no route to host ...
 
Sinon le -t nat avant et le ! j'ai essayé mais ca change rien. Si je fait un iptables -t nat -L ca se marque comme il faut

Reply

Marsh Posté le 12-06-2002 à 20:11:08    

246tNt a écrit a écrit :

ben ca route pas correctement. Si j'essaie de faire a partir d'une machine du reseau un telnet w.x.y.z 80   ca met no route to host ...
 
Sinon le -t nat avant et le ! j'ai essayé mais ca change rien. Si je fait un iptables -t nat -L ca se marque comme il faut  




 
ok
question conne
sur tes machines du LAN tu as bien en passerelle par defaut la 10.0.0.1 ?

Reply

Marsh Posté le 12-06-2002 à 20:19:21    

Oui ...
 
Si a la place de --to-destination 10.0.0.2:p je met 10.0.0.1:80, la ca marche je tombe sur le port 80 de mon routeur ...

Reply

Marsh Posté le 12-06-2002 à 20:33:54    

246tNt a écrit a écrit :

Oui ...
 
Si a la place de --to-destination 10.0.0.2:p je met 10.0.0.1:80, la ca marche je tombe sur le port 80 de mon routeur ...  




 
et ton site web sur la 10.0.0.2 marche kom il faut ?

Reply

Marsh Posté le 12-06-2002 à 20:33:54   

Reply

Marsh Posté le 12-06-2002 à 23:19:54    

oui ...

Reply

Marsh Posté le 12-06-2002 à 23:42:47    

246tNt a écrit a écrit :

oui ...  




 
t as suivi un peu le traffic avec tcpdump ?

Reply

Marsh Posté le 13-06-2002 à 00:15:19    

Pas trouvé grand chose ...
 
13:40:12.882187 10.0.0.10 48891 > www2.vip.lng.yahoo.com.www: S 3652653804:3652653804(0) win 5840 <mss 1460,sackOK,timestamp 257986857[|tcp]> (DF) [tos 0x10]  
 
13:40:12.905034 www2.vip.lng.yahoo.com > 10.0.0.10: icmp: host www2.vip.lng.yahoo.com unreachable

Reply

Marsh Posté le 14-06-2002 à 14:03:55    

Ben alors, personne ne sait ???? J'ai cherché sur le web mais j'ai trouvé aucune solution ... ( J'ai bien trouvé des mec avec le meme problème que moi mais ca m'avance pas ... )

Reply

Marsh Posté le 14-06-2002 à 14:44:59    

ta machine qui fait routeur, c'est un hub ou un swith qui est dessus ?
et pk tu mets pas ton cache sur ton routeur, tu sera pu emmerder comme ça (enfin je pense que tu seras moins emmerder)


Message édité par djoh le 14-06-2002 à 15:43:23
Reply

Marsh Posté le 14-06-2002 à 16:27:06    

C un hub ( 3 Com office connect 16 port )
Oui en effet je pourrait mettre le cache sur le routeur mais bon c pas une solution ...

Reply

Marsh Posté le 14-06-2002 à 16:52:45    

3 petites questions (je vois vraiment pas ce qui cloche) :
 

  • ton modem est branché directement sur ton routeur, ou sur ton hub ?
  • t'as pas une règle à la con qui empeche les connexion venant du web (balance ton script en entier, a la limite)?
  • w.x.y.z , c'est bien ton ip sur le net ?

Reply

Marsh Posté le 15-06-2002 à 01:24:21    

Voila mon installation :
 
Routeur :
 eth0 - interface locale ( 10.0.0.1 ) - Connecté sur un HUB
 eth1 - Connexion Cable 1 ( 130.104.x.x )
 eth2 - Connexion Cable 2 ( 130.104.x.x )
 eth3 - Lien vers modem ADSL
 ppp0 - Interface PPPOE ( 130.104.x.x )
 
Cache WEB :
 eth0 - interface locale ( 10.0.0.2 )
 
Machine à caché : ( n'est PAS sur mon reseau local mais qq part sur internet )
 eth0 - interface vers le net ( w.x.y.z )
 
Machine cliente : ( dont le traffic vers w.x.y.z doit etre redirigée de maniere transparente vers 10.0.0.2 )
 eth0 - interface reseau local ( 10.0.0.3 )
 
Je met sur le routeur et la machine cache ( 10.0.0.1 & 10.0.0.2 ) un service a la con sur le port 80 ( qui envoie toujour la string OK quand on fait un telnet dessus ).
 
Si je met :  
 
iptables -A PREROUTING -s \! 10.0.0.2/32 -d w.x.y.z -t nat -p tcp --dport p -j DNAT --to-destination 10.0.0.1:80
 
et si je fait un telnet w.x.y.z 80 a partir de la machine cliente ( 10.0.0.3 ), je tombe bien sur le serveur du port 80 du 10.0.0.1
 
Je met :
 
iptables -A PREROUTING -s \! 10.0.0.2/32 -d w.x.y.z -t nat -p tcp --dport p -j DNAT --to-destination 10.0.0.2:80
 
Et la ca met no route to host.
 
En fait c comme si des packet venant d'une interface, qui sont DNATer ne pouvaient pas repartir par la même interface ...

Reply

Marsh Posté le 15-06-2002 à 01:25:21    

J'ai essayé avec des rules minimale ( tout en ACCEPT + une rule MASQUERADE pour que les machine du lan aie internet ) et ca marche pas mieux ...

Reply

Marsh Posté le 15-06-2002 à 03:12:09    

ah ouai quand même  :heink:  
c'est bien la zone ton truc quand même   :/
y-a un peu un mélange de tout là ... en fait, y-a un gros truc qui me gene, c'est que tu es trois interface internet  :??:  
je comprends pas ça...

Reply

Marsh Posté le 15-06-2002 à 10:10:52    

Ben j'ai trois interface internet parce que sur mon LAN on est 13. Et pour assurer un debit correct a tout le monde, il faut plus que un seul acces internet ... Alors on a deux access cable sur les quels sont routés les application gourmante en bande passante et/ou upload ( FTP, Peer To Peer, Envoi de mail , ...) et une autre sur la quel sont routé les application ou un ping bas et une reponse rapide sont appreciable ( Web, InstantMessaging, DNS, Jeux On Line, SSH, ... )

Reply

Marsh Posté le 15-06-2002 à 10:35:56    

Euh ... ben merde ca marche maintenant ...
 
Apparemment un  
 
iptables -A FORWARD -s 10.0.0.0/24 -j ACCEPT
iptables -A FORWARD -d 10.0.0.0/24 -j ACCEPT
 
ca suffit pas ... il a fallu que je rajoute
 
iptables -A FORWARD -s 10.0.0.0/24 -d 10.0.0.0/24 -j ACCEPT
 
 
Mais je comprend pas pk quand j'ai mis les rules mininaml ca foirait ... J'avait du me gourer qq part ...
 
Enfin merci djoh et désolé de t'avoir dérangé ...

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed