Modifier le contenu d'un paquet

Echangez vos avis, assistez-vous durant la configuration de vos matériels réseau. Ce forum vous permettra de faire partager vos expérience en matière de mise en place de matériel réseau, qu'il s'agisse de routeurs, switches, wireless ...

Modérateur: modos Ixus

Modifier le contenu d'un paquet

Messagepar ti_minux » 22 Juin 2007 11:07

Bonjour,

Je souhaiterais modifier le contenu d'un paquet (pendant une session FTP).
J'ai entendu parlé de tc qui pourrait éventuellement faire cela via un marquage préalable par iptables -t mangle...

Quelqu'un saurait-il faire cela et me guider ?
Merci,
_____________________
minux
ti_minux
Quartier Maître
Quartier Maître
 
Messages: 11
Inscrit le: 20 Juin 2007 19:29

Messagepar Franck78 » 22 Juin 2007 11:44

Modifier QUOI?

Tu es au niveau tcp 'transport'. Ca fait beaucoup de chose 'modifiable' dans les couches sous-jacentes....

tc? Google est là pour les questions généralistes les trouver le 'man' ;-)
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Messagepar ti_minux » 22 Juin 2007 11:58

Ben justement j'ai cherché dans google et pour tc (traffic control et iproute) je n'ai trouvé QUE comment modifier une partie de l'en-tete TCP.
Hors je souhaite modifier le corps d'un message TCP contenant du FTP (commande, donc du texte en clair)
_____________________
minux
ti_minux
Quartier Maître
Quartier Maître
 
Messages: 11
Inscrit le: 20 Juin 2007 19:29

Messagepar jdh » 22 Juin 2007 12:59

Je vois mal tc modifier les data d'un paquet. Il n'est pas prévu pour ça.

Et puis d'abord modifier quoi et pour quelle raison ?

Si c'est dans le protocole ftp qu'il n'y a pas ce que tu veux, peut-être que la demande est incongrue peut-être qu'il est directement possible d'y remédier à l'intérieur du protocole c'est à dire du serveur. (Et Proftpd est suffisamment adaptable ...)
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar Muzo » 22 Juin 2007 13:25

C'est quoi le but de la manipulation?
(attention je suis à 2 doigts de verrouiller le post pour piratage)
/Muzo
"La vie n'est pas un combat, mais une passion à défendre!" MASS HYSTERIA - Knowledge is power
Avatar de l’utilisateur
Muzo
Amiral
Amiral
 
Messages: 5236
Inscrit le: 07 Mai 2003 00:00
Localisation: BNF! Je me culturise.

Messagepar ti_minux » 22 Juin 2007 23:45

bon je vais m'expliquer en essayant d'être le plus clair possible :

J'ai deux serveurs FTP sur ma machine, donc sur deux ports dont au moins un non standard.
Cette même machine est protégée par iptables. Donc pour autoriser les connexions passives, j'ai activé le module ip_conntrack_ftp avec l'options ports sur les différents ports concernés.
Mais pour aller sur internet j'ai un routeur (une freebox) qui NAT. Or elle s'attends pas à NATer du FTP sur un autre port que le 21... du coup dans la réponse de la commande PASV, elle ne modifie pas le paquet pour y mettre l'adresse publique.
Mon PC ne faisant pas de NAT directement, le module ip_nat_ftp n'a aucun effet.
Si je met l'option MasqueradeAddress de proftpd pour qu'il renseigne directement cette réponse avec l'adresse publique, c'est le module ip_conntrack_ftp qui ne relate plus les paquets de données par rapport à ceux de commandes.

Pour le moment, la seule parade que j'ai trouvé c'est (pour des IPs autorisées) de faire du prérouting du port 21 vers le port du serveur en entrée et l'inverse en sortie histoire que le NAT de la freebox puisse modifier le paquet et faire réellement son rôle de NAT. Ce qui me dérange c'est de devoir autoriser les IP et surtout de devoir les rajouter une à une dans mon script. Le serveur FTP n'étant pas anonyme, ça fait double authentification (je trouve cela inutile).

J'ai donc pensé que si je pouvais remplacer le NAT de la freebox aprés le routage directement sur mon serveur pour cette réponse exclusivement, ca résoudrait tous mes problèmes...

