====== 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'' 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 [[divers:tomcat|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 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. ===== 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 [[https://openvpn.net/index.php/open-source/documentation/miscellaneous/78-static-key-mini-howto.html|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)((Les seuls port atteignables sur la VM sont 80, 443 et 8080)); * 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''. Attention, 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.