Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[iptables] besoin d'aide -> PREROUTING (résolu)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
truc
Advocate
Advocate


Joined: 25 Jul 2005
Posts: 3199

PostPosted: Sat Jan 20, 2007 10:05 pm    Post subject: [iptables] besoin d'aide -> PREROUTING (résolu) Reply with quote

Salut tout le monde:), bon et bien voila, il fallait que je m'y mette un jour, et c'set fait, je suis en train de faire joujou avec iptables, et durant tous mes tests, je rencontre une difficultée.

pour vous expliquer mon problème je met la politique pour tout à ACCEPT (et non j'ai pas peur, j'suis dérrière un NAT t'façons..), ensuite, j'aimerai essayer de tranformer l'addresse de destination 140.211.166.170 (forums.gentoo.org) en 65.214.39.56 (www.ask.com)

Rien de très utile vous devez vous dire, mais qu'à cela ne tienne, c'est mon objectif, si c'est possible:)
je rajoute donc la règle
iptables -t nat -A PREROUTING --destination 140.211.166.170 -j DNAT --to-destination 65.214.39.56

me voila donc avec:
iptables-save:
# Generated by iptables-save v1.3.7 on Sat Jan 20 22:59:46 2007
*nat
:PREROUTING ACCEPT [2020:105752]
:POSTROUTING ACCEPT [3225:445378]
:OUTPUT ACCEPT [3225:445378]
-A PREROUTING -d 140.211.166.170 -j DNAT --to-destination 65.214.39.56
COMMIT
# Completed on Sat Jan 20 22:59:46 2007
# Generated by iptables-save v1.3.7 on Sat Jan 20 22:59:46 2007
*filter
:INPUT ACCEPT [24771:10664130]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [24789:11304718]
COMMIT
# Completed on Sat Jan 20 22:59:46 2007


Pourtant que je vais sur https://forums.gentoo.org , bah je vous voir toujours VOUS, alors que je ne veux pas ;) :lol:
Je me dit que ça n'est peut-être pas possible, que je peux changer l'addresse de destination des paquets passant au travers (à travers?) le pc, mais je ne peux sans doute pas modifier l'adresse de destination d'un paquet généré localement :?
EDIT: ça semble bien être le problème, toute fois, si j'mets l'interface tun, que je l'active, lui attribue une IP etc.. (openvpn va le faire pour moi mais bon), si je fais un ping -I 10.8.0.1 140.211.166.170 ce coup si ça passe à travers, non? pourtant, ça ne semble pas mieu quand je regarde avec ethereal (et puis j'ai le temps de réponse qui correspond à quand je ping forums.gentoo, et non www.ask.com ) bref, une explication serait la beinvenue.


voili-voilou, j'ai besoin de vos lumière :)

merci d'avance
_________________
The End of the Internet!


Last edited by truc on Sun Jan 21, 2007 2:38 pm; edited 1 time in total
Back to top
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Sat Jan 20, 2007 10:34 pm    Post subject: Reply with quote

Heu, je me demande si ta commande est bien la bonne ... Le DNAT, c'est du port forwarding en gros ... C'est pour faire des serveurs virtuelle ... C'est pas encore la meme chose je pense... le truc que tu utilise peut faire ceci :

connection à ton serveur sur un port => ton serveur renvoye vers une autre ip et sur un autre port ...

Il y a moyen de modifier juste l'ip mais je pense que ca doit etre une autre commande (j'ai jamais essayé, je saurais pas vraiment t'aider).

C'est un NAT simple ce que tu veux : tu as une partie inside et une partie outside. ton ip rentre dans le serveur par eth0 par exemple, il va voir qu'il faut appliquer le nat => le packet va sortir avec une autre ip... Pareil dans le sens inverse


Donc, je pense que tu confond ;)
_________________
Mon MediaWiki perso : http://pix-mania.dyndns.org
Back to top
View user's profile Send private message
truc
Advocate
Advocate


Joined: 25 Jul 2005
Posts: 3199

PostPosted: Sat Jan 20, 2007 10:56 pm    Post subject: Reply with quote