J'espère être assez clair et précis pour montrer qu'il ne s'agit pas de piratage mais réellement d'un pb de configuration réseau. Que j'ai une solution pour le moment non satisfaisante et que j'aimerais l'améliorer.
Je me trompe peut être pour tc, il doit peut être y avoir un autre moyen.

Je suis ouvert à toutes suggestions... :)
Merci d'avance,
_____________________
minux
ti_minux
Quartier Maître
Quartier Maître
 
Messages: 11
Inscrit le: 20 Juin 2007 19:29

Messagepar ti_minux » 22 Juin 2007 23:48

Une chose que j'ai oublié de préciser, c'est que les ports d'écoute du module ip_nat_ftp de la freebox, je n'ai aucun accés dessus pour pouvoir les configurer.
_____________________
minux
ti_minux
Quartier Maître
Quartier Maître
 
Messages: 11
Inscrit le: 20 Juin 2007 19:29

Messagepar jdh » 23 Juin 2007 08:01

Avec la Freebox en bridge (et non en routeur), ce serait le firewall qui ferait le NAT. Donc cela fonctionnerait peut-être comme tu voudrais.


2 serveurs FTP ? Il faut comprendre qu'il y a 2 machines différentes qui sont serveurs FTP, je suppose. (Je pense qu'il y en a un de trop.)

Je ne sais pas s'il est possible de faire plutôt comme pour http un "reverse proxy ftp".

Avec http, on peut faire assez facilement la chose suivante : 2 domaines www.xxxx pointe sur la même ip, mais la machine firewall utilise la fonction "reverse proxy" : elle sait alors rediriger le flux http vers 2 serveurs différents en se basant sur le nom de domaine. Sous Apache, on appelle cela les "virtual host". On peut assez aisément avec 2 serveurs http, l'un en Apache, l'autre en IIS avec 2 domaines, le tout en utilisant le même port http=tcp/80.

Peut-être que Proftpd est capable de faire la même chose ? (parce qu'il a un fichier de conf du même type).

Cela éliminerait tous les "bricolages" au niveau iptables qui me paraissent plutôt "scabreux".


(Je pars de l'idée qu'il y a 2 serveurs ftp sur 2 machines différentes derrière le firewall, ou le firewall et une autre machine. Parce que 2 serveurs sur la même machine, là il doit y avoir la possibilité de faire autrement.)

(Je confirme que Proftpd sait gérer plusieurs noms de domaine sur le même serveur = avec le même port tcp/21 traditionnel, mais ne sembla pas capable de rediriger le flux vers un autre serveur.)
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar ti_minux » 23 Juin 2007 16:51

Salut,

J'aimerais mettre la freebox en bridge, mais pour le moment, je n'ai pas le matériel pour mettre un PC en routeur/firewall derriere.

Ensuite 2 serveurs FTP oui, en faite j'utilise les virtual hosts de proftpd pour deux serveurs FTP, un publique et un semi-privé (que je puisse y accéder du boulot :p).
Il n'y a donc réellement qu'un seul serveur mais qui écoute sur deux ports différents (les virtual hosts ne sont pas aussi évolués que ceux d'apache et ne peuvent différencier les domaine que par le port), le tout sur la machine qui est firewallée.

Une précision supplémentaire peut-être, cette machine est sur la DMZ de la freebox.
Et j'ai actuellement un utilisateur du FTP public qui n'a pas d'IP fixe. Donc la solution que j'ai donné (temporairement, le temps d'avoir les sous pour acheter une passerelle dédiée) n'est vraiment pas intéressante... Je me vois mal changer le script et le recharger chaque fois qu'il voudra se connecter...

Je trouve aussi que toutes ces manipulations sont vraiment scabreuses et si je pouvais trouver une solution simple (en attendant la passerelle qui n'est pas encore à l'ordre du jour dans le budget) je pourrais souffler un peu ;)

Je suis toujours à l'écoute de toutes les propositions possibles,
Merci encore,
_____________________
minux
ti_minux
Quartier Maître
Quartier Maître
 
Messages: 11
Inscrit le: 20 Juin 2007 19:29

Messagepar Franck78 » 23 Juin 2007 20:53

jdh a écrit:Peut-être que Proftpd est capable de faire la même chose ? (parce qu'il a un fichier de conf du même type).

A priori non... Le coup des serveurs virtuels sur la même IP fonctionne uniquement car l'entète HTTP le permet. Le protocole HTTP contient l'info nénéssaire.
Dans le proto FTP de base, c'est 'open' 'connect', du basique. Ca n'empèche pas une extension, c'est vrai, mais il faudrait alors que le client ftp lambda soit aussi 'à jour'.
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Messagepar jibe » 23 Juin 2007 22:28

Salut,

ti_minux a écrit:J'aimerais mettre la freebox en bridge, mais pour le moment, je n'ai pas le matériel pour mettre un PC en routeur/firewall derriere.

Tu ne peux vraiment pas récupérer une vieille bécane d'ancienne génération (je te laisse chercher la config minimum... ou Franck te l'indiquer) pour y monter Ipcop ? Ca me semble bien plus simple à trouver que de mettre en oeuvre ta solution, surtout si elle n'est que provisoire :wink:
"Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire" (Albert Einstein)

Autrefois, l'Etat défendait des valeurs. Maintenant, il défend des profits... (Anne Haunnime)
Avatar de l’utilisateur
jibe
Amiral
Amiral
 
Messages: 4366
Inscrit le: 17 Oct 2003 00:00
Localisation: Haute Savoie

Messagepar Franck78 » 24 Juin 2007 00:36

Je sais pas un IPCop sera d'un grande utilité. Je cerne pas le problème technique!

"Or elle s'attends pas à NATer du FTP sur un autre port que le 21"
Le NAT n'est pas lié au protocole !
On peut indiquer au module iptable track ftp que ce n'est pas necesairement 21 et 20.

Comme je pense qu'un gars bien a du se dire qu'un jour quelqu'un voudrait 'conn_tracker_ftp' sur plus d'un couple de port control/data sur la même machine, je chercherais d'abord de ce coté!
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Messagepar jibe » 24 Juin 2007 22:00

Salut,

Tu as probablement raison, Franck ! J'avais seulement survolé, et étais tombé sur le problème matériel auquel j'ai réagi. Mais c'est vrai que cette installation est un peu spéciale, et j'avoue qu'elle me laisse un peu sceptique...

J'aurais assez tendance à être de l'avis de jdh : pourquoi deux serveurs FTP ? Est-ce un réel besoin, ou une mauvaise solution trouvée pour contourner un problème posé par un cas un peu spécial... ou mal étudié ?
"Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire" (Albert Einstein)

Autrefois, l'Etat défendait des valeurs. Maintenant, il défend des profits... (Anne Haunnime)
Avatar de l’utilisateur
jibe
Amiral
Amiral
 
Messages: 4366
Inscrit le: 17 Oct 2003 00:00
Localisation: Haute Savoie

Messagepar ti_minux » 26 Juin 2007 13:38

Salut,

Le choix des deux serveurs FTP n'est peut etre pas judicieux, mais le probleme vient surtout du fait qu'ils n'ecoutent pas sur le port standard.
Il n'y aurait qu'un seul serveur, toujours sur un autre port... ce serait pareil...
ti_minux
Quartier Maître
Quartier Maître
 
Messages: 11
Inscrit le: 20 Juin 2007 19:29

Messagepar jibe » 28 Juin 2007 18:05

Salut,

Je me remonte péniblement d'une mauvaise grippe, et j'avoue ne pas bien avoir la tête à me plonger dans ton problème, mais là, je ne comprends pas : si tu n'as qu'un seul serveur, il suffit de faire du transfert de port pour tout le traffic FTP, non ? La difficulté de ton problème était, m'avait-il semblé, de savoir (afin de rediriger judicieusement) ce qui s'adressait à l'un ou à l'autre...
"Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire" (Albert Einstein)

Autrefois, l'Etat défendait des valeurs. Maintenant, il défend des profits... (Anne Haunnime)
Avatar de l’utilisateur
jibe
Amiral
Amiral
 
Messages: 4366
Inscrit le: 17 Oct 2003 00:00
Localisation: Haute Savoie


Retour vers Configuration matériel réseau

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron