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
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 (attention, le firewall entre le reseau de l'université et les VM peut filtrer ce port).
- Installer et configurer
nginx
(il peut être déjà présent si vous utiliser la VM d'un autre TP) pour rediriger les requètes http://votrevm/guacamole/ surguacamole
.
Si vous avez des problèmes avec tomcat qui démarre trop lentement, allez voir ici
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
ousockscap64
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 VMs 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 copiez la sur les 2 machines.
- Configurez le client et le serveur openvpn :
- utilisez une interface
tun
; - utilisez le protocole
tcp
(optionproto tcp-server
outcp-client
); - utilisez le port
8080
(attention de bien éteindre tomcat qui l'utilise pour le moment)1); - utilisez l'adresse
10.80.80.1
pour le serveur et10.80.80.2
pour le client; - utilisez la compression
- Pour le client ne faites pas une connexion directe mais utilisez un tunnel qui passe par le serveur ssh
linuxetu
.
Pour tester le serveur et le client vous pouvez le lancer ainsi que le client grâce à la commande
openvpn --config nom_fichier_config.conf
Cela vous permettra de voir les message affichés. Mais pour mettre en place le serveur définitivement, il vaut mieux placer le fichier dans le répertoire /etc/openvpn
. Le système lancera automatiquement un serveur pour tout fichier dont l’extension est .conf
. Les messages d'erreurs iront dans les logs.
Normalement, votre PC peut maintenant contacter directement la VM. Pour allez plus loin vous devez mettre en place une route indiquant à votre 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 voir quelques exemples de NAT utilisés pour faire les partages de ports avec les dockers.
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
. <hi #ffAAAA>Attention</hi>, tout changement de route doit tenir compte des paquets qui servent à maintenir le tunnel. Ici, votre tunnel utilise une connexion TCP vers le serveur linuxetu (réseau 134.214.0.0/16) la route ajoutée ne modifie pas son trajet. Cela est le cas grâce au tunnel. Cela ne serait pas le cas dans d'autres situations.