bah oui et non, oui je me trompe certainement, non, ça n'est pas du "vrai" NAT que je veux.

J'essayais de n'alterer que les paquet ayant pour destination l'@ IP de fgo, rien d'autre, faire ça revient bien à faire du DNAT, j'ai déjà essayé de faire ça

iptables -t nat -A PREROUTING -p tcp --dport 80 --destination 140.211.166.170 -j DNAT --to-destination 65.214.39.56:80

mais toujours pas d'effet :/

http://www.netfilter.org/documentation/HOWTO/NAT-HOWTO-10.html wrote:
you need to make sure that both future packets and reply packets pass through the NAT box (so they can be altered)


Je pense donc que mon problème vient définitivement de là, toutes fois je ne comprends pas pourquoi en ping'ant depuis l'autre interface (l'interface tunça ne fonctionne pas (avec la première règle iptables au moins..) car là ça traverse bien le pc pourtant non?
_________________
The End of the Internet!


Last edited by truc on Sun Jan 21, 2007 2:17 pm; edited 1 time in total
Back to top
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Sat Jan 20, 2007 11:59 pm    Post subject: Reply with quote

Le nat prendra dans ce cas ci effet quand ton packet arrive sur ton serveur en tant que INPUT (donc, que tu as visé ta passerelle) et vu qu'il le traverse en FORWARD ben la règle ne s'applique pas à lui

le nat que tu veux pas :
Code:

iptables -t nat -A PREROUTING -p tcp --dport 5555 -i eth0 -j DNAT --to 10.59.13.252:80



En fait, le truc que tu veux faire, je me demande si il y a moyen (ou alors, faudra regarder du coté de iproute2)...

Le nat static, j'y ai pensé, mais ca n'a rien avoir... Ton pc qui fait la requette via ta gw qui sera linux, il a un ip ... le packet passe à travers le serveur et ... ben son IP SOURCE est modifiée MAIS son adresse DE DESTINATION reste la meme => il va voir sur le bon site ... Il pourrais ne jamais revenir ton packet (si tu lui fourni une IP SOURCE qui n'est pas ton ip => le packet va aller chez quelqu'un d'autre et rien ne fonctionnera :D)
_________________
Mon MediaWiki perso : http://pix-mania.dyndns.org
Back to top
View user's profile Send private message
truc
Advocate
Advocate


Joined: 25 Jul 2005
Posts: 3199

PostPosted: Sun Jan 21, 2007 7:10 am    Post subject: Reply with quote

j'suis désoléééé, je n'ai pas du être clair... j'ai effectivement dit que j'étais sur un NAT, mais c'était juste pour dire que j'avais pas peur de couper mon parefeu :lol: après tout j'en n'avais encore jamais mis...

Donc voila un peu plus précisément ce qui se passe:


routeur matériel -------------------------------mon pc
qui fait du NAT

Bon, y'a normalement un autre pc sur le réseau mais il est cassé..:/ mais là n'est pas le problème.. Nous nous situons donc au niveau de mon pc, donc pour l'instant, aucun paquet ne traverse mon pc. Je ne fais que de les générer localement. (et le nat se fait au niveau du routeur donc, je ne m'en occupe pas, et de même mon routeur n'est pas au courtant que j'ai changé la destination, donc normalement il doit faire son boulot sans trop se poser de question:/)


Bon voila pour les précisions.:)

sinon, juste en réaction à ce que tu dis:
Quote:
Le nat prendra dans ce cas ci effet quand ton packet arrive sur ton serveur en tant que INPUT (donc, que tu as visé ta passerelle) et vu qu'il le traverse en FORWARD ben la règle ne s'applique pas à lui


Euh, je débarque je sais, mais j'trouverai ça très bizarre, si le paquet arrive en FORWARD c'est qu'il est arrivé en INPUT quelque part, et que le routage dit tiens c'est pas pour moi ça, j'dois le faire suivre et là il passe en FORWARD. Donc à mon avis (mais je pourrai me tromper) tous les paquets arrivants sur le pc sont concernés par la règle (je n'ai pas précisé d'interface encore)

Bon cela dit, j'pense quej'vais utilisé l'howto sur openvz, histoire d'avoir un autre pc sur le réseau car là j'suis très limité:/
_________________
The End of the Internet!
Back to top
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Sun Jan 21, 2007 9:40 am    Post subject: Reply with quote

Ah non non non, pas du tout... Et si c'était comme tu dis (input et ensuite, forward), ben tout serait dropé au niveau de mon serveur (tout les packets sortant de mon réso passe par mon serveur) vu qu'en input, seulement 4 5 port d'ouvert ...


Un packet arrive sur ton routeur, il est associé à une "table?" :
- INPUT (pour les packets à destination du pc)
- OUTPUT (les packets sortant du pc lui meme !!! qui provienne de ce pc, pas ceux qui provienne d'un autre !)

donc, les deux du dessus ne concerne QUE ton serveur

- FORWARD (concerne les packets traversant ton serveur) => tout les packets que ton serveur va router (donc, tout les packets qui arrive et qui veulent joindre l'extérieur, tout les packets provenant d'un pc dans la gw est le serveur)


Donc en gros, pour un pc qui a comme gw ton serveur, si tu veux activer/desactiver certain port/ip ... tout ce fait au niveau du FORWARD.

La preuve est que le serveur qui est à l'internat refuse l'acces en INPUT sur le port 22 SAUF pour les admins (comme moi :d), mais ca ne veux pas dire que le FORWARD du port 22 est bloqué !!! Ainsi, tout le monde à accès au port 22 d'une machine extérieur :)

Donc, tout ca pour en arriver au fait que une règle s'appliquant à la table INPUT ne touchera aucunement au packet traversant le serveur (FORWARD) => le truc prérouting bazard (INPUT) ne fonctionnera pas du tout...


Ptit dessin, jsuis chaud la :D

====INPUT=====> (SERVEUR) =====OUTPUT>
==============FORWARD===========>

Vois-tu la différence ? Le pakcet est soit INPUT, OUTPUT ou FORWARD mais jamais il prndre 2 valeurs en meme temps ou a la suite...

ping serveur => le packet va passer en INPUT pour le serveur
et le serveur va répondre un écho => le packet va sortir via le OUTPUT vers le pc qui ping

ping www.google.be (gw=serveur) => le ping traverse le serveur (FORWARD)
ensuite, le packet atterit chez google, qui répond par un echo => le packet repasse à nouveau a travers le serveur (FORWARD a nouveau, mais dans l'autre sens)

:)
_________________
Mon MediaWiki perso : http://pix-mania.dyndns.org
Back to top
View user's profile Send private message
truc
Advocate
Advocate


Joined: 25 Jul 2005
Posts: 3199

PostPosted: Sun Jan 21, 2007 10:28 am    Post subject: Reply with quote

Quote:
Un packet arrive sur ton routeur, il est associé à une "table?" :
- INPUT (pour les packets à destination du pc)
- OUTPUT (les packets sortant du pc lui meme !!! qui provienne de ce pc, pas ceux qui provienne d'un autre !)

alors déjà quand on rentre un nom invalide à la place de OUTPUT, INPUT et compagnie, ça nous dit "Unknown address family" donc, ça doit être famille d'adresse :/
Sinon, merci pour ce point qui m'avait pour ainsi dire vraiment échappé, merci notamment pour ton exemple avec ta fac. Je n'avais pas bien compris :/

Bon un ptit desperate housewives, et j'm'y remet;), mais donc en gros là mon problème c'est que mes paquets (générés donc localement) ne sont ni en INPUT ni en FORWARD, donc je ne peux pas grand chose pour eux? y'a yun moyen pour les faire arriver en INPUT ou FORWARD (comme par magie quoi :lol: ), mouais, sinon, il me faut une machine virtuelle!! ::)
_________________
The End of the Internet!
Back to top
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Sun Jan 21, 2007 11:41 am    Post subject: Reply with quote

truc wrote:
, mais donc en gros là mon problème c'est que mes paquets (générés donc localement) ne sont ni en INPUT ni en FORWARD, donc je ne peux pas grand chose pour eux? y'a yun moyen pour les faire arriver en INPUT ou FORWARD (comme par magie quoi :lol: ), mouais, sinon, il me faut une machine virtuelle!! ::)


si quand tu parle de "local", tu parles de ton serveur, ben oui, c'est bien de l'OUTPUT que tes packet utiliseront (ainsi que de l'INPUT pour les réponses)


Si tu veux t'amuser à tester les redirections (pour faire un serveur virtuelle par exemple) ben tu peux très bien faire une redirection comme dans le post que j'ai mis plus haut (ou il y a une ligne de code) mais avec la boucle local "lo". Je vois pas trop l'utilité en fait :?:

Code:

iptables -t nat -A PREROUTING -p tcp --dport 80 -i lo -j DNAT --to 38.99.64.201:80



je viens de tester et ca marche pas donc ... ca fonctionne mieux si c'est la gateway qui le fait ... :lol:

faut regarder du coté d'un proxy ou alors, tester iproute2

EDIT: essaye ca pour les ping:
Code:

iptables -A INPUT -p icmp -m limit --limit 4/m -m state --state ! INVALID -j ACCEPT

_________________
Mon MediaWiki perso : http://pix-mania.dyndns.org
Back to top
View user's profile Send private message
truc
Advocate
Advocate


Joined: 25 Jul 2005
Posts: 3199

PostPosted: Sun Jan 21, 2007 12:42 pm    Post subject: Reply with quote

loopx wrote:
si quand tu parle de "local", tu parles de ton serveur, ben oui, c'est bien de l'OUTPUT que tes packet utiliseront (ainsi que de l'INPUT pour les réponses)
oui ça veut dire mon pc, (que je ne considère pas vraiment comme un serveur d'ailleurs :)
Quote:
Si tu veux t'amuser à tester les redirections (pour faire un serveur virtuelle par exemple) ben tu peux très bien faire une redirection comme dans le post que j'ai mis plus haut (ou il y a une ligne de code)
ouais je pense que ça sera plus marrant.. car là j'suis vraiment limité :S Pour Openvz faut un noyau spécial, donc j'vais regarder aute chose (j'vais rechercher noter DOW sur la virtualisation :)
Quote:
mais avec la boucle local "lo". Je vois pas trop l'utilité en fait :?:
euh, j'ai parlé de ça moi? :lol:
Quote:
tester iproute2
bah je l'ai en fait, mais (mis à part pour les tunnel peut-être) ce sont surtout des outils de consultation je crois:/
_________________
The End of the Internet!
Back to top
View user's profile Send private message
CryoGen
Veteran
Veteran


Joined: 11 Feb 2004
Posts: 1426
Location: Bamako - Mali - Afrique

PostPosted: Sun Jan 21, 2007 12:46 pm    Post subject: Reply with quote

Je me suis servi du DNAT pour un hotel :)

Dès que les clients voulaient envoyer des mails avec leurs portables, ils bloquaient sur leurs SMTP de leur propre FAI. Donc moi je choppai tous les paquets qui attaquent sur le port SMTP et un petit DNAT sur le smtp du FAI local :D vraiment pratique 8)

Par contre je n'ai plus la commande en tête :oops:
Je me demande si c'etait pas en POSTROUTING dans la table MANGLE mais je ne suis vraiment plus sur désolé :/
man iptables wrote:
mangle:
This table is used for specialized packet alteration. Until kernel 2.4.17 it had two built-in
chains: PREROUTING (for altering incoming packets before routing) and OUTPUT (for altering locally-
generated packets before routing). Since kernel 2.4.18, three other built-in chains are also sup-
ported: INPUT (for packets coming into the box itself), FORWARD (for altering packets being routed
through the box), and POSTROUTING (for altering packets as they are about to go out)


EDIT : ah non d'après le man c'est forcement en table NAT pour le DNAT :oops:
_________________
- CryoGen` on #gentoofr@irc.freenode.net
- ~amd64 / KDE4
- I'm the bone of my sword...
Back to top
View user's profile Send private message
truc
Advocate
Advocate


Joined: 25 Jul 2005
Posts: 3199

PostPosted: Sun Jan 21, 2007 1:05 pm    Post subject: Reply with quote

CryoGen wrote:
Je me suis servi du DNAT pour un hotel :)

Dès que les clients voulaient envoyer des mails avec leurs portables, ils bloquaient sur leurs SMTP de leur propre FAI. Donc moi je choppai tous les paquets qui attaquent sur le port SMTP et un petit DNAT sur le smtp du FAI local :D vraiment pratique 8)
ahah, pas mal:)
Quote:
Par contre je n'ai plus la commande en tête :oops:
Je me demande si c'etait pas en POSTROUTING dans la table MANGLE mais je ne suis vraiment plus sur désolé :/
ça ne peut pas être en POSTROUTING car, tu ne peux pas faire tonroutage, puis changer la destination, cat pour nous particulier, ça irai on a une route par défaut et problème résolu, mais ça on avait une vraie table de routage ça ne serait pas possible :/
De toutes façons, iptables nous envoi bouler si on essaies de faire quelque chose du genre..

J'avais bien pensé à la table /"famille d'addresse" mangle, mais je n'ai pas trouvé comment changer l'adresse de destination :/ (je ne peux pas utiliser -j DNAT autre part qu'avec -t nat mais si il y a un autre moyen, je suis preneur !D

EDIT: aha t'as édité, et oui c'est bien mon problème:)
_________________
The End of the Internet!
Back to top
View user's profile Send private message
CryoGen
Veteran
Veteran


Joined: 11 Feb 2004
Posts: 1426
Location: Bamako - Mali - Afrique

PostPosted: Sun Jan 21, 2007 1:27 pm    Post subject: Reply with quote

Sinon j'ai trouvé ca
http://www.linux-france.org/prj/inetdoc/guides/iptables-tutorial/dnattarget.html

À voir, ca à l'air d'ètre ce que tu cherches
_________________
- CryoGen` on #gentoofr@irc.freenode.net
- ~amd64 / KDE4
- I'm the bone of my sword...
Back to top
View user's profile Send private message
truc
Advocate
Advocate


Joined: 25 Jul 2005
Posts: 3199

PostPosted: Sun Jan 21, 2007 2:25 pm    Post subject: Reply with quote

CryoGen wrote:
Sinon j'ai trouvé ca
http://www.linux-france.org/prj/inetdoc/guides/iptables-tutorial/dnattarget.html

À voir, ca à l'air d'ètre ce que tu cherches


Merciiiii, bon alors déjà le texte commence par, "Notez que la cible DNAT est disponible uniquement dans les chaînes PREROUTING et OUTPUT de la table nat." Alors j'me dit, hein quoi? n'importe quoi, y'a pas de chaine OUTPUT dans la table nat (oui apparemment ça se dit table donc..:) ) ==>je vérifie donc, et bah si y'en a une

Trop kewl me dis-je donc, (n'ayant qu'une route par défaut, ça ne va pas me géner t'façons, et au pire ça ne me gènerai que pour atteindre l'adresse du forum :) )

Code:
iptables -t nat -A OUTPUT --destination 140.211.166.170 -j DNAT --to 65.214.39.56

je ping, et là j'ai le temps de réponse correspondant à l'adresse 65.214.39.56, donc je me rends sur http://140.211.166.170 et que vois-je? http://65.214.39.56 tadaaa, voila ni vu ni connu :D

Bon bah voila qui résoud ce mistère merci bien:)

Faudra que je pense à lire la suite de l'article n'empèche, car il avait l'air pas mal:)

Merci à tous, j'vais pouvoir essayer de faire des trucs plus utils maintenant.. :)

EDIT: Avant de faire des trucs utils on peut aussi s'amuser un peu: iptables -t nat -A OUTPUT --destination 207.46.199.30 -j DNAT --to 38.99.64.201 :lol:
EDIT2: rah les saligaud, ils en ont plein d'adresse IP :evil:
_________________
The End of the Internet!
Back to top
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Sun Jan 21, 2007 2:49 pm    Post subject: Reply with quote

lol

faudrais un truc qui check sur l'url ;)
_________________
Mon MediaWiki perso : http://pix-mania.dyndns.org
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum