Re: Tunnel SSH et redirection générique pour un port...
Bonjour, Le mardi 26 septembre 2006 à 21:00 +0200, Paul Filo a écrit : En tous cas, sachant que la sécurité du tunnel SSH me convient, si j'avais un moyen (proxy ?) de pouvoir y faire transiter le trafic que je souhaite (une sélection uniquement !), ça me conviendrait parfaitement... Merci d'avance pour les indices que vous pourrez me donner ;-) Tu as essayé vtun (http://vtun.sourceforge.net/) ? Tu fais un tunnel vtun dans ton tunnel ssh et avec les bonnes routes coté client, tu dois pouvoir t'en tirer (ce que tu veux faire n'est pas très clair). J'ai trouvé quelques exemples sur vtun, mais toujours avec 3 réseaux reliés ensemble et j'ai du mal à adapter tout ça à mes besoins... Je vais donc essayer d'expliquer plus clairement mon problème... J'ai un ordinateur A, connecté à Internet. J'ai un réseau privé R, dont un serveur SERV_PRIV est connecté à Internet et accessible via SSH. J'arrive donc à faire un tunnel SSH entre ma machine A et mon serveur SERV_PRIV, sauf que, dans la définition du tunnel, je dois préciser l'adresse Internet à laquelle je veux me connecter via le tunnel. Exemple : ssh -N -f SERV_PRIV -L110:pop.wanadoo.fr:110 Ceci me limite donc, pour le port 110 par exemple, à un seul serveur accessible via le tunnel (ici, pop.wanadoo.fr). Or, mon besoin est le suivant : - création d'un tunnel SSH entre A et SERV_PRIV - ajout de routes spéciales sur certains ports pour que les requêtes correspondantes passent par SERV_PRIV et ensuite par le réseau R A titre d'exemple, ainsi, si je fais une requête sur le port 110, par exemple sur pop.wanadoo.fr, mais aussi sur pop.free.fr, je souhaiterais que ces deux requêtes passent par mon tunnel puis par le réseau R. Déjà, comme lors de la création de mon tunnel, je précise le serveur distant (pop.wanadoo.fr dans l'exemple), j'ai un peu de mal à voir comment modifier tout ça. Avec les réponses que vous m'avez données, j'imagine bien une sorte de serveur proxy sur mon serveur SERV_PRIV qui redirigerait les requêtes qui lui arrivent sur les réseau R (comme il le fait actuellement vers pop.wanadoo.fr). Dans ce cas, j'établirais, sur mon ordinateur A, un tunnel avec une syntaxe du genre : ssh -N -f SERV_PRIV -L5000:proxy_serv_priv:5000 Mais alors, que puis-je mettre comme serveur proxy ? Et ensuite, comment dire à une requête de passer par ce serveur proxy (par exemple, dans Evolution, comment lui dire que mon serveur POP est pop.wanadoo.fr via proxy_serv_priv ? J'espère avoir été un peu plus clair dans mes explications... Merci d'avance. David. signature.asc Description: Ceci est une partie de message numériquement signée
RE: Tunnel SSH et redirection générique pour un port...
Re-bonjour, Le mercredi 27 septembre 2006 à 11:00 +0200, Mathieu JANIN a écrit : Bonjour, je me permets d'intervenir parcequ'il me parait qu'il y a un problême à la base: dis moi si je me trompe, mais tu veux pouvoir par exemple crypter ton traffic pop avec tes différents services de mail ? Non, pas du tout. Je veux juste passer par une machine intermédiaire. Donc, mon trafic sera crypté entre ma machine A et SERV_PRIV, mais pas entre SERV_PRIV et mon serveur POP (par exemple). Cela ne me pose aucun problème. En fait, d'où je suis, je n'ai pas accès au serveur POP. Mais en utilisant mon tunnel et en passant par SERV_PRIV, là, j'y ai accès ;-) Et bien quoi que tu fasse, tant que tu attaqueras un serveur pop3, il y aura toujours une partie non cryptée, à savoir, de SERV_PRIV vers tes differents serveurs pop, la communication se fera en clair. Par ailleurs, etant donné que tu n'as pas de masquerading de A jusqu'au serveur pop, les paquets en retour (toujours non cryptés) prendront la route directe vers ta machine A, sans repasser par R ni SERV_PRIV. Là, il ne me semble pas que ce soit le cas... Pour l'instant, j'ai juste ceci : ssh -N -f SERV_PRIV -L110:pop.wanadoo.fr:110 et ça marche. Si les paquets, au retour, allaient directement du serveur de Wanadoo à ma machine, ils n'arriveraient pas. Or, là, je les reçois bien... Si tu installes un proxy (poproxy, par exemple) sur SERV_PRIV, les paquets reviendront bien jusqu'à ton proxy, mais en non crypté entre le proxy et le serveur pop. Enfin ce que j'en dis... Tu as raison, je n'avais peut être pas été suffisamment clair... David. ++ -Message d'origine- De : David BERCOT [mailto:[EMAIL PROTECTED] Envoyé : mercredi 27 septembre 2006 10:16 À : Debian [User-French] Objet : Re: Tunnel SSH et redirection générique pour un port... Bonjour, Le mardi 26 septembre 2006 à 21:00 +0200, Paul Filo a écrit : En tous cas, sachant que la sécurité du tunnel SSH me convient, si j'avais un moyen (proxy ?) de pouvoir y faire transiter le trafic que je souhaite (une sélection uniquement !), ça me conviendrait parfaitement... Merci d'avance pour les indices que vous pourrez me donner ;-) Tu as essayé vtun (http://vtun.sourceforge.net/) ? Tu fais un tunnel vtun dans ton tunnel ssh et avec les bonnes routes coté client, tu dois pouvoir t'en tirer (ce que tu veux faire n'est pas très clair). J'ai trouvé quelques exemples sur vtun, mais toujours avec 3 réseaux reliés ensemble et j'ai du mal à adapter tout ça à mes besoins... Je vais donc essayer d'expliquer plus clairement mon problème... J'ai un ordinateur A, connecté à Internet. J'ai un réseau privé R, dont un serveur SERV_PRIV est connecté à Internet et accessible via SSH. J'arrive donc à faire un tunnel SSH entre ma machine A et mon serveur SERV_PRIV, sauf que, dans la définition du tunnel, je dois préciser l'adresse Internet à laquelle je veux me connecter via le tunnel. Exemple : ssh -N -f SERV_PRIV -L110:pop.wanadoo.fr:110 Ceci me limite donc, pour le port 110 par exemple, à un seul serveur accessible via le tunnel (ici, pop.wanadoo.fr). Or, mon besoin est le suivant : - création d'un tunnel SSH entre A et SERV_PRIV - ajout de routes spéciales sur certains ports pour que les requêtes correspondantes passent par SERV_PRIV et ensuite par le réseau R A titre d'exemple, ainsi, si je fais une requête sur le port 110, par exemple sur pop.wanadoo.fr, mais aussi sur pop.free.fr, je souhaiterais que ces deux requêtes passent par mon tunnel puis par le réseau R. Déjà, comme lors de la création de mon tunnel, je précise le serveur distant (pop.wanadoo.fr dans l'exemple), j'ai un peu de mal à voir comment modifier tout ça. Avec les réponses que vous m'avez données, j'imagine bien une sorte de serveur proxy sur mon serveur SERV_PRIV qui redirigerait les requêtes qui lui arrivent sur les réseau R (comme il le fait actuellement vers pop.wanadoo.fr). Dans ce cas, j'établirais, sur mon ordinateur A, un tunnel avec une syntaxe du genre : ssh -N -f SERV_PRIV -L5000:proxy_serv_priv:5000 Mais alors, que puis-je mettre comme serveur proxy ? Et ensuite, comment dire à une requête de passer par ce serveur proxy (par exemple, dans Evolution, comment lui dire que mon serveur POP est pop.wanadoo.fr via proxy_serv_priv ? J'espère avoir été un peu plus clair dans mes explications... Merci d'avance. David. signature.asc Description: Ceci est une partie de message numériquement signée
Configuration de socks et iptables [Was Re: Tunnel SSH et redirection générique pour un port...]
Bon, je continue à réfléchir sur le sujet (je ne vais quand même pas attendre que ça m'arrive tout cuit ;-))) et, finalement, j'ai l'impression qu'un serveur socks installé sur mon serveur SERV_PRIV devrait faire l'affaire, non ? Ensuite, pour les applis qui peuvent utiliser un serveur proxy, je les redirige vers le serveur socks et, pour celles qui ne peuvent pas (genre Evolution ?), il doit suffire de rajouter des règles iptables du genre : demande vers pop.wanadoo.fr sur port 110 doit passer par serveur socks. Est-ce que ça vous semble jouable ? Maintenant, socks étant un terme générique, j'admets que je n'ai rien trouvé de satisfaisant en terme d'exemple... Auriez-vous un lien ou deux ? De la même manière, ne pratiquant pas du tout iptables, auriez-vous un exemple ou un lien pour ce que je dois faire ? Merci d'avance. David. Le mercredi 27 septembre 2006 à 10:15 +0200, David BERCOT a écrit : Bonjour, Le mardi 26 septembre 2006 à 21:00 +0200, Paul Filo a écrit : En tous cas, sachant que la sécurité du tunnel SSH me convient, si j'avais un moyen (proxy ?) de pouvoir y faire transiter le trafic que je souhaite (une sélection uniquement !), ça me conviendrait parfaitement... Merci d'avance pour les indices que vous pourrez me donner ;-) Tu as essayé vtun (http://vtun.sourceforge.net/) ? Tu fais un tunnel vtun dans ton tunnel ssh et avec les bonnes routes coté client, tu dois pouvoir t'en tirer (ce que tu veux faire n'est pas très clair). J'ai trouvé quelques exemples sur vtun, mais toujours avec 3 réseaux reliés ensemble et j'ai du mal à adapter tout ça à mes besoins... Je vais donc essayer d'expliquer plus clairement mon problème... J'ai un ordinateur A, connecté à Internet. J'ai un réseau privé R, dont un serveur SERV_PRIV est connecté à Internet et accessible via SSH. J'arrive donc à faire un tunnel SSH entre ma machine A et mon serveur SERV_PRIV, sauf que, dans la définition du tunnel, je dois préciser l'adresse Internet à laquelle je veux me connecter via le tunnel. Exemple : ssh -N -f SERV_PRIV -L110:pop.wanadoo.fr:110 Ceci me limite donc, pour le port 110 par exemple, à un seul serveur accessible via le tunnel (ici, pop.wanadoo.fr). Or, mon besoin est le suivant : - création d'un tunnel SSH entre A et SERV_PRIV - ajout de routes spéciales sur certains ports pour que les requêtes correspondantes passent par SERV_PRIV et ensuite par le réseau R A titre d'exemple, ainsi, si je fais une requête sur le port 110, par exemple sur pop.wanadoo.fr, mais aussi sur pop.free.fr, je souhaiterais que ces deux requêtes passent par mon tunnel puis par le réseau R. Déjà, comme lors de la création de mon tunnel, je précise le serveur distant (pop.wanadoo.fr dans l'exemple), j'ai un peu de mal à voir comment modifier tout ça. Avec les réponses que vous m'avez données, j'imagine bien une sorte de serveur proxy sur mon serveur SERV_PRIV qui redirigerait les requêtes qui lui arrivent sur les réseau R (comme il le fait actuellement vers pop.wanadoo.fr). Dans ce cas, j'établirais, sur mon ordinateur A, un tunnel avec une syntaxe du genre : ssh -N -f SERV_PRIV -L5000:proxy_serv_priv:5000 Mais alors, que puis-je mettre comme serveur proxy ? Et ensuite, comment dire à une requête de passer par ce serveur proxy (par exemple, dans Evolution, comment lui dire que mon serveur POP est pop.wanadoo.fr via proxy_serv_priv ? J'espère avoir été un peu plus clair dans mes explications... Merci d'avance. David. signature.asc Description: Ceci est une partie de message numériquement signée
Re: Tunnel SSH et redirection générique pour un port...
Bonjour, Suite à vos différents conseils, j'ai effectué des recherches supplémentaires. Mais pour l'instant, je n'arrive pas encore à faire ce que je veux... Tout d'abord, une petite parenthèse rapide : Le dimanche 24 septembre 2006 à 20:30 +0200, Jean-Michel Schelcher a écrit : Si j'ai bien compris, tu veux rediriger toutes les requÃtes pop sortantes vers le port 110 local, donc dans le tunnel ? Dans ce cas... iptables -t nat -I OUTPUT -p tcp --dport 110 -j DNAT --to 127.0.0.1:110 ... devrait fonctionner. Ce qui signifie en gros, pour tous les paquets en sortie avec le port destination a 110/tcp, on rÃÃcrit l'adresse de destination a 127.0.0.1 En fait, je ne crois pas que ce soit tout à fait ça. Avec la règle SSH établissant le tunnel [ssh -N -f monserveur -L110:pop.wanadoo.fr:110], si je rajoute la règle iptables ci-dessus, le résultat devrait être que tous les requêtes à destination du port 110 seraient redirigées vers le serveur de Wanadoo via le tunnel, non ? En fait, je souhaiterais quelque chose de plus générique... Le dimanche 24 septembre 2006 à 16:15 +0200, Gilles Mocellin a écrit : Le dimanche 24 septembre 2006 15:47, David BERCOT a écrit : Bonjour, Je reviens sur mon problème de tunnel SSH. J'arrive bien à le mettre en oeuvre et à effectuer la redirection pour un serveur particulier sur un port particulier. Mais maintenant, je souhaiterais effectuer la redirection pour un port particulier, mais pour n'importe quel serveur !!! Par exemple, je voudrais effectuer la redirection pour le port 110. Ainsi, si je fais appel au serveur pop1 (avec le port par défaut, soit 110), la demande passera par le tunnel. Si je fais appel au serveur pop2, le chemin sera le même... Ça ne s'appelle plus un tunnel mais un proxy ! Ou du routage via un VPN. Pour du proxy TCP quelconque, il y a socks. Pour du routage via VPN, il y a openvpn, de l'IPSEC... Dans tous les cas, il faut être admin du serveur qui fera proxy/routeur pour installer et configurer ces serveurs. Quoique, sans être admin, mais avec un compte, on doit pouvoir compiler les proxies applicatifs dans son home et les faire tourner sur des ports 1024. Concernant les problèmes de droits, y'a aucun souci !!! Maintenant, comme il s'agit effectivement de trafic TCP quelconque, pourquoi pas la solution du proxy. J'ai fait quelques recherches sur socks sans vraiment trouver mon bonheur (j'ai bien trouvé des choses sur connect-proxy ou dante mais sans explication réelle de mise en oeuvre). D'autre part, j'ai un petit problème conceptuel. En effet, dans mon tunnel SSH, je précise toujours le serveur cible (dans l'exemple vu plus haut, il s'agissait de pop.wanadoo.fr). Or, là, j'aurais besoin de ce tunnel pour n'importe quel serveur... J'ai aussi regardé openvpn qui devrait pouvoir me convenir, mais là non plus, je n'ai rien trouvé de vraiment satisfaisant (les exemples étaient surtout basé sur SSL et sur des clients Windows). Sinon, j'ai aussi vu un truc qui s'appelle secvpn mais sans plus de détail... En tous cas, sachant que la sécurité du tunnel SSH me convient, si j'avais un moyen (proxy ?) de pouvoir y faire transiter le trafic que je souhaite (une sélection uniquement !), ça me conviendrait parfaitement... Merci d'avance pour les indices que vous pourrez me donner ;-) David. signature.asc Description: Ceci est une partie de message numériquement signée
Tunnel SSH et redirection générique pour un port...
Bonjour, Je reviens sur mon problème de tunnel SSH. J'arrive bien à le mettre en oeuvre et à effectuer la redirection pour un serveur particulier sur un port particulier. Mais maintenant, je souhaiterais effectuer la redirection pour un port particulier, mais pour n'importe quel serveur !!! Par exemple, je voudrais effectuer la redirection pour le port 110. Ainsi, si je fais appel au serveur pop1 (avec le port par défaut, soit 110), la demande passera par le tunnel. Si je fais appel au serveur pop2, le chemin sera le même... Savez-vous si c'est possible ? Et si oui, comment ;-) Merci d'avance. David. signature.asc Description: Ceci est une partie de message numériquement signée
Re: Tunnel SSH et redirection générique pour un port...
Le dimanche 24 septembre 2006 15:47, David BERCOT a écrit : Bonjour, Je reviens sur mon problème de tunnel SSH. J'arrive bien à le mettre en oeuvre et à effectuer la redirection pour un serveur particulier sur un port particulier. Mais maintenant, je souhaiterais effectuer la redirection pour un port particulier, mais pour n'importe quel serveur !!! Par exemple, je voudrais effectuer la redirection pour le port 110. Ainsi, si je fais appel au serveur pop1 (avec le port par défaut, soit 110), la demande passera par le tunnel. Si je fais appel au serveur pop2, le chemin sera le même... Savez-vous si c'est possible ? Et si oui, comment ;-) Merci d'avance. David. Ça ne s'appelle plus un tunnel mais un proxy ! Ou du routage via un VPN. Pour certains services il y a des proxies dédiés : squid pour le web, P3Scan pour le courrier POP, Perdition ou IMAP proxy pour l'IMAP... Pour du proxy TCP quelconque, il y a socks. Pour du routage via VPN, il y a openvpn, de l'IPSEC... Dans tous les cas, il faut être admin du serveur qui fera proxy/routeur pour installer et configurer ces serveurs. Quoique, sans être admin, mais avec un compte, on doit pouvoir compiler les proxies applicatifs dans son home et les faire tourner sur des ports 1024. pgpSFwxkfpzUt.pgp Description: PGP signature