asbd:tpreseau

TP1 quelques exercices sur le réseau

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.

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 et guacamole-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/ sur guacamole.

Si vous avez des problèmes avec tomcat qui démarre trop lentement, allez voir ici

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

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 serveur linuxetu.
  • Utilisez l'option proxy socks de firefox pour naviguer via ce tunnel.
  • Utilisez proxychains-ng ou sockscap64 pour proxyfier n'importe quelle application. Par exemple le client ssh qui vous permet de vous connecter à votre machine virtuelle.

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 (option proto tcp-server ou tcp-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 et 10.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.


1)
Les seuls port atteignables sur la VM sont 80, 443 et 8080
  • asbd/tpreseau.txt
  • Dernière modification : 2018/03/07 11:40
  • de fabien.rico