Ceci est une ancienne révision du document !
TP1 quelques exercices sur le réseau
I. Mise en place de VNC
Pour cette partie vous allez utilsier la même VM que pour le cours de Cloud computing
- Sur la VM installer un serveur graphique
fxlrg xserver-xorg-core xserver-xorg xorg openbox
- Ajouter aussi
tightvncserver
qui est un serveur vnc simple - Lancer le serveur (commande
vncserver
).
Lors du lancement, la commande annonce la console utilisée par le serveur vnc. Par exemple :
New 'X' desktop is test:1
Cela signifie que le serveur écoute sur le port 5900+1 = 5901.
- En utilisant un tunnel ssh et un client vnc vous pouvez tester le serveur.
II. Utilisation d'un client HTML5
Le service vnc n'est pas simple d'utilisation à cause des différent pare feux présent entre votre machine et ce dernier.
- Installer
guacamole
etguacamole-tomcat
. - Configurer guacamole pour autoriser le client
toto
à se connecter à votre serveur VNC. - Tester le serveur tomcat directement http://votrevm:8080/guacamole
- Configurer le docker
nginx
(déjà présent sur la VM) pour rediriger les requètes http://votrevm/vnc surguacamole
.
III. Un peu de routage
reseau | masque | interface | passerelle |
---|---|---|---|
0.0.0.0 | 0.0.0.0 | eth0 | 134.214.12.1 |
10.150.0.0 | 255.255.0.0 | tap0 | |
10.2.3.0 | 255.255.255.0 | tap0 | 10.150.255.254 |
134.214.0.0 | 255.255.128.0 | eth0 |
Donnez l'interface et eventuellement la passerelle utiliser pour les paquets suivant :
- 8.8.8.8
- 10.0.0.1
- 10.2.3.1
- 134.214.0.1
- 134.214.120.2
- 134.214.130.3
IV. Tunnel et proxy socks
Vous devez utiliser la fonctionnalité de ssh qui permet de faire un proxy dynamique.
- Avec l'option
-D
de ssh créez un tunnel dynamique entre votre machine et le serveurlinuxetu
. - Utilisez l'option
proxy socks
de firefox pour naviguer via ce tunnel. - Utilisez
proxychains-ng
oucapsocks4
pour proxyfier n'importe quelle application. Par exemple le client ssh qui vous permet de vous connecter à votre machine virtuelle.
V. VPN
Vous allez utiliser openvpn pour créer un lien entre le réseau des VM et celui de votre ordinateur de travail.
La méthode la plus simple pour configurer cela est d'utiliser une clef privée statique). La méthode est décrite ici
- Créez une clef statique et copier la sur les 2 machines.
- Configurer le client et le serveur openvpn :
- utiliser une interface
tun
; - utiliser le protocole
tcp
(optionproto tcp-server
outcp-client
); - utiliser le port
8080
(attention de bien etteindre tomcat qui l'utilise pour le moment); - utiliser l'adresse
10.80.80.1
pour le serveur et10.80.80.2
pour le client; - utiliser la compression
Pour tester le serveur et le client vous pouvez lancer le serveur et le client grâce à la commande openvpn –config nom_fichier_config.conf
. Mais pour mettre en place le serveur définitivement, il vaut mieu placer le fichier dans le répertoire /etc/openvpn
. Le système lancera automatiquement un serveur pour tout fichier qui a l'extention .conf
.
Normalement, votre PC peut maintenant contacter directement la VM. Pour allez plus loin vous devez mettre en place une route indiquant à cotre ordinateur d'utiliser le vpn pour tous les paquets vers le réseau 192.168.246.0/24
. Il faut aussi demander à la VM de faire du NAT.
Sur la VM, le nat est mis en place en utilisant iptables. Grâce à la commande iptables-save, vous pouvez afficher les règles déjà en place et vois quelques exemple de NAT utiliser pour faire les partages de port avec les docker.
La commande
itables -t nat -A POSTROUTING -s 10.80.80.2 -o ens3 -j MASQUERADE
va ajouter une règle NAT pour tous les paquets provenant du client (adresse source 10.80.80.2
) et sortant par l'interface ethernet de la VM (dans l'exemple ens3
).
Pour mettre en place la route vous pouvez utiliser la commande ip route add …
, ou alors directement mettre l'option route 192.168.246.0 255.255.255.0
dans le fichier de configuration du client.
Avec ces 2 commandes votre ordinateur peut directement contacter n'importe quelle VM du réseau 192.168.246.0/24
par exemple la VM 192.168.246.43
.