Tunnel SSH, est ce possible ?

Tunnel SSH, est ce possible ? - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 13-04-2008 à 21:26:09    

Bonjour,
 
Je possède à mon boulot 2 machines sur 2 VLAN différents. L'une sur un VLAN "serveur" , avec des droits spécifiques, et l'autre sur le VLAN "utilisateur".
 
Le VLAN utilisateur n'a le droit de sortir que sur le port 80 , 21 et le HTTPS (chai plus le nombre).
le VLAN serveur a le droit en plus de sortir sur 2401 (CVS), 3690 (SVN) ,et 6667 (IRC). Ceci pour des raison (à la con) internes à l'entreprise. J'ai  accès aux 2 machines et quand j'ai besoin d'ouvrir un port sur CVS , SVN ou IRC, je crée un tunnel SSH entre ma machine "utilisateur" et ma machine "serveur", et ensuite je me connecte sur localhost:port. Ceci marche parfaitement bien.
Par contre ceci est un peu limité. En effet, A chaque fois que j'ai besoin de me connecter sur un site CVS, je dois créer le tunnel pour ce site. Ceci ne me pose pas de problème pour une bibliothèque à la fois. Par contre, j'ai besoin maintenant de compiler VLC en utilisant son formidable ./configure qui s'occupe automatiquement d'aller chercher les derniers sources sur chaque repository. Sauf que le hic, c'est que je ne peux compiler VLC qu'à partir d'une machine se situant sur le VLAN "utilisateur". Il m'est donc impossible de compiler VLC en allant chercher les sources, car il faudrait qu'automatiquement, je crée un tunnel SSH pour chaque bibliothèque, puis couper ce tunnel pour lancer le suivant.  
 
Je pense qu'avec le système de tunnel ssh, ce n'est pas possible. Ou alors il faudrait que je modifie le fichier ./configure de VLC pour changer toutes les sources à la main (mais il y en a trop). J'aimerais donc savoir s'il est possible de rediriger automatiquement des requetes sur un port sortant vers le port sortant d'une autre machine du réseau ?
 
Merci d'avance  :jap:

Reply

Marsh Posté le 13-04-2008 à 21:26:09   

Reply

Marsh Posté le 13-04-2008 à 21:37:37    

xilebo a écrit :

Ceci pour des raison (à la con) internes à l'entreprise.


Si c'est des problèmes liés à ton entreprise, vois ca avec le support de ton entreprise (ie. tes admins).
On ne t'aidera pas a bypasser les règles de sécurité mises en place.

 

Après ré-explications et éclaircissements en MP je réouvre :jap:


Message édité par o'gure le 14-04-2008 à 17:52:24

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 21-10-2008 à 21:07:46    

Bonjour,
 
Je me permets de réupper ce sujet (pour éviter de créer un nouveau sujet, cela parle encore de ssh), même si la question est totalement différente :)
 
Je souhaite effectuer la maintenance d'un système qui n'est pas directement relié à internet (dans un avion). Pour faire le lien entre les 2, je dispose d'un ordinateur portable avec une carte orange 3G d'un coté, et d'une carte ethernet de l'autre coté.
 
Le système à maintenance est composé de plusieurs machines linux équipées d'un serveur ssh (mandriva pour le moment, ubuntu à terme), celui-ci servant à faire des transferts de fichier via scp, mais aussi parfois de la maintenance par shell.
 
Pour le moment, je me connecte sur l'ordinateur portable avec un système de type VNC, puis une fois la main sur ce portable, j'effectue mes opérations (scp et ssh), mais c'est assez lourd et ca bouffe de la bande passante.
 
Je souhaiterai à la place effectuer un tunnel ssh entre ma machine et cet ordinateur portable, afin que je puisse attaquer directement les machines du système avion.
 
Le petit hic, c'est que l'ordinateur portable ne possède pas de serveur ssh, je dois donc faire un tunnel inversé (je possède un port entrant sur un serveur ssh dans l'entreprise qui m'est destiné).
 
Personnellement, je ne vois pas bien comment faire, et je souhaiterai quelques petites explications pour la démarche à suivre.
 
Merci d'avance  :jap:  
 
PS : il y a bien un admin dans mon entreprise, mais c'est un pur windows, et ssh pas connaitre, je dois donc trouver des solutions moi-même.
PS2 : je n'ai toujours pas de réponse à ma question initiale  :o  
 

Reply

Marsh Posté le 21-10-2008 à 23:22:53    

xilebo a écrit :


Par contre ceci est un peu limité. En effet, A chaque fois que j'ai besoin de me connecter sur un site CVS, je dois créer le tunnel pour ce site. Ceci ne me pose pas de problème pour une bibliothèque à la fois. Par contre, j'ai besoin maintenant de compiler VLC en utilisant son formidable ./configure qui s'occupe automatiquement d'aller chercher les derniers sources sur chaque repository. Sauf que le hic, c'est que je ne peux compiler VLC qu'à partir d'une machine se situant sur le VLAN "utilisateur". Il m'est donc impossible de compiler VLC en allant chercher les sources, car il faudrait qu'automatiquement, je crée un tunnel SSH pour chaque bibliothèque, puis couper ce tunnel pour lancer le suivant.  
 
Je pense qu'avec le système de tunnel ssh, ce n'est pas possible. Ou alors il faudrait que je modifie le fichier ./configure de VLC pour changer toutes les sources à la main (mais il y en a trop). J'aimerais donc savoir s'il est possible de rediriger automatiquement des requetes sur un port sortant vers le port sortant d'une autre machine du réseau ?


 
Une petite redirection de port associé à un tunnel applicatif :
- http://en.wikipedia.org/wiki/Iptables -> "iptables -t nat -A OUTPUT -o lo -p tcp --dport 80 -j REDIRECT --to-port 8080" etc.
- le tunnel applicatif suppose de pouvoir disposer d'un logiciel spécialement conçu pour faire du tunneling à chaque bout du tunnel, hmmm...
 
Sinon apparemment c'est prévu dans OpenSSH 4.3 de faire du tunneling : http://www.lea-linux.org/cached/in [...] enssh.html
Mais il faut une bonne floppée de trucs à activer sur le serveur...
 

xilebo a écrit :


Le petit hic, c'est que l'ordinateur portable ne possède pas de serveur ssh, je dois donc faire un tunnel inversé (je possède un port entrant sur un serveur ssh dans l'entreprise qui m'est destiné).


 
Je dirais un SSH à authentification à clef (ssh-key) associé à un autoconnect à intervalle régulier.

Message cité 1 fois
Message édité par czh le 21-10-2008 à 23:26:11
Reply

Marsh Posté le 22-10-2008 à 19:18:48    

xilebo a écrit :

Bonjour,
 
Je me permets de réupper ce sujet (pour éviter de créer un nouveau sujet, cela parle encore de ssh), même si la question est totalement différente :)
 
Je souhaite effectuer la maintenance d'un système qui n'est pas directement relié à internet (dans un avion). Pour faire le lien entre les 2, je dispose d'un ordinateur portable avec une carte orange 3G d'un coté, et d'une carte ethernet de l'autre coté.
 
Le système à maintenance est composé de plusieurs machines linux équipées d'un serveur ssh (mandriva pour le moment, ubuntu à terme), celui-ci servant à faire des transferts de fichier via scp, mais aussi parfois de la maintenance par shell.
 
Pour le moment, je me connecte sur l'ordinateur portable avec un système de type VNC, puis une fois la main sur ce portable, j'effectue mes opérations (scp et ssh), mais c'est assez lourd et ca bouffe de la bande passante.
 
Je souhaiterai à la place effectuer un tunnel ssh entre ma machine et cet ordinateur portable, afin que je puisse attaquer directement les machines du système avion.
 
Le petit hic, c'est que l'ordinateur portable ne possède pas de serveur ssh, je dois donc faire un tunnel inversé (je possède un port entrant sur un serveur ssh dans l'entreprise qui m'est destiné).
 
Personnellement, je ne vois pas bien comment faire, et je souhaiterai quelques petites explications pour la démarche à suivre.
 
Merci d'avance  :jap:  
 
PS : il y a bien un admin dans mon entreprise, mais c'est un pur windows, et ssh pas connaitre, je dois donc trouver des solutions moi-même.
PS2 : je n'ai toujours pas de réponse à ma question initiale  :o  
 


 
Tu m'excuseras si je n'ai pas bien compris mais pour moi ton architecture est la suivante:
A: ton poste
B: le portable
C: l'ordi dans l'avion
 
