[Tunneling SSH] Questions, Tutos ?

KiwiJuice

Membre confirmé
5 Décembre 2010
26
0
Bonjour à tous,

Je voudrais prendre la main de mon mac à distance, avec VNC via un tunnel SSH. Seulement le sujet à l'air vaste et complexe, je voudrais juste quelques precisions.

Pensez vous qu'une authentification par mot de passe est suffisante pour être tranquille quand on a ouvert le port sur son routeur et activer le SSH dans Snow Leopard ?

J'ai vu qu'il etait possible de mettre en place un systeme de securité avec clé publique/privée via quelques soft comme SSH Helper qui sert à generer les clé.
Mais on me dit que ces clés servent juste à ne pas utiliser l'authentification par mot de passe.

Merci d'avance pour vos reponses.



http://www.gideonsoftworks.com/sshhelper.html
 
Je préfère l'utilisation de mot de passe à celle de clefs : les clefs sont pratiques en l'absence d'opérateurs, donc de serveur à serveur (en mode batch, donc).

Pour le reste : du moment qu'un port est ouvert, c'est une faille. À la limite, on peut changer de numéro de port, passer en mode furtif etc. Reste que ça dépend de ton routeur aussi.
 
Ok pour le changement de port. Par contre qu'est-ce que le "mode furtif" ?
Je ne connais pas le modele de mon routeur et je suis au boulot, mais je regarderais ce soir.

Merci pour ta reponse ;)

Donc ce que je compte faire :

- Ouvrir le SSH sur le mac sur le port 3400
- Installer un serveur VNC (Vine server) sur le port 6000 sur le mac.
- Ouvrir le port 3400 sur le routeur.
- Mettre une redirection de port sur le mac : tout ce qui arrive sur le 3400 > 6000.
- Desactiver le log en root sur mon mac .

C'est tout ce qu'il y a à faire ?

Ensuite sous ma Fedora 14 au boulot, j'ouvre le tunnel SSH avec la commande :

ssh -L 6000:localhost:3400 utilisateur@110.111.112.113

??
 
Le mode furtif est, si je me souviens bien, de ne pas répondre aux sollicitations sur des ports non ouverts (on ne renvoit pas d'erreur, on fait le mort).

Par défaut on ne peut de toutes façons pas se logger en tant que root sur un Mac.
Redéfinir le port du service SSH étant un peu délicat (fichiers de configuration) autant le laisser à 22 comme d'habitude. Donc, sur le routeur, redirige le port externe que tu as choisi (3400) vers le port 22 du Mac.
Ensuite, pour la commande ssh, je mettrais plutôt -L 6000:localhost:6000.
 
Ok, je regarderais si j'ai ca sur mon routeur.

Redéfinir le port du service SSH étant un peu délicat (fichiers de configuration)

Visiblement, que ce soit sur mac ou linux, il suffit d'editer le fichier /etc/services en changeant le numero de port d'un service par un port non utilisé. Mais ca me poserais de toute facon problème au boulot pour utiliser le SSH avec les postes que je dois gerer.

Ensuite, pour la commande ssh, je mettrais plutôt -L 6000:localhost:6000.
ssh -N -L InterfaceLocal:PortLocal:HoteVisé:PortHôteVisé user@serveur

donc tu as raison.

ssh -N -L :6000:localhost:6000 [email protected]

Mais je ne comprend pas le

Donc, sur le routeur, redirige le port externe que tu as choisi (3400) vers le port 22 du Mac.

Si je procede comme enoncé plus haut :

1- Je dit à VNC d'utiliser le port 6000 sur mon linux (boulot) et je clic sur "connecter"
2- Le port 6000 est encapsulé dans le port 22.
3- Le port 22 etant (normalement) ouvert au boulot, les données transitent jusqu'à chez moi.
4- Mon routeur recoit les paquets sur le port 22 et comme ce port est ouvert pour l'ip de mon mac, il les redirige.
5- A la sortie du tunnel SSH, les paquets desencapsulés, à destination de mon mac, retrouve leur port de destination : 6000.
6- VNC recoit les paquets : ca marche.

? Non ?

Du coup, même pas besoin de forwarder en local sur le mac le port 22 sur le 6000 ...? C'est la commande d'ouverture du tunnel qui definit le port hôte visé sur le mac ?

ssh -N -L InterfaceLocal:PortLocal:HoteVisé:PortHôteVisé user@serveur
 
Sur le routeur tu peux aisément définir le port à utiliser et l'adresse et le port vers lesquels rediriger les flux.
Tu peux donc soit prendre le port usuel (22) soit un autre port (tu semblais vouloir utiliser 3400).
 
Ah ok, au cas où je veuille absollument utiliser le 3400 au niveau du mac.
Si je veux utiliser ce port, c'est pour eviter qu'il soit "scanné" par des personnes mal intentionnées. Donc en procedant comme ca, c'est le port 3400 que j'ouvre au niveau du routeur, et la redirection 3400 > 21 fait en sorte que le port 21 ne puisse pas être directement scanné ?

Merci pour tes reponses ;)
 
C'est ça (en remplaçant dans ta phrase 21 [FTP] par 22 [ssh]).
 
Je t'embete encore un chouilla.

Je suis en train d'essayer de faire un tunneling entre le serveur qui communique avec l'exterieur et mon poste local. (pour essayer ce soir rapidement l'inverse à savoir prendre la main de mon pc de boulot avec mon mac)

Donc je tape la commande :

ssh -N -L :5900:172.31.33.202:5900 ***@***.***.***.***

C'est à dire que je dis au serveur en DMZ, d'encapsuler ce que j'envois sur le port 5900 dans une trame de port 22, les données vont au serveur, puis sont desencapsulées pour ainsi être envoyé directement à mon poste.

Donc mon serveur VNC est aussi mon client.
Tout se passe bien à l'ouverture du tunnel, le prompt ne revient pas, je reste sur une ligne noire, je suis donc bien sur que la chose tourne.

Puis au moment ou je lance mon client tigervnc et que je me connect à 172.31.33.202, le serveur en DMZ me dit :

channel 1017: open failed: administratively prohibited: open failed

Avant ca j'ai eu "connexion refused" mais c'etait parce que j'avais oublié d'ouvir le port 5900 dans mon pare-feu local. Tout ca pour dire que j'arrive bien jusqu'à mon pc. Mais VNC ne m'affiche rien, j'ai simplement ce message d'erreur. J'ai verifié les config SSH du serveur en DMZ, je ne vois rien qui pourrait etre problématique. Une idée ?
 
C'est quoi, cette adresse : 172.31.33.202 ?
 
L'adresse de ma machine sur le réseau privée, je suis obligé de faire le forwarding ici, parce que je ne peux pas acceder au routeur au travail.

Mais oublions ca ! Je suis de retour chez moi, et après quelques test ca marche !

J'ai une machine sous Wserver 2003, avec laquelle j'ouvre un tunnel avec Putty.
En port source, on peux en fait mettre ce que l'on veux, c'est juste le port que l'on va attaquer avec son VNC, autant en mettre un différent du 5900.

Donc en ligne de commande, pour me connecter depuis windows server 2003 sur mon mac en passant par le Wan ca donne :

ssh -N -L :101:localhost:5900 utilisateur@"Ip wan"
Je transfere bien le port 22 de mon routeur vers l'ip de mon mac.
Puis j'attaque avec VNC > "localhost:101".

Par contre, j'utilise Vine server, et je ne trouve pas comment le lancer en service. En fouillant un peu j'ai vu que snow leopard embarquait un certain Apple Remote Desktop et qu'il utilisait aussi le port 5900. Il est apparemment semblable à vnc sauf qu'il est intégré.
J'ai donc activer la gestion à distance dans les preferences/partage du mac.

Mais en ouvrant le tunnel SSH via ce port, puis en lancant VNC voila le problème qui se pose :

capturedcran20101206182.png


Voila où j'en suis (pour la postérité ;) )

Mais si t'as une idée de ce que peux être cette erreur, je suis preneur. Merci encore pour ton aide.
 
Sans doute un problème de paramétrage de TightVNC, non ?
 
Ben j'ai un peu tout tenté, je vais tourner avec Vine VNC tant pis.

Par contre est-ce que quelqu'un sait comment couper little snitch en ssh ?
 
je ne comprends pas trop le sens de "couper en little snitch en ssh"

tu peux créer un règle dans Little Snitch pour autoriser toutes les connexions avec ssh et/ou Terminal.app (ssh est dans /usr/bin/ chez moi)

sinon une remarque en passant: changer les ports des services usuels (hhtp, ftp, ssh, ...) n'ajoute rien en terme de sécurité (ou très peu); les scanners de ports sont capables de quand même trouver les services qui tournent (à la limite il est plus intéressant de vérfier que les serveurs qui tournent ne renvoie pas une "indentification complète" càd le nom du serveur avec sa version et tout le toutim)

si tu as vraiment besoin de filtrer l'accès à partir d'adresses ip (ou de classes d'ip) tu peux regarder du côté de tcp_wrapper (de mémoire il me semble que c'est livré en standard mais pas certain)

---------- Nouveau message ajouté à 03h35 ---------- Le message précédent a été envoyé à 03h27 ----------

j'allais oublié le plus important :-p

http://www.testplant.com/documentation/Vine Server.pdf

la doc de Vine Server ... à la fin il y a toutes les options pour lancer en ligne de commande

bonne lecture !

PS: mon expérience perso:: je n'ai jamais été satisfait avec vnc; en général il faut un très bonne connexion pour que l'utilisation soit fluide et efficace, ce qui n'est possible que sur du local (enfin pas toujours mais un p'tit peu quand même)
 
je ne comprends pas trop le sens de "couper en little snitch en ssh"
Sans doute que, une fois connecté avec ssh sur la machine distante, il voudrait que LS ne le gêne pas donc le désactiver par une commande texte comme on peut le faire d'un clic de souris (disons : de trois clics de souris :)).
tu peux créer un règle dans Little Snitch pour autoriser toutes les connexions avec ssh et/ou Terminal.app (ssh est dans /usr/bin/ chez moi)
En fait, par défaut LS a une configuration par session, ce qui peut être assez gênant sur une machine utilisée avec des sessions différentes (suivant sa configuration on peut être amené à répondre aux mêmes questions, pour le même service, dans chaque session).
sinon une remarque en passant: changer les ports des services usuels (hhtp, ftp, ssh, ...) n'ajoute rien en terme de sécurité (ou très peu); les scanners de ports sont capables de quand même trouver les services qui tournent (à la limite il est plus intéressant de vérfier que les serveurs qui tournent ne renvoie pas une "indentification complète" càd le nom du serveur avec sa version et tout le toutim)
En effet : pour que ce soit utile, il faut être dans un mode furtif où la machine ne répond rien sur les ports non ouverts et, sur les ports ouverts, ne donne aucune précision.
<...>
PS: mon expérience perso:: je n'ai jamais été satisfait avec vnc; en général il faut un très bonne connexion pour que l'utilisation soit fluide et efficace, ce qui n'est possible que sur du local (enfin pas toujours mais un p'tit peu quand même)
Pareil. Quand on compare VNC et (par exemple) RDC, il n'y a pas photo.
 
Merci pour vos reponses, mais tout est reglé maintenant, j'arrive à me connecter chez moi en VNC via un tunnel SSH.

Pareil. Quand on compare VNC et (par exemple) RDC, il n'y a pas photo.
Oui mais au boulot je suis sur Fedora14, il n'y a pas de client RDC.
A moins que ca utilise le RDP ? mais il me semble avoir lu que c'etait une sorte de protocole VNC modifié et qu'il fallait s'y connecter avec un client VNC, ce que j'ai testé plus haut et ca ne marche pas a cause de cette histoire de nombre de bit utilisé pour le mot de passe (64bit pour le RDC mac alors que les client VNC commun utilise un cryptage 32 bit ou une histoire du type).

Mais si quelqu'un sait comment faire, je prend ;)
a+
 
ca depend de tes besoins

- si c'est uniquement pour des taches en ligne de commande tu peux zapper vnc et n'utiliser que du ssh
- si c'est pour des softs avec interface graphique j'ai souvent trouve que "forwarde" X11 etait plus efficace (tu te loggues sur ta machine fedora avec l'option -X ou -Y a partir du terminal X11 de mac os x) que vnc; enfin tant que c'est pas de la 3d ou des interfaces trop lourdes ca peut passer

PS: desole pour les accents mais je suis au taff ;-)