Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
utilisateurs:claudiux:connectionvpn [Le 05/06/2010, 20:38] claudiux |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>Karmic réseau internet vpn openvpn client.ovpn tutoriel BROUILLON}} | ||
- | ====== Connection VPN ====== | ||
- | Ce tutoriel décrit comment utiliser le //Network Manager// de Gnome pour paramétrer correctement une connexion VPN, de type OpenVPN, en utilisant un service généralement payant (environ 5€/mois), comme [[https://connectionvpn.com/fr|connectionvpn.com]]. | ||
- | |||
- | <note>Je n'ai pas d'actions dans cette boîte, mais j'ai tellement galéré pour paramétrer ce VPN que j'ai pensé que cela méritait un tutoriel.</note> | ||
- | |||
- | ===== Pré-requis ===== | ||
- | ==== Paquets nécessaires ==== | ||
- | Vous devez [[:tutoriel:comment_installer_un_paquet|installer les paquets]] **[[apt://openvpn|openvpn]]** et **[[apt://network-manager-openvpn|network-manager-openvpn]]** disponibles dans les dépôts officiels. | ||
- | |||
- | ==== Inscription à un service ==== | ||
- | Vous devez vous inscrire chez un prestataire de service proposant un VPN de type **OpenVPN**. Vous trouverez une liste de prestataires, gratuits ou payants, sur [[http://free.korben.info/index.php/VPN#Liste_de_VPN|Free.Korben]]. | ||
- | |||
- | Attention, certains prestataires refusent le P2P, ou le rendent impossible par des déconnexions toutes les 20 minutes ! D'autres refusent de fournir une assistance pour les OS de type Linux (j'ai eu une mauvaise expérience avec <del>[[http://www.hidemynet.com/|HideMyNet.com]]</del>). Renseignez-vous avant de faire votre choix. | ||
- | |||
- | |||
- | ===== Le fichier client.ovpn de départ ===== | ||
- | |||
- | Une fois inscrit auprès d'un prestataire de service VPN, vous recevez par e-mail, ou vous téléchargez, un fichier //client.ovpn// personnalisé. | ||
- | |||
- | <note important>Ne communiquez jamais ce fichier à personne ! Ne le modifiez jamais ! Enregistrez-le dans un endroit sûr, et donnez-lui les [[http://doc.ubuntu-fr.org/droits#les_permissions|permissions]] d'accès suivantes : lecture seule pour vous, aucun accès ni pour votre groupe ni pour les autres.</note> | ||
- | |||
- | ==== Exemple de fichier client.ovpn ==== | ||
- | |||
- | Votre fichier //client.ovpn// ressemble à cela : | ||
- | <code> | ||
- | # Automatically generated OpenVPN client config file | ||
- | # Generated on <la_date> by <un_serveur_du_prestataire_vpn> | ||
- | # Note: this config file contains inline private keys | ||
- | # and therefore should be kept confidential! | ||
- | # Note: this configuration is user-locked to the username below | ||
- | # OVPN_ACCESS_SERVER_USERNAME=<votre_identifiant_vpn> | ||
- | # Define the profile name of this particular configuration file | ||
- | # OVPN_ACCESS_SERVER_PROFILE=<votre_identifiant_vpn>@<serveur_vpn> | ||
- | # OVPN_ACCESS_SERVER_WSHOST=<serveur_vpn>:<port> | ||
- | # OVPN_ACCESS_SERVER_WEB_CA_BUNDLE_START | ||
- | # -----BEGIN CERTIFICATE----- | ||
- | # <ici un certificat> | ||
- | # -----END CERTIFICATE----- | ||
- | # OVPN_ACCESS_SERVER_WEB_CA_BUNDLE_STOP | ||
- | # OVPN_ACCESS_SERVER_IS_OPENVPN_WEB_CA=1 | ||
- | client | ||
- | proto udp | ||
- | nobind | ||
- | remote <serveur_vpn> | ||
- | port <port> | ||
- | dev tun | ||
- | dev-type tun | ||
- | ns-cert-type server | ||
- | reneg-sec 86400 | ||
- | auth-user-pass | ||
- | auth-retry interact | ||
- | comp-lzo no | ||
- | verb 3 | ||
- | |||
- | <ca> | ||
- | -----BEGIN CERTIFICATE----- | ||
- | <ici le certificat ca> | ||
- | -----END CERTIFICATE----- | ||
- | </ca> | ||
- | |||
- | <cert> | ||
- | -----BEGIN CERTIFICATE----- | ||
- | <ici le certificat cert> | ||
- | -----END CERTIFICATE----- | ||
- | </cert> | ||
- | |||
- | <key> | ||
- | -----BEGIN RSA PRIVATE KEY----- | ||
- | <ici la clé privée key> | ||
- | -----END RSA PRIVATE KEY----- | ||
- | </key> | ||
- | |||
- | key-direction 1 | ||
- | <tls-auth> | ||
- | # | ||
- | # 2048 bit OpenVPN static key (Server Agent) | ||
- | # | ||
- | -----BEGIN OpenVPN Static key V1----- | ||
- | <ici la clé ta> | ||
- | -----END OpenVPN Static key V1----- | ||
- | </tls-auth> | ||
- | |||
- | # -----BEGIN RSA SIGNATURE----- | ||
- | <ici la signature de ce fichier> | ||
- | # -----END RSA SIGNATURE----- | ||
- | </code> | ||
- | |||
- | ==== Utilisation directe ==== | ||
- | |||
- | Vous pouvez utiliser directement ce fichier pour établir votre connexion, afin de la tester. Pour ce faire, entrez dans un terminal : | ||
- | |||
- | sudo openvpn --config /chemin/vers/client.ovpn | ||
- | |||
- | Il vous sera demandé votre mot de passe local (pour ''sudo'', sauf si vous avez "sudoé" il y a moins de 5 minutes), puis votre identifiant auprès du serveur, et enfin votre mot de passe auprès du serveur (ceux avec lesquels vous vous êtes inscrit auprès du prestataire de service VPN). | ||
- | |||
- | ==== Test de la connexion VPN ==== | ||
- | |||
- | Ouvrez votre navigateur favori sur [[http://www.hostip.fr/|www.hostip.fr]]. Ne hurlez pas de joie, vous allez réveiller les voisins ! | ||
- | |||
- | ==== Clôture de la connexion VPN ==== | ||
- | |||
- | Tapez Ctrl-C dans le terminal, ou fermez ce dernier. Rechargez la page [[http://www.hostip.fr/|www.hostip.fr]], vous voici à nouveau dans le giron de votre fournisseur d'accès. | ||
- | |||
- | |||
- | |||
- | ===== Les fichiers à créer ===== | ||
- | |||
- | Nous devons transformer le fichier ''client.ovpn'' en une série de fichiers lisibles par le //Network Manager//. | ||
- | |||
- | ==== Le fichier client.conf ==== | ||
- | |||
- | Copiez le fichier ''/usr/share/doc/openvpn/examples/sample-config-files/client.conf'' dans le dossier contenant le fichier ''client.ovpn''. Ouvrez ces deux fichiers, ''client.conf'' et ''client.ovpn'', dans //gedit//. | ||
- | |||
- | Il vous faut adapter le contenu de ''client.conf'' en tenant compte des données de ''client.ovpn'', **mais sans jamais y copier un certificat ou une clé**. | ||
- | |||
- | Vous devez obtenir un fichier ''client.conf'' analogue à ceci (vous avez certainement modifié les données marquées par < et >) : | ||
- | |||
- | <code> | ||
- | ################################################################### | ||
- | # Exemple de fichier de configuration d'un client OpenVPN 2.0 # | ||
- | # pour se connecter à un serveur multi-client. # | ||
- | # # | ||
- | # Cette configuration peut être utilisée par plusieurs clients, # | ||
- | # chaque client devant posséder ses propres fichiers de clé (key) # | ||
- | # et de certificat (cert). # | ||
- | # # | ||
- | # Sous Windows, vous pourriez avoir à renommer ce fichier pour # | ||
- | # qu'il ait une extension .ovpn # | ||
- | ################################################################### | ||
- | |||
- | # Préciser que nous sommes un client et que nous allons accepter | ||
- | # certaines directives de configuration de la part du serveur. | ||
- | client | ||
- | |||
- | # Nous connectons-nous à un serveur utilisant le protocole | ||
- | # TCP ou UDP ? | ||
- | ;proto tcp | ||
- | proto udp | ||
- | |||
- | # La plupart des clients n'ont pas besoin de lier (bind) leur | ||
- | # connection à un numéro de port spécifique. | ||
- | nobind | ||
- | |||
- | # Le nom complet (ou l'IP) et le port du serveur. | ||
- | # Vous pouvez indiquer plusieurs serveurs (s'ils existent) pour | ||
- | # une répartition de charge. | ||
- | remote <serveur_vpn> <port> | ||
- | ;remote my-server-2 1194 | ||
- | |||
- | # Choisir un serveur au hasard dans la liste ci-dessus. | ||
- | # Sinon, essayer les serveurs dans l'ordre de la liste. | ||
- | ;remote-random | ||
- | |||
- | # Type d'interface utilisée (tap/tun, idem que sur le serveur). | ||
- | # Remarque : sur la plupart des systèmes, le VPN ne fonctionnera | ||
- | # pas si vous ne désactivez pas partiellement ou complètement | ||
- | # le pare-feu pour cette interface tun/tap. | ||
- | ;dev tap | ||
- | dev tun | ||
- | dev-type tun | ||
- | |||
- | # keepalive 10 60 et ping-timer-rem, servent à tester régulierement | ||
- | # la connexion pour la relancer si elle semble coupée. | ||
- | ;keepalive 10 60 | ||
- | ;ping-timer-rem | ||
- | | ||
- | # Vérifier que le certificat du serveur a bien son champ nsCertType | ||
- | # mis à "server". C'est une protection nécessaire contre des | ||
- | # attaques potentielles, dont il est question sur : | ||
- | # http://openvpn.net/howto.html#mitm | ||
- | # | ||
- | # Pour que cette protection soit effective, le serveur doit avoir | ||
- | # généré son certificat avec un champ nsCertType mis à "server". | ||
- | # (Le script build-key-server du dossier easy-rsa permet de le faire.) | ||
- | ns-cert-type server | ||
- | |||
- | # Temps entre chaque régénération de clé (en sec. ; 86400 sec = 24 h) | ||
- | reneg-sec 86400 | ||
- | |||
- | # L'utilisateur doit s'authentifier par identifiant/mot de passe. | ||
- | # Si on ajoute un nom de fichier (auth.conf) contenant 2 lignes, | ||
- | # la première l'identifiant, la seconde le mot de passe, l'utilisateur | ||
- | # n'aura plus à les indiquer à chaque démarrage. | ||
- | # Attention le fichier auth.conf doit avoir les droits 400 (lecture | ||
- | # pour le propriétaire, aucun droit pour tous les autres). | ||
- | ;auth-user-pass auth.conf | ||
- | auth-user-pass | ||
- | |||
- | # En cas d'échec de l'authentification : | ||
- | # - nouvel essai interactif (interact) : l'utilisateur doit entrer | ||
- | # lui-même son identifiant et son mot de passe ; | ||
- | # - nouvel essai non-interactif (nointeract) : avec les données du | ||
- | # fichier auth.conf ; | ||
- | # - pas de nouvel essai (none). | ||
- | ;auth-retry none | ||
- | ;auth-retry nointeract | ||
- | auth-retry interact | ||
- | |||
- | # Active la compression des données sur le lien VPN. | ||
- | # Ne pas activer sauf si ça l'est dans la configuration du serveur. | ||
- | ;comp-lzo | ||
- | comp-lzo no | ||
- | |||
- | # C'est pour Windows, on s'en TAPe ! ;-) | ||
- | # Windows needs the TAP-Win32 adapter name | ||
- | # from the Network Connections panel | ||
- | # if you have more than one. On XP SP2, | ||
- | # you may need to disable the firewall | ||
- | # for the TAP adapter. | ||
- | ;dev-node MyTap | ||
- | |||
- | # Essayer indéfiniment de résoudre le nom d'hôte du serveur OpenVPN. | ||
- | # Très utile sur les ordinateurs qui ne sont pas connectés en permanence | ||
- | # à internet, comme les portables. | ||
- | resolv-retry infinite | ||
- | |||
- | # Abaisser le niveau de privilège du démon après l'initialisation de | ||
- | # la connexion (pas pour Windows). | ||
- | ;user nobody | ||
- | ;group nogroup | ||
- | |||
- | # En cas de redémarrage de la connexion, on tente de préserver les états | ||
- | # de la clé (ne pas la relire) et de l'interface tun (ne pas la désactiver | ||
- | # pour la réactiver ensuite). | ||
- | persist-key | ||
- | persist-tun | ||
- | |||
- | # Si votre connexion passe par un proxy HTTP, pour joindre le serveur OpenVPN, | ||
- | # indiquer ici son nom (ou son IP) et son numéro de port. | ||
- | # Cf. la man-page si votre proxy requiert une authentification. | ||
- | ;http-proxy-retry # ré-essayer en cas d'erreur de connexion. | ||
- | ;http-proxy [proxy server] [proxy port #] | ||
- | |||
- | # Les connexions WiFi (si vous en utilisez une) produisent souvent de nombreux | ||
- | # doublons de paquets. Activer cette option pour ne pas signaler ces doublons. | ||
- | ;mute-replay-warnings | ||
- | |||
- | # Paramètres SSL/TLS. | ||
- | # Cf. la configuration du serveur OpenVPN. | ||
- | # Il est préférable d'utiliser une paire de fichiers .crt/.key particulière à | ||
- | # chaque client. Un seul et même fichier ca peut être distribué à tous les les | ||
- | # clients. | ||
- | ca ca.crt | ||
- | cert client.crt | ||
- | key client.key | ||
- | |||
- | # Si une clé tls-auth est requise par le serveur, chaque client doit posséder | ||
- | # cette clé. Le numéro qui suit le nom du fichier (ta.key) est en général 0 | ||
- | # sur le serveur et 1 sur le client. | ||
- | tls-auth ta.key 1 | ||
- | |||
- | # Verbosité du fichier de log. | ||
- | # Niveau 3 pour le debugging. | ||
- | # Niveau 1 suffisant lorsque tout fonctionne. | ||
- | verb 3 | ||
- | |||
- | # Au plus 20 messages identiques à la suite dans le fichier de log. | ||
- | ;mute 20 | ||
- | </code> | ||
- | |||
- | ==== Le fichier ca.crt ==== | ||
- | |||
- | ==== Le fichier client.crt ==== | ||
- | |||
- | ==== Le fichier client.key ==== | ||
- | |||
- | ==== Le fichier ta.key ==== | ||
- | |||