====== OpenVPN sur ChromeOS ====== ChromeOS supporte OpenVPN de base, mais l'interface pour la configuration est ..... pour le moins sommaire. Peu de chance que vous y trouviez les paramètres que vous devez entrer. Il existe par contre pleins d'autres options supportées, elles n'apparaissent simplement pas dans l'interface. Pour contourner ça, il faut créer un fichier de configuration ONC qui décrit la configuration de votre VPN, puis l'importer sur le système. * ONC est un format JSON permettant de décrire les paramètres réseau (profile WiFi, VPN etc...) * La documentation du format ONC est disponible [[https://docs.google.com/viewer?a=v&pid=sites&srcid=Y2hyb21pdW0ub3JnfGRldnxneDo2MjAxZWQzNDA4NjU0YmVk|ici]] À priori, ChromeOS ne supporte pas OpenVPN en mode bridge (pas depuis l'interface, ni dans les fichiers ONC) ===== Configuration du fichier ONC ===== { "Certificates": [ { "GUID": "{___GUIDCA___}", "Type": "Authority", "X509": "___CACRT___" } ], "NetworkConfigurations": [ { "GUID": "{___GUIDNET___}", "Name": "___NAME___", "Type": "VPN", "VPN": { "Host": "___HOST___", "OpenVPN": { "ClientCertType": "None", "CompLZO": "true", "KeyDirection": "1", "NsCertType": "server", "Port": ___PORT___, "Proto": "udp", "ServerCARef": "{___GUIDCA___}", "ServerPollTimeout": 360, "Username": "___USERNAME___", "Verb": "3", "RenegSec": 86400, "TLSAuthContents": "___TAKEY___", }, "Type": "OpenVPN" } } ], "Type": "UnencryptedConfiguration" } Voici les valeurs a remplacer dans le fichier : * ___GUIDCA___ : Une valeur GUID (indiqué 2 fois dans le fichier ONC) : sed -i -e "s/___GUIDCA___/$(cat /proc/sys/kernel/random/uuid)/g" openvpn.onc * ___CACRT___ : Le fichier ''cacert.crt'' renommé en ''cacert.pem'' * ___GUIDNET___ : Une valeur GUID : sed -i -e "s/___GUIDNET___/$(cat /proc/sys/kernel/random/uuid)/g" openvpn.onc * ___NAME___ : Le nom de la connexion VPN * ___HOST___ : L'hôte de la connexion VPN au format ''sas.domain.tld'' * ___PORT___ : Le port de connexion (par défaut ''1194'' mais utiliser plutôt le port ''1197'') * ___USERNAME___ : Le nom d'utilisateur pour la connexion VPN * ___TAKEY___ : Le fichier ''takey.pem'' Attention ! Le fichier takey.pem doit être injecté d'une manière bien spéciale pour que le fichier ONC soit correctement parsé par ChromOS En effet, le fichier doit être uniquement sur une seule ligne, pour cela il faut utiliser des retours chariot ''\n'' à chaque fin de ligne. Il faut également prendre soin de bien supprimer l'entête du fichier takey.pem ce qui donne à la fin quelque chose de ce format-là : "TLSAuthContents": "-----BEGIN OpenVPN Static key V1-----\nxxxxx\nxxxxx\n......\nxxxxx\n-----END OpenVPN Static key V1-----\n", À ce stade, si votre fichier ONC est correctement configuré, il vous faut maintenant récupérer le certificat utilisateur au format PKCS #12 (user.p12). Une fois fait vous devez mettre à disposition ces 2 fichiers (.onc et .p12) accessibles sur une page web publique pour les récupérer sur le ChromeOS. ===== Configuration du ChromeOS ===== Une fois que votre ChromeOS à accès au web, accéder à vos 2 fichiers configurés via chrome. Vous pouvez les récupérer directement depuis Google Drive en partageant directement avec l'adresse e-mail du compte Google. Ou bien faire un ''CTRL + S'' si votre fichier s'affiche dans le navigateur. Vous devriez pouvoir télécharger les fichiers dans le répertoire "Téléchargement" affichable depuis "Menu > Files". {{ :tuto:ipasserelle:vpn:screenshot_2014_02_21_at_13.55.05.png?nolink |}} Rendez-vous à présent dans le Gestionnaire de certificats : chrome://settings/certificates et cliquer bien sur **Importer et associer à l'appareil ...** pour sélectionner le fichier ''user.p12'' Celui-ci vous demandera le mot de passe de chiffrement, laissez vide si vous n'en n'avez pas précisé un. {{ :tuto:ipasserelle:vpn:screenshot_2014_02_21_at_14.11.52.png?nolink |}} Rendez-vous sur : chrome://net-internals/#chromeos et importez le fichier ONC. Celui-ci devrait vous afficher le message "ONC file successfully parsed", si ce n'est pas le cas, votre fichier ONC n'est pas valide, il vous faut tous recommencer dans la joie et la bonne humeur :D {{ :tuto:ipasserelle:vpn:screenshot_2014_02_21_at_14.20.48.png?nolink |}} Si le fichier ONC est correctement importé, rendez-vous directement dans : chrome://settings puis dans le menu ''Connexion Internet > Réseau privé'', votre connexion VPN est présent ici. Cliquez dessus pour lancer la configuration. Tous les éléments sont logiquement déjà pré-remplis, vérifiez bien que le Certificat utilisateur soit bien sélectionné puis rentrez à présent le nom d'utilisateur et le mot de passe. La connexion VPN est établie. {{ :tuto:ipasserelle:vpn:screenshot_2014_02_21_at_14.27.51.png?nolink |}} ===== Configuration du client RDP ===== La connexion RDP s'établit grâce à une application tierce, ici : [[http://www.2x.com/fr/rdp-client/chrome/|2X Client for RDP]] Elle est simple, fluide et supporte bien le mappage clavier, vous pouvez directement l'installer depuis ChromeOS grâce à ce lien : [[https://chrome.google.com/webstore/detail/2x-client-for-rdpremote-d/jbefefbcoggageojgcmipnfgjlekmpjp]] {{:tuto:ipasserelle:vpn:screenshot_2014_02_21_at_14.39.55.png?nolink|}} L’application est directement ajoutée dans le menu de ChromeOS {{:tuto:ipasserelle:vpn:screenshot_2014_02_21_at_14.40.05.png?nolink|}} Vous pouvez directement vous connecter en indiquant le nom de la machine ; le nom d'utilisateur au format ''DOMAIN.LOCAL\user'' et le mot de passe. {{:tuto:ipasserelle:vpn:screenshot_2014_02_21_at_14.40.23.png?nolink|}} Vous aller ensuite tomber directement sur le prompt Windows qui va vous redemander les mêmes informations {{:tuto:ipasserelle:vpn:screenshot_2014_02_21_at_14.42.14.png?nolink|}}