166798bc85dcd5bf8e00d16afff7ead485b7670c
Guides/Les-tunnels-SSH.md
... | ... | @@ -12,14 +12,15 @@ _Image 1_ |
12 | 12 | |
13 | 13 | Si l'utilisateur de la machine A veut se connecter sur C, il dois se connecter sur B puis se connecter deupuis cette dernière sur C : |
14 | 14 | ```bash |
15 | -user@machine_A$ ssh user@machine_B #Connexion en rouge sur l'image 1 |
|
16 | -user@machine_B$ ssh user@machine_C #Connexion en vert sur l'image 1 |
|
17 | -user@machine_C$ |
|
15 | +user@machine_A:~$ ssh user@machine_B #Connexion en rouge sur l'image 1 |
|
16 | +user@machine_B:~$ ssh user@machine_C #Connexion en vert sur l'image 1 |
|
17 | +user@machine_C:~$ |
|
18 | 18 | ``` |
19 | 19 | _Le port noté 123XX est atribué arbitrairement par la machine établisant la connexion._ |
20 | 20 | |
21 | 21 | ###Le cas du tunnel |
22 | 22 | Le principe d'un tunnel SSH est de faire transiter toutes ces données au travers d'un port autorisé. Le tunnel encapsule ces informations et les fait transiter sans soucis vers le serveur distant. Nous allons donc pouvoir utiliser notre tunnel comme porte de sortie du firewall et y faire circuler tout ce qui relève du protocole TCP. |
23 | +Le principe de la création d'un tunnel SSH est le même qu'une simple connexion (probablement car c'est le même protocole). |
|
23 | 24 | |
24 | 25 | :warning: **Un tunnel peut être une TRÈS GROSSE FAILLE DE SÉCURITÉ, n'oubliez pas de le refermer à la fin de son utilisation.** :warning: |
25 | 26 | |
... | ... | @@ -27,4 +28,25 @@ Le principe d'un tunnel SSH est de faire transiter toutes ces données au traver |
27 | 28 | |
28 | 29 | Vous êtes prévenus. |
29 | 30 | |
31 | +Reprenons notre architecture précédente. L'utilisateur veut se connecter au serveur web sur la machine D, mais cette dernière n'est pas accesible depuis internet (sans déconner). La solution serai de configurer un tunnel (en vert sur l'image ci-dessous) entre la machine B et D: prenons le port *2048* sur la machine B (il y a peut être déjà un serveur web dessus). L'utilisateur va dans son navigateur et entre l'url : `http://machine_B:2048/index.html` et devrait accéder au serveur web de la machine D. |
|
32 | + |
|
33 | +Et le firewall dans tout ça! Il y a de forte chance que le port que nous avons choisit soit bloqué par le firewall (si les admins précédents on bien fait leur travail). La solution est donc de créer un deuxième tunnel (en orange) entre le port *2048* de la machine B et un port sur celle de l'utilisateur (prenons le port *8080*). L'utilisateur va dans son navigateur et entre l'url : `http://localhost:8080/index.html` et la page web de la machine D s'affiche. |
|
34 | + |
|
35 | +*Quand vous choisissez le port sur lequel vous comptez établir votre tunnel, vérifiez bien que ce dernier n'est pas déjà utiliser (pour éviter une quelconque erreur 45 : ICC)* |
|
36 | + |
|
37 | +_Image 2_ |
|
38 | + |
|
39 | +##La pratique |
|
40 | + |
|
41 | +###Établisment d'un tunnel |
|
42 | +Imaginons que l'utilisateur jack veut établir un tunnel entre le port 80 de son serveur web *WEB01P* et le port 2048 son serveur de rebond ssh *SSH01P*. |
|
43 | +```bash |
|
44 | +adm_jack@SSH01P:~$ ssh -Nfq -L2048:SSH01P:80 adm_jack@WEB01P |
|
45 | +``` |
|
46 | +Puis entre le port 2048 de *WEB01P* et le port 8080 de son pc *PC_JACK* |
|
47 | +```bash |
|
48 | +adm_jack@PC_JACK:~$ ssh -Nfq -L8080:localhost:2048 adm_jack@SSH01P |
|
49 | +``` |
|
50 | + |
|
51 | +*L'ordre de création des tunnels n'est pas important.* |
|
30 | 52 |