A->B->C
 
Si B n'a pas de serveur ssh, ça me paraît difficile de faire un tunnel de A vers C.

Reply

Marsh Posté le 22-10-2008 à 20:09:51    

Tu as bien compris l'architecture :)
 
J'ai par contre un client ssh. Il m'est donc possible de créer un tunnel en mode reverse : A<-B->C afin de faire A->C.
 
La raison pour laquelle je n'ai pas de serveur ssh est hors charte ici. Mais dis toi que A et C sont sous linux, pas B. (la carte GSM/GPRS/3G fournie par orange ne fonctionne pas sous linux , sauf si vous me donnez la solution :o ). Imaginons que B est sous linux, mon problème reste identique :)


Message édité par xilebo le 22-10-2008 à 20:11:35
Reply

Marsh Posté le 22-10-2008 à 20:14:43    

czh a écrit :


 
Une petite redirection de port associé à un tunnel applicatif :
- http://en.wikipedia.org/wiki/Iptables -> "iptables -t nat -A OUTPUT -o lo -p tcp --dport 80 -j REDIRECT --to-port 8080" etc.
- le tunnel applicatif suppose de pouvoir disposer d'un logiciel spécialement conçu pour faire du tunneling à chaque bout du tunnel, hmmm...
 
Sinon apparemment c'est prévu dans OpenSSH 4.3 de faire du tunneling : http://www.lea-linux.org/cached/in [...] enssh.html
Mais il faut une bonne floppée de trucs à activer sur le serveur...
 


 
Excuse moi, je ne suis pas un expert réseau même si je comprends les bases, mais je n'ai pas compris ta solution :(
 

czh a écrit :


 
Je dirais un SSH à authentification à clef (ssh-key) associé à un autoconnect à intervalle régulier.


 
(voir réponse ci-dessus pour les lettres). Mon souci est que je ne sais pas comment créer une connexion directe de A à C  une fois que des initialisations sont faites sur B.
 
Concrètement, je voudrai me connecter en ssh (ou telnet ou ftp selon le service demandé) en me connectant sur ma machine A à une certaine adresse et sur un certain port (ex : 127.0.0.1 + port 22), et B s'occupe de me relayer ca automatiquement sur la machine voulue C.

Reply

Marsh Posté le 22-10-2008 à 23:16:20    

Trouvé :)
A est ici l'adresse ip de A
B est ici l'adresse ip de B
C est ici l'adresse ip de C

 

On va dire que tu as un compte nommé "compte" sur les trois machines

 

Sur B tu fais:
ssh -R 1234:C:22 compte@A

 

T'arrives donc sur A et dans le terminal qui s'est ouvert sur A tu fais:
ssh -p 1234 127.0.0.1

 

Et hop t'arrives sur C. Si tu veux faire un scp, ben sur A tu fais:
scp -P 1234 foo.gz 127.0.0.1:~

Message cité 1 fois
Message édité par chaica le 22-10-2008 à 23:18:23
Reply

Marsh Posté le 23-10-2008 à 07:45:36    

chaica a écrit :

Trouvé :)
A est ici l'adresse ip de A
B est ici l'adresse ip de B
C est ici l'adresse ip de C
 
On va dire que tu as un compte nommé "compte" sur les trois machines
 
Sur B tu fais:
ssh -R 1234:C:22 compte@A
 
T'arrives donc sur A et dans le terminal qui s'est ouvert sur A tu fais:
ssh -p 1234 127.0.0.1
 
Et hop t'arrives sur C. Si tu veux faire un scp, ben sur A tu fais:
scp -P 1234 foo.gz 127.0.0.1:~


 
 
super , je te remercie :)
 
je vais tester cela, et je viens confirmer dès que cela marche (ca va prendre un peu de temps, il faut que je recupère la machine de maintenance).
 
 :jap:

Reply

Marsh Posté le 23-10-2008 à 16:38:44    

Bon, c'est parfait, je confirme après essai que ça marche nickel :)  
 
Merci encore  :jap:

Reply

Sujets relatifs:

Leave a Replay

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