tuto:ipasserelle:vpn:openvpn_chromeos

Ceci est une ancienne révision du document !


OpenVPN sur ChromeOS

ChromeOS suporte 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 ici
À priori, ChromeOS ne supporte pas OpenVPN en mode bridge (pas depuis l'interface, ni dans les fichiers ONC)
openvpn.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 à remplacer dans le fichier :

  • _GUIDCA_ : Une valeurs 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 valeurs 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 retour 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",

A ce stade, si votre fichier ONC est correctement configuré, il vous faut maintenant … WIP ;)

Il ne reste plus qu'à aller sur chrome://net-internals puis dans le menu Chrome et importez le fichier ONC

  • tuto/ipasserelle/vpn/openvpn_chromeos.1392983114.txt.gz
  • Dernière modification: 21/02/2014 12:45
  • de heuzef