Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
asbd:tpreseau [2016/11/30 08:37] – [V. VPN] fabien.rico | asbd:tpreseau [2018/03/07 11:40] (Version actuelle) – [V. VPN] fabien.rico |
---|
===== I. Mise en place de VNC ===== | ===== I. Mise en place de VNC ===== |
Pour cette partie vous allez utilsier la même VM que pour le cours de Cloud computing | 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'' | * Sur la VM installer un serveur graphique ''xserver-xorg-core xserver-xorg xorg openbox'' |
* Ajouter aussi ''tightvncserver'' qui est un serveur vnc simple | * Ajouter aussi ''tightvncserver'' qui est un serveur vnc simple |
* Lancer le serveur (commande ''vncserver''). | * Lancer le serveur (commande ''vncserver''). |
* Installer ''guacamole'' et ''guacamole-tomcat''. | * Installer ''guacamole'' et ''guacamole-tomcat''. |
* Configurer guacamole pour autoriser le client ''toto'' à se connecter à votre serveur VNC. | * Configurer guacamole pour autoriser le client ''toto'' à se connecter à votre serveur VNC. |
* Tester le serveur tomcat directement [[http://votrevm:8080/guacamole]] | * 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). |
* Configurer le docker ''nginx'' (déjà présent sur la VM) pour rediriger les requètes [[http://votrevm/vnc]] sur ''guacamole''. | * 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 ===== | ===== III. Un peu de routage ===== |
^reseau ^ masque ^ interface ^ passerelle ^ | ^reseau ^ masque ^ interface ^ passerelle ^ |
* Avec l'option ''-D'' de //ssh// créez un tunnel dynamique entre votre machine et le serveur ''linuxetu''. | * 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 l'option ''proxy socks'' de firefox pour naviguer via ce tunnel. |
* Utilisez ''proxychains-ng'' ou ''capsocks4'' pour //proxyfier// n'importe quelle application. Par exemple le client ssh qui vous permet de vous connecter à votre machine virtuelle. | * 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===== | ===== V. VPN===== |
Vous allez utiliser openvpn pour créer un lien entre le réseau des VM et celui de votre ordinateur de travail. | 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]] | 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 copier la sur les 2 machines. | * Créez une clef statique et copiez la sur les 2 machines. |
* Configurer le client et le serveur openvpn : | * Configurez le client et le serveur openvpn : |
* utiliser une interface ''tun''; | * utilisez une interface ''tun''; |
* utiliser le protocole ''tcp'' (option ''proto tcp-server'' ou ''tcp-client''); | * utilisez le protocole ''tcp'' (option ''proto tcp-server'' ou ''tcp-client''); |
* utiliser le port ''8080'' (attention de bien etteindre tomcat qui l'utilise pour le moment); | * 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)); |
* utiliser l'adresse ''10.80.80.1'' pour le serveur et ''10.80.80.2'' pour le client; | * utilisez l'adresse ''10.80.80.1'' pour le serveur et ''10.80.80.2'' pour le client; |
* utiliser la compression | * utilisez la compression |
* Pour le client ne faites pas une connexion directe mais utiliser un tunnel qui passe par le serveur //ssh// linuxetu. | * 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 qui a l'extention ''.conf''. Les messages d'erreurs iront dans les logs. | 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. | 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 vois quelques exemple de NAT utiliser pour faire les partages de port avec les docker. | 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 | La commande |
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. | 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''. | 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. |
| |
| |