Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
tutoriel:reverse_ssh [Le 19/04/2012, 17:53] fabux modif intro pour retrait de l'exemple en Entreprise, invisible -> inaccessible, oublié un = pour niveau de titre, ajout commentaire dans image |
tutoriel:reverse_ssh [Le 26/01/2025, 05:57] (Version actuelle) Thomas DC [Connexion sur le poste serveur depuis le poste distant] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>sécurité ssh réseau}} | + | {{tag>sécurité ssh réseau tutoriel}} |
---- | ---- | ||
Ligne 17: | Ligne 17: | ||
{{:tutoriel:ssh:reverse_ssh_dfwil.png|userD@distant est le serveur SSH à joindre mais est inaccessible dû aux paramétrages du routeur/pare-feu...}} | {{:tutoriel:ssh:reverse_ssh_dfwil.png|userD@distant est le serveur SSH à joindre mais est inaccessible dû aux paramétrages du routeur/pare-feu...}} | ||
- | Ici | + | Ici |
* **userD@distant** correspond à l'utilisateur //userD//, sur le poste appelé **//distant//** qui a les ports entrants bloqués et donc inaccessible depuis l'extérieur | * **userD@distant** correspond à l'utilisateur //userD//, sur le poste appelé **//distant//** qui a les ports entrants bloqués et donc inaccessible depuis l'extérieur | ||
* **userL@local** correspond à l'utilisateur //userL//, sur le poste appelé **//local//** qui dispose également d'un serveur ssh, et qui va permettre d'accéder à la machine **//distant//** | * **userL@local** correspond à l'utilisateur //userL//, sur le poste appelé **//local//** qui dispose également d'un serveur ssh, et qui va permettre d'accéder à la machine **//distant//** | ||
Ligne 26: | Ligne 26: | ||
==== Création d'un utilisateur dédié sur le poste local ==== | ==== Création d'un utilisateur dédié sur le poste local ==== | ||
- | Créez un nouvel utilisateur spécialement pour cette connexion afin que l'utilisateur **userD** du poste //**distant**// ne puisse pas avoir un accès complet au poste //**local**//. Ce nouvel utilisateur créé pourra cependant avoir des [[:gestion_compte|droits]] personnalisés.\\ | + | Créez un nouvel utilisateur spécialement pour cette connexion afin que l'utilisateur **userD** du poste //**distant**// ne puisse pas avoir un accès complet au poste //**local**//. Ce nouvel utilisateur créé pourra cependant avoir des [[:users-admin|droits]] personnalisés.\\ |
Saisissez dans un [[:terminal]] sur **//local//** la [[:commande_shell|commande]] suivante : | Saisissez dans un [[:terminal]] sur **//local//** la [[:commande_shell|commande]] suivante : | ||
<code>sudo adduser --no-create-home userL</code> | <code>sudo adduser --no-create-home userL</code> | ||
- | où : | + | où: |
- | * **--no-create-home** est l'option spécifiée pour ne pas créer de dossier **/home/userL** sur le poste //**local**//. | + | * **%%--%%no-create-home** est l'option spécifiée pour ne pas créer de dossier **/home/userL** sur le poste //**local**//. |
- | * **userL** est à remplacer par le nom de votre choix mais suffisament explicite pour savoir sur quelle machine vous êtes. Le mot de passe créé servira pour se connecter lors de l'[[#Connexion sur le poste local depuis le poste distant|étape suivante]]. | + | * **userL** est à remplacer par le nom de votre choix mais suffisamment explicite pour savoir sur quelle machine vous êtes. Le mot de passe créé servira pour se connecter lors de l'[[#Connexion sur le poste local depuis le poste distant|étape suivante]]. |
- | ==== Connexion sur le poste local depuis le poste distant ==== | + | ==== Connexion au poste local depuis le poste distant ==== |
- | Initiez une connexion sur //**local**// en saisissant sur le poste //**distant**//: | + | Initiez une connexion à //**local**// en saisissant sur le poste //**distant**//: |
- | <code>ssh -R 12345:localhost:22 userL@local</code> | + | <code>ssh -NR 12345:localhost:22 userL@local</code> |
où | où | ||
- | * //12345// est à remplacer par un numéro de port aléatoire de votre choix FIXME **pas de norme?** | + | * //12345// est à remplacer par un numéro de port aléatoire (entre 1024 et 65535 qui sont réservés pour des applications utilisateurs) et non utilisé de votre choix |
* **userL** et le mot de passe de connexion sont ceux [[#Création d'un utilisateur dédié sur le poste local|défini précédemment]]. | * **userL** et le mot de passe de connexion sont ceux [[#Création d'un utilisateur dédié sur le poste local|défini précédemment]]. | ||
+ | * **local** est l'adresse IP publique de la machine locale (au besoin avec une règle NAT dans la box locale pour être joignable de l'extérieur) | ||
- | ==== Connexion sur le poste distant depuis le poste local ==== | + | ==== Connexion au poste distant depuis le poste local ==== |
- | La connexion étant désormais activée depuis //**distant**// sur //**local**//, le [[:pare-feu]] va donc laisser rentrer la connexion reverse, à savoir depuis //**local**// sur //**distant**//.\\ | + | La connexion étant désormais activée depuis //**distant**// vers //**local**//, le [[:pare-feu]] va donc laisser rentrer la connexion reverse, à savoir depuis //**local**// vers //**distant**//.\\ |
Pour cela taper dans un terminal sur //**local**//: | Pour cela taper dans un terminal sur //**local**//: | ||
<code>ssh -p 12345 userD@localhost</code> | <code>ssh -p 12345 userD@localhost</code> | ||
- | où | + | où |
* //12345// est le port [[#Connexion sur le poste local depuis le poste distant|choisi auparavant]] | * //12345// est le port [[#Connexion sur le poste local depuis le poste distant|choisi auparavant]] | ||
* **userD** est à remplacer par le nom d'utilisateur permettant de se connecter au serveur ssh sur //**distant**// | * **userD** est à remplacer par le nom d'utilisateur permettant de se connecter au serveur ssh sur //**distant**// | ||
Ligne 57: | Ligne 58: | ||
{{:tutoriel:ssh:reverse_ssh_dfwisl.png|userD@distant et userL@local ne sont pas accessibles depuis l'extérieur}} | {{:tutoriel:ssh:reverse_ssh_dfwisl.png|userD@distant et userL@local ne sont pas accessibles depuis l'extérieur}} | ||
- | Ici | + | Ici |
* **userD@distant** correspond à l'utilisateur //userD//, sur le poste appelé **//distant//** qui a les ports entrants bloqués et donc inaccessible depuis l'extérieur | * **userD@distant** correspond à l'utilisateur //userD//, sur le poste appelé **//distant//** qui a les ports entrants bloqués et donc inaccessible depuis l'extérieur | ||
* **userS@serveur** correspond à l'utilisateur //userS//, sur le poste appelé **//serveur//** qui dispose d'un accès libre à son serveur ssh. | * **userS@serveur** correspond à l'utilisateur //userS//, sur le poste appelé **//serveur//** qui dispose d'un accès libre à son serveur ssh. | ||
Ligne 65: | Ligne 66: | ||
- connecter **//distant//** sur **//serveur//** | - connecter **//distant//** sur **//serveur//** | ||
- connecter **//local//** sur **//serveur//** | - connecter **//local//** sur **//serveur//** | ||
- | - depuis le [[:terminal]] qui a initié la connexion **//local//** sur **//serveur//** atteindre **//distant//** | + | - depuis le [[:terminal]] qui a initié la connexion **//local//** sur **//serveur//** pour atteindre **//distant//** |
==== Création d'un utilisateur dédié sur le poste serveur ==== | ==== Création d'un utilisateur dédié sur le poste serveur ==== | ||
Ligne 71: | Ligne 72: | ||
Taper dans un terminal : | Taper dans un terminal : | ||
<code>sudo adduser --no-create-home userS</code> | <code>sudo adduser --no-create-home userS</code> | ||
- | où | + | où |
- | * l'option **--no-create-home** est spécifiée pour ne pas créer de dossier **/home/userS** sur le poste //**serveur**//. | + | * l'option **%%--%%no-create-home** est spécifiée pour ne pas créer de dossier **/home/userS** sur le poste //**serveur**//. |
* **userS** est à remplacer par le nom de votre choix mais suffisament explicite pour savoir sur quelle machine vous êtes. Le mot de passe créé servira pour se connecter lors de l'[[#Connexion sur le poste serveur depuis le poste distant|étape suivante]]. | * **userS** est à remplacer par le nom de votre choix mais suffisament explicite pour savoir sur quelle machine vous êtes. Le mot de passe créé servira pour se connecter lors de l'[[#Connexion sur le poste serveur depuis le poste distant|étape suivante]]. | ||
==== Connexion sur le poste serveur depuis le poste distant ==== | ==== Connexion sur le poste serveur depuis le poste distant ==== | ||
+ | |||
Initiez une connexion sur **//serveur//** en tapant dans un [[:terminal]] de la machine **//distant//** : | Initiez une connexion sur **//serveur//** en tapant dans un [[:terminal]] de la machine **//distant//** : | ||
- | <code>ssh -R 12345:localhost:22 userS@serveur</code> | + | <code>ssh -NR 12345:localhost:22 userS@serveur</code> |
- | où | + | où |
* //12345// est à remplacer par un numéro de port aléatoire de votre choix, | * //12345// est à remplacer par un numéro de port aléatoire de votre choix, | ||
- | * le port //22// est le port d'écoute ssh sur la machine //**serveur**//, | + | * le port //22// est le port d'écoute ssh sur la machine //**distant**//, |
* **userS** et le mot de passe de connexion sont ceux [[#Création d'un utilisateur dédié sur le poste serveur |défini précédemment]] | * **userS** et le mot de passe de connexion sont ceux [[#Création d'un utilisateur dédié sur le poste serveur |défini précédemment]] | ||
* **serveur** est l'adresse ip ou le nom de domaine du serveur tiers | * **serveur** est l'adresse ip ou le nom de domaine du serveur tiers | ||
- | |||
- | <note tip> L'option ''-N'' peut également être ajoutée pour ne pas faire apparaitre d'invite de terminal sur //**distant**// | ||
==== Connexion sur le poste serveur depuis le poste local ==== | ==== Connexion sur le poste serveur depuis le poste local ==== | ||
Ligne 94: | Ligne 94: | ||
==== Accès à la machine distante depuis la machine locale ==== | ==== Accès à la machine distante depuis la machine locale ==== | ||
- | Vous pouvez désormais atteindre le poste **//distant//** en saisissant dans le terminal du poste **//local//** [[#Connexion sur le poste serveur depuis le poste local|connecté précédemment]] sur **//serveur//** | + | Vous pouvez désormais atteindre le poste **//distant//** en saisissant dans le terminal du poste **//local//** [[#Connexion sur le poste serveur depuis le poste local|connecté précédemment]] sur **//serveur//** |
<code>ssh -p 12345 userD@localhost</code> | <code>ssh -p 12345 userD@localhost</code> | ||
---- | ---- | ||
//Contributeurs:[[:utilisateurs:nesthib]]// | //Contributeurs:[[:utilisateurs:nesthib]]// |