# [Tutoriel] Configurer un serveur VPN sous Mac OS X



## 570FF (3 Février 2010)

Hello !

Pour mon premier message sur ce forum, je vous propose, en guise de présentation, un petit tutoriel, qui s'intitule donc :

Configurer un serveur VPN sous Mac OS X

Et, pour commencer, que je vous accroche un peu :

1 Serveur « VPN », pourquoi ?

1.1 Serveur « VPN », _kézako_ ?

« VPN » est l'acronyme de « Virtual Private Network ». Pour faire simple, c'est un sur-protocole internet qui va creuser un tunnel à travers le web, depuis un poste client jusqu'à votre serveur ; ceci permet aux clients de se connecter « virtuellement » en réseau local au serveur.

Exemple typique, pour clarifier : vous êtes en déplacement, aux antipodes de votre domicile, et votre MacBook connecté au web via AirPort ; vous avez besoin ou envie d'accéder à un fichier qui se trouve chez vous, sur votre iMac,  à des milliers de kilomètres ; aucun problème ! en quelques clics, vous êtes connecté à votre serveur à travers un tunnel protégé par un protocole de Diffie-Hellman à 2048 bits et un certificat de sécurité, et vous récupérez tout ce qu'il vous faut, dans le Finder, comme si de rien était.

1.2 Serveur « VPN », c'est bien ?

Oui, c'est bien ! Pourquoi ça ?

Vous pouvez accéder à votre Mac serveur dès que vous êtes connecté à internet avec votre Mac client.

Vous pouvez partager vos données, en donnant à vos amis des accès restreints personnalisés.

Du point de vue serveur, une fois l'installation effectuée, il n'y a plus rien à faire.

Du point de vue client, la connexion se fait en 2 clics, et le serveur apparaît immédiatement dans le Finder.

Bien mieux que MobileMe, qui ne propose qu'un faible espace payant, et certes plus compliquée qu'avec Mac OS X Server, la solution que je vous propose a le mérite d'être gratuite de A à Z et de partager tous les disques durs (internes et externes) de votre serveur !

Ça vous semble cool ? Alors on attaque.

2 Installation du serveur

Pour commencer, quelques précisions utiles :

Pour mener à bien cette installation, vous devez posséder des accès d'administration sur le Mac serveur. Il doit tourner sous Mac OS X 10.4 (Tiger) ou supérieur (personnellement, je suis sous Snow Leopard). Il doit être connecté à un routeur internet fournissant une IP externe fixe.

Ce tutoriel est un peu long, et il va toucher un peu profond dans votre ordinateur, je décline donc toute responsabilité si ça foire chez vous, et comme on dit toujours : sauvegardez vos données, ça fait pas de mal.

2.1 Préparation de l'installation

Pour commencer, vous devez installer un protocole VPN sur votre futur serveur. Nous allons utiliser OpenVPN, un projet open source et gratuit multi-platefomes (à propos (en anglais)). Téléchargez-le sur le site du projet (choisissez la dernière version, sous la forme ".tar.gz"). Décompressez tout ça, vous obtenez un dossier nommé "openvpn-2.1" ou quelque chose du genre.

C'est le moment d'ouvrir un terminal (/Applications/Utilities/Terminal.app). Entrez les commandes suivantes :


```
cd /Users/jeandupont/Downloads/openvpn-2.1/
./configure && make && sudo make-install
```

N'oubliez pas, dans la première commande, de mettre le vrai chemin d'accès du dossier téléchargé, celui-ci n'est qu'un exemple. La seconde commande vous demande, après un certain nombre de lignes de code, un mot de passe : il faut le mot de passe administrateur (ne vous inquiétez pas si rien ne s'affiche quand vous le tapez, c'est normal, c'est pour la sécurité, car le meilleur piratage se fait en regardant votre écran par-dessus votre épaule).

À ce stade (avant de taper le mot de passe) peut surgir un problème : les lignes de code se terminent en vous indiquant qu'il manque les bibliothèques LZO. Ces bibliothèques permettent la compression des fichiers durant le transfert et améliorent donc le débit, mais restent facultatifs. Vous pouvez donc tenter d'installer LZO (via fink, par exemple, mais ça ne marche pas toujours), ou faire sans en remplaçant la seconde commande par


```
./configure --disable-lzo && make && sudo make-install
```

Une fois l'installation terminée, vous avez le protocole OpenVPN, félicitations ! Pour le vérifier, go terminal et entrez la commande


```
man openvpn
```

et s'il vous affiche la page de manuel demandée, c'est bon, pressez la touche Q, sinon c'est raté. Gardez votre terminal ouvert, il va resservir.

2.2 Installation du serveur

Pour commencer, affichez les fichiers et dossiers cachés (pleins de façons de faire ça, par exemple via les paramètres d'OnyX). Ensuite, rendez-vous dans /etc/ et créez-y un nouveau dossier nommé "openvpn" (sans guillemet) s'il n'existe déjà. Copiez-y le dossier nommé "easy-rsa" qui se trouve dans le dossier que vous avez téléchargé auparavant. Pour tout ceci, /etc/ étant un dossier système, vous aurez besoin d'un mot de passe administrateur.

Bon, maintenant, dans ce dossier /etc/openvpn/easy-rsa/, il y a normalement plusieurs dossiers, genre "1.0", "2.0", "Windows", etc. Choisissez le nombre le plus élevé (par exemple "2.0") et entrez dans le dossier. Vous allez alors pouvoir configurer votre générateur de certificats.

Dans le dossier sus-mentionné se trouve un fichier nommé "vars" ; ouvrez-le avec TextEdit (ou avec "nano" dans le terminal, si vous êtes un(e) pro), et initialisez les variables situées à la fin du fichier (exemple de valeurs) :


```
export KEY_COUNTRY=FR
export KEY_PROVINCE=France
export KEY_CITY=Paris
export KEY_ORG="MonServeurVPN"
export KEY_EMAIL="lareinedangleterre@buckingham.pal"
```

Sauvegardez le fichier (n'ajoutez pas l'extension ".txt", et encodez en UTF-8) et fermez-le. C'est là que ça devient compliqué : il faut sourcer ce fichier, puis lancer les builders, or cette seconde partie nécessite d'être super-user ; le problème, c'est que la commande "sudo . ./vars" ne fonctionne pas dans bash (shell par défaut sous OS X) et que le même utilisateur doit sourcer et construire. Pour cela, il nous faut activer l'utilisateur "root" (l'utilisateur qui a tous les droits sur votre ordinateur).

Pour ce faire, dans le terminal, tapez


```
sudo passwd root
```

Il vous demande alors un mot de passe administrateur, puis 2 fois le nouveau mot de passe de "root". Maintenant que c'est fait, il faut se connecter en root, tapez donc


```
login root
```

et renseignez le mot de passe que vous venez de définir. Entrez alors les commandes suivantes :


```
cd /etc/openvpn/easy-rsa/2.0/
. ./vars
./clean-all && ./build-ca
```

Ceci devrait vous poser plusieurs questions dans le terminal (les réponses entre crochets sont sélectionnez lorsque vous appuyez simplement sur Entrée, et vous les avez prédéfinies juste avant, donc ne vous fatiguez pas) ; tout est presque déjà rempli, reste le champ "Common Name" pour lequel vous pouvez mettre votre nom ou un pseudonyme.

Cette opération a créé l'autorité de certification de votre futur serveur (fichiers ca.crt et ca.key dans le dossier keys/). Maintenant, il vous faut aussi un certificat et une clef. Pour cela, entrez à la suite dans le terminal l'instruction


```
./build-key-server server
```

Laissez tous les champs par défaut, excepté "Common Name". Renseigner un mot de passe est inutile. Cette opération crée les fichiers "server.crt" et "server.key" dans keys/.

Vous suivez toujours ? Alors maintenant, il nous faut un protocole de Diffie-Hellman (protocole de cryptographie). Pour l'obtenir, entrez ensuite :


```
./build-dh
```

Choisissez le cryptage à 2048 bits, ceci crée le fichier "dh2048.pem" dans keys/. (Ça peut prendre du temps.)

Enfin, il va vous falloir une adresse DNS : vous devez créer une ardresse internet (du type "forums.macg.co", mais qui pointera sur votre propre serveur). C'est pour ce point que vous avez besoin d'une IP fixe, sinon il vous faudra un client de mise à jour d'IP, ce qui complique la chose. Je vous suggère d'utiliser DynDNS qui vous fournit gratuitement jusqu'à 5 hosts. Je vous laisse découvrir ça par vous-mêmes, je détaillerai si besoin. Vous devez revenir avec un host (ex. : lareinedangletterre.homeunix.org) associé à votre adresse IP.

C'est fait ? Alors let's move on.

2.2 Configuration du serveur

VPN est un protocole assez puissant, et, par conséquent et inévitablement, met en danger votre ordinateur. Pour cela, nous allons restreindre ses pouvoirs, en utilisant, pour lancer le serveur, un utilisateur aux droits limités. Pour ce faire, go Préférences Systèmes -> Comptes.

Commencez par créer un groupe d'utilisateurs nommé "vpn". Ensuite, créez un nouvel utilisateur, nommé "vpn", en mode Partage uniquement ; il doit être l'unique membre du groupe d'utilisateurs "vpn". Dans la liste à gauche de la fenêtre, faites un clic droit sur ce nouvel utilisateur "vpn", et choisissez Options avancées. Là, remplacez le contenu du champ "Shell d'accès" par "/usr/bin/false" et de "Répertoire de départ" par "/dev/null" (sans guillement). Comme c'est si bien marqué, une fois que c'est fait, redémarrez votre ordi (et même une seconde fois, pour être sûr(e)).

Il faut maintenant créer le fichier de configuration. Avec TextEdit (ou "nano" dans le terminal pour les pros ; si vous utilisez TextEdit, faites &#8984;&#8679;T pour passer en mode texte, et pensez à enregistrer en UTF-8 et sans ".txt"), créez dans /etc/openvpn/ un fichier nommé "server.conf". Écrivez-y les coses suivantes :


```
port 1194
proto udp
dev tun

ca ca.crt
cert server.crt
key server.key  
dh dh2048.pem

server 10.8.0.0 255.255.255.0

keepalive 10 120

comp-lzo

user vpn
group vpn

persist-key
persist-tun

status openvpn-status.log
log popenvpn.log

verb 2
```

Sauvegardez le fichier. Copiez les fichiers "ca.crt", "server.crt", "server.key", et "dh2048.pem", situés dans le dossier keys/ de tout-à-l'heure dans /etc/openvpn/, à côté de votre "server.conf". Si vous avez utilisé l'option "--disable-lzo" durant l'installation, supprimez la ligne "comp-lzo".

Bravo ! Vous avez installé un serveur VPN sur votre Mac !

Petit ajout : c'est encore mieux si votre serveur se lance au démarrage de l'ordinateur, n'est-ce pas ? Pour ce faire, allez dans /Library/LaunchDaemons/ et créez un fichier org.openvpn.plist avec TextEdit (ou nano ; encore une fois, avec TextEdit, passez en mode texte, et enregistrez en UTF-8 sans ".txt"). Écrivez-y


```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>org.openvpn</string>
        <key>OnDemand</key>
        <false/>
        <key>Program</key>
        <string>/usr/local/sbin/openvpn</string>
        <key>ProgramArguments</key>
        <array>
                <string>openvpn</string>
                <string>--config</string>
                <string>server.conf</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>TimeOut</key>
        <integer>90</integer>
        <key>WorkingDirectory</key>
        <string>/etc/openvpn</string>
</dict>
</plist>
```

Sauvegardez-le.

2.3 Tests

Pour vérifier que tout marche bien, commencez par redémarrer (deux fois, pour être sûr(e)). Avec le launchdaemon créé, au redémarrage, le serveur doit déjà être en route.

Pour vérifier, commencez par taper


```
ifconfig
```

dans un terminal. Vous devriez voir une ligne commençant par "tun0".

Ensuite, entrez


```
ps aux | grep vpn
```

qui devrait afficher une ligne du type


```
vpn        600   0,0  0,0  2435400   1452   ??  Ss    7:11     2:15.87 openvpn --config server.conf
```

Enfin, vous pouvez tenter de contacter votre réseau VPN en tapant


```
ping 10.8.0.1
```

qui ne devrait pas renvoyer de Request timeout (pour stopper le ping, faites ^C (contrôle + C)).

Si tout ça marche, c'est bon, votre serveur est opérationnel ! Félicitations !

2 Installation du client

Cette partie est déjà sur-traitée à travers le web, donc je fais une pause avant de la rédiger.


************************


J'espère que c'est assez clair pour tout le monde. En cas de problème, MP ou e-mail.

Je rajouterai la partie client et des images sous peu.

Merci de m'avoir lu, et bon VPN !


----------



## 570FF (4 Février 2010)

Voici la nouvelle version de ce tuto : précisions et sections supplémentaires. Avis au modérateurs : n'hésitez pas à remplacer le post précédent par celui-ci.

Configurer un serveur VPN sous Mac OS X

Et, pour commencer, que je vous accroche un peu :

1 Serveur « VPN », pourquoi ?

1.1 Serveur « VPN », _kézako_ ?

« VPN » est l'acronyme de « Virtual Private Network ». Pour faire simple, c'est un sur-protocole internet qui va creuser un tunnel à travers le web, depuis un poste client jusqu'à votre serveur ; ceci permet aux clients de se connecter « virtuellement » en réseau local au serveur.

Exemple typique, pour clarifier : vous êtes en déplacement, aux antipodes de votre domicile, et votre MacBook est connecté au web via AirPort ; vous avez besoin ou envie d'accéder à un fichier qui se trouve chez vous, sur votre iMac,  à des milliers de kilomètres ; aucun problème ! en quelques clics, vous êtes connecté à votre serveur à travers un tunnel protégé par un protocole de Diffie-Hellman à 2048 bits et un certificat de sécurité, et vous récupérez tout ce qu'il vous faut, dans le Finder, comme si de rien était.

1.2 Serveur « VPN », c'est bien ?

Oui, c'est bien ! Pourquoi ça ?

Vous pouvez accéder à votre Mac serveur dès que vous êtes connecté à internet avec votre Mac client.

Vous pouvez partager vos données, en donnant à vos amis des accès restreints personnalisés.

Du point de vue serveur, une fois l'installation effectuée, il n'y a plus rien à faire.

Du point de vue client, la connexion se fait en 2 clics, et le serveur apparaît immédiatement dans le Finder.

Bien mieux que MobileMe, qui ne propose qu'un faible espace payant, et certes plus compliquée qu'avec Mac OS X Server, la solution que je vous propose a le mérite d'être gratuite de A à Z et de partager tous les disques durs (internes et externes) de votre serveur !

Ça vous semble cool ? Alors on attaque.

2 Installation du serveur

Pour commencer, quelques précisions utiles :

Pour mener à bien cette installation, vous devez posséder des accès d'administration sur le Mac serveur. Il doit tourner sous Mac OS X 10.4 (Tiger) ou supérieur (personnellement, je suis sous Snow Leopard). Il doit être connecté à un routeur internet fournissant une IP externe fixe.

Ce tutoriel est un peu long, et il va toucher un peu profond dans votre ordinateur, je décline donc toute responsabilité si ça foire chez vous, et comme on dit toujours : sauvegardez vos données, ça fait pas de mal.

2.1 Préparation de l'installation

Pour commencer, vous devez installer un protocole VPN sur votre futur serveur. Nous allons utiliser OpenVPN, un projet open source et gratuit multi-platefomes (à propos (en anglais)). Téléchargez-le sur le site du projet (choisissez la dernière version, sous la forme ".tar.gz"). Décompressez tout ça, vous obtenez un dossier nommé "openvpn-2.1" ou quelque chose du genre.

C'est le moment d'ouvrir un terminal (/Applications/Utilities/Terminal.app). Entrez les commandes suivantes :


```
cd /Users/jeandupont/Downloads/openvpn-2.1/
./configure && make && sudo make-install
```

N'oubliez pas, dans la première commande, de mettre le vrai chemin d'accès du dossier téléchargé, celui-ci n'est qu'un exemple. La seconde commande vous demande, après un certain nombre de lignes de code, un mot de passe : il faut le mot de passe administrateur (ne vous inquiétez pas si rien ne s'affiche quand vous le tapez, c'est normal, c'est pour la sécurité, car le meilleur piratage se fait en regardant votre écran par-dessus votre épaule).

À ce stade (avant de taper le mot de passe) peut surgir un problème : les lignes de code se terminent en vous indiquant qu'il manque les bibliothèques LZO. Ces bibliothèques permettent la compression des fichiers durant le transfert et améliorent donc le débit, mais restent facultatifs. Vous pouvez donc tenter d'installer LZO (via fink, par exemple, mais ça ne marche pas toujours), ou faire sans en remplaçant la seconde commande par


```
./configure --disable-lzo && make && sudo make-install
```

Une fois l'installation terminée, vous avez le protocole OpenVPN, félicitations ! Pour le vérifier, go terminal et entrez la commande


```
man openvpn
```

et s'il vous affiche la page de manuel demandée, c'est bon, pressez la touche Q, sinon c'est raté. Gardez votre terminal ouvert, il va resservir.

2.2 Préparation du serveur

Pour commencer, affichez les fichiers et dossiers cachés (pleins de façons de faire ça, par exemple via les paramètres d'OnyX). Ensuite, rendez-vous dans /etc/ et créez-y un nouveau dossier nommé "openvpn" (sans guillemet) s'il n'existe déjà. Copiez-y le dossier nommé "easy-rsa" qui se trouve dans le dossier que vous avez téléchargé auparavant. Pour tout ceci, /etc/ étant un dossier système, vous aurez besoin d'un mot de passe administrateur.

Bon, maintenant, dans ce dossier /etc/openvpn/easy-rsa/, il y a normalement plusieurs dossiers, genre "1.0", "2.0", "Windows", etc. Choisissez le nombre le plus élevé (par exemple "2.0") et entrez dans le dossier. Vous allez alors pouvoir configurer votre générateur de certificats.

Dans le dossier sus-mentionné se trouve un fichier nommé "vars" ; ouvrez-le avec TextEdit (ou avec "nano" dans le terminal, si vous êtes un(e) pro ; si vous utilisez TextEdit, pensez à ne pas ajouter de ".txt" et à encoder en UTF-8), et initialisez les variables situées à la fin du fichier (exemple de valeurs) :


```
export KEY_COUNTRY=FR
export KEY_PROVINCE=France
export KEY_CITY=Paris
export KEY_ORG="MonServeurVPN"
export KEY_EMAIL="lareinedangleterre@buckingham.pal"
```

Sauvegardez le fichier et fermez-le. C'est là que ça devient compliqué : il faut sourcer ce fichier, puis lancer les builders, or cette seconde partie nécessite d'être super-user ; le problème, c'est que la commande "sudo . ./vars" ne fonctionne pas dans bash (shell par défaut sous OS X) et que le même utilisateur doit sourcer et construire. Pour cela, il nous faut activer l'utilisateur "root" (l'utilisateur qui a tous les droits sur votre ordinateur).

Pour ce faire, dans le terminal, tapez


```
sudo passwd root
```

Il vous demande alors un mot de passe administrateur, puis 2 fois le nouveau mot de passe de "root". Maintenant que c'est fait, il faut se connecter en root, tapez donc


```
login root
```

et renseignez le mot de passe que vous venez de définir. Entrez alors les commandes suivantes :


```
cd /etc/openvpn/easy-rsa/2.0/
. ./vars
./clean-all && ./build-ca
```

(Le chemin d'accès n'est qu'un exemple, n'oubliez pas de mettre le votre s'il diffère !) Ceci devrait vous poser plusieurs questions dans le terminal (les réponses entre crochets sont sélectionnez lorsque vous appuyez simplement sur Entrée, et vous les avez prédéfinies juste avant, donc ne vous fatiguez pas) ; tout est presque déjà rempli, reste le champ "Common Name" pour lequel vous pouvez mettre votre nom ou un pseudonyme.

Cette opération a créé l'autorité de certification de votre futur serveur (fichiers ca.crt et ca.key dans le sous-dossier du répertoire où vous êtes (ici : /etc/openvpn/easy-rsa/2.0/) nommé "keys"). Maintenant, il vous faut aussi un certificat et une clef. Pour cela, entrez à la suite dans le terminal l'instruction


```
./build-key-server server
```

Laissez tous les champs par défaut, excepté "Common Name". Renseigner un mot de passe est inutile. Cette opération crée les fichiers "server.crt" et "server.key" dans keys/.

Vous suivez toujours ? Alors maintenant, il nous faut un protocole de Diffie-Hellman (protocole de cryptographie). Pour l'obtenir, entrez ensuite :


```
./build-dh
```

Choisissez le cryptage à 2048 bits, ceci crée le fichier "dh2048.pem" dans keys/. (Ça peut prendre du temps.)

Pour vous déconnecter du compte root, entrez simplement


```
exit
```

Enfin, il va vous falloir une adresse DNS : vous devez créer une ardresse internet (du type "forums.macg.co", mais qui pointera sur votre propre serveur). Vous pouvez par exemple utiliser DynDNS, qui vous fournit gratuitement jusqu'à 5 hosts. Je vous laisse découvrir ça par vous-même, je détaillerai si besoin. Vous devez revenir avec un host (ex. : "lareinedangletterre.homeunix.org") associé à votre adresse IP. C'est pour ce point que vous avez besoin d'une IP fixe, sinon il vous faudra un client de mise à jour d'IP, ce qui complique la chose. Pour connaître votre IP externe (à laquelle sera associé le nom de domaine susmentionné), le plus simple que j'aie en tête, c'est iStat Pro, dans l'onglet Réseau. Enfin, la redirection DNS peut demander une configuration supplémentaire de votre routeur. J'expose plus loin un moyen usuel d'accéder à la configuration de son routeur, pour ceux qui ignorent comment faire chez eux.

C'est fait ? Alors let's move on.

2.3 Configuration du serveur

VPN est un protocole assez puissant, et, par conséquent et inévitablement, met en danger votre ordinateur. Pour cela, nous allons restreindre ses pouvoirs, en utilisant, pour lancer le serveur, un utilisateur aux droits limités. Pour ce faire, go Préférences Systèmes -> Comptes.

Commencez par créer un groupe d'utilisateurs nommé "vpn". Ensuite, créez un nouvel utilisateur, nommé "vpn", en mode Partage uniquement ; il doit être l'unique membre du groupe d'utilisateurs "vpn". Dans la liste à gauche de la fenêtre, faites un clic droit sur ce nouvel utilisateur "vpn", et choisissez Options avancées. Là, remplacez le contenu du champ "Shell d'accès" par "/usr/bin/false" et de "Répertoire de départ" par "/dev/null" (sans guillement). Comme c'est si bien marqué, une fois que c'est fait, redémarrez votre ordi (et même une seconde fois, pour être sûr(e)).

Il faut maintenant créer le fichier de configuration. Avec TextEdit (ou "nano" dans le terminal pour les pros ; si vous utilisez TextEdit, faites &#8984;&#8679;T pour passer en mode texte, et sauvegardez sans le ".txt" et en UTF-8), sauvegardez dans /etc/openvpn/ un fichier nommé "server.conf". Écrivez-y les lignes suivantes :


```
port 1194
proto udp
dev tun

ca ca.crt
cert server.crt
key server.key  
dh dh2048.pem

server 10.8.0.0 255.255.255.0

keepalive 10 120

user vpn
group vpn

persist-key
persist-tun

status openvpn-status.log
log popenvpn.log

verb 2
```

Ensuite, j'imagine qu'il vous plairait de configurer le serveur pour qu'il se lance au démarrage de Mac OS. Pour cela, allez dans /Library/LaunchDaemons/ et créez un fichier nommé "org.openvpn.plist" avec TextEdit (ou nano pour les pros ; avec TextEdit, comme d'hab, &#8984;&#8679;T, sans ".txt", en UTF-8). Inscrivez-y le code suivant :


```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>org.openvpn</string>
        <key>OnDemand</key>
        <false/>
        <key>Program</key>
        <string>/usr/local/sbin/openvpn</string>
        <key>ProgramArguments</key>
        <array>
                <string>openvpn</string>
                <string>--config</string>
                <string>server.conf</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>TimeOut</key>
        <integer>90</integer>
        <key>WorkingDirectory</key>
        <string>/etc/openvpn</string>
</dict>
</plist>
```

Parfait, maintenant, redémarrez votre Mac (2 fois pour être sûr). Ouvrez un terminal et entrez


```
ps aux | grep openvpn
```

Si vous voyez apparaître une ligne du genre


```
vpn  600  0,7  0,0  2435400  1456  ??  Ss  Mar07  2:26.02  openvpn --config server.conf
```

alors c'est gagné, votre serveur est en route ! Bien joué !

Pour finir de configurer, vous devez autoriser l'accès via le firewall de Mac OS. Pour cela, ouvrez l'onglet Partage des Préférences Système, activez le Partage de fichiers, et, dans Options, autorisez l'accès en AFP.

Il reste une dernière étape, sur laquelle j'aurai un peu plus de mal à vous aider :

2.4 Configuration du routeur serveur

Le protocole OpenVPN que vous allez utiliser emprunte le port réseau 1194. Afin que cela fonctionne, vous devez rediriger le port de votre routeur sur celui de votre serveur.

Si vous ne savez pas comment faire, 2 options :

Vous avez un réseau local simple : un routeur (type box ADSL) branché, d'un côté à internet (prise téléphonique, câble numérique, fibre optique, etc.), de l'autre à votre serveur (ethernet, wi-fi, etc.). Dans ce cas, vous devez commencez par apprendre l'IP locale de votre serveur : ouvrez l'onglet Réseau des Préférences Système et, dans le menu de gauche, cherchez l'interface qui correspond à votre connexion au routeur. Sélectionnez-la, et notez : dans le champ "Adresse IP" se trouve l'adresse locale de votre serveur ; dans le champ "Passerelle par défaut" se trouve celle de votre routeur. Il faut maintenant se connecter à votre routeur, ce qui se fait usuellement, à supposer que votre passerelle par défaut soit 192.168.0.1, en entrant "http://192.168.0.1/" dans votre navigateur favori (regardez le mode d'emploi de votre routeur). Vous devez indiquer à votre routeur de rediriger (en anglais : "port forwarding") son port 1194 vers le port 1194 de votre serveur, usuellement en indiquant son adresse IP (que vous venez de récupérer). Ce port est sécurisé, c'est donc sans (trop de) danger.

Votre serveur se connecte au web à travers un réseau compliqué : au risque de plagier Windôb, veuillez contacter votre administrateur réseau.

3 Installation du client

Avec un serveur VPN configuré comme précédemment, vous pouvez gérer des clients sous Mac OS et sous diverses distributions Linux. Pour être accessible depuis Windows, votre serveur devra voir sa configuration complétée (amélioration du tuto à venir).

Voici une façon très simple de procéder sous Mac OS X 10.4 (Tiger) ou supérieur, à répéter pour chaque client à autoriser (1 client = 1 machine) :

3.1 Génération des fichiers d'accès

Un client VPN utilisera, pour se connecter à votre serveur, trois fichiers : le certificat d'authentification de votre serveur ; un certificat privé ; une clef de cryptage privée. Bien sûr, il faudra également un fichier de configuration.

Le premier fichier est le "ca.crt" de tout-à-l'heure, il se trouve normalement dans /etc/openvpn/.

Pour les deux autres, il va falloir retourner dans le dossier "easy-rsa" vu précédemment. Entrez donc les commandes suivantes dans un terminal (en remplaçant le chemin ci-dessous par le votre si-besoin, bien sûr ; et en remplaçant "Client0" par ce que vous voulez ; vous devez avoir activé le compte root comme vu précédemment) :


```
login root
cd /etc/openvpn/easy-rsa/2.0/
. ./vars
./build-key Client0
```

Ceci génère dans le sous-dossier "keys" vu précédemment les fichiers "Client0.crt" et "Client0.key" dont je parlais. Déconnectez-vous du shell root :


```
exit
```

Enfin, vous avez besoin d'un fichier de configuration. Voici celui que je vous propose (à créer avec TextEdit (même procédure : &#8984;&#8679;T, sans ".txt", UTF-8) ou nano et à nommer en ".conf" ; renseignez le champ "remote" avec le nom de domaine (hostname) que vous avez obtenu à DynDNS (ou ailleurs), bien sûr, et donnez les bon noms aux fichiers privés ; si vous avez utilisé "./configure" avec l'option "--disable-lzo", oubliez la ligne "comp-lzo") :


```
client
dev tun0
proto udp

remote lareinedangleterre.homeunix.org 1194

resolv-retry infinite
nobind

persist-key
persist-tun

ca ca.crt
cert Client0.crt
key Client0.key

comp-lzo

verb 2
```

3.2 Préparation du client

Sur la machine client, commencez par télécharger une GUI pour OpenVPN : c'est gratuit, open source, et ça s'appelle Tunnelblick. Téléchargez et installez. Créez un dossier "openvpn" dans votre Bibliothèque (/Users/jeandupont/Library/), et copiez-y les quatre fichiers susmentionnés : "ca.crt", "Client0.crt", "Client0.key", et "Client0.conf" (ou quel que soit le nom que vous avez choisi pour le client).

Lancez Tunnelblick, cliquez la ptite icone de tunnel dans la barre des menus, et choisissez "Connecter Client0". Normalement, tout fonctionne, et on voit de la lumière au bout du tunnel !

Go Finder, faites &#8984;K (Connect server) et entrez l'adresse "afp://10.8.0.1" (sans guillement, bien sûr). Arrive la fenêtre d'identification, et paf ! ça fait du réseau local !

Si vous avez également autorisé la session à distance (Préférences Système > Partage) sur le serveur, vous pouvez vous connecter en SSH, et utiliser ses dérivés, par exemple pour synchroniser (rsync, peut-être un prochain tuto ?).

Voilà, time to enjoy!


----------



## tsss (4 Février 2010)

570FF a dit:


> Petit up à l'intention des modos ou admins : j'aimerais pouvoir éditer le message précédent afin de rajouter les parties manquantes au tuto.
> 
> Merci =)




Tu dois pouvoir cliquer sur le bouton "éditer" en bas a droite de ton poste !

bha chez moi il l'est !


----------



## 570FF (4 Février 2010)

Merci bien pour l'intention. Malheureusement, ce bouton n'est pas disponible...


----------



## Mobyduck (4 Février 2010)

C'est normal, au bout de trois heures cette option disparaît. Mais tu as encore le temps d'éditer ton second message pour y ajouter ce qui manque.

Ceci dit merci pour le tuto, je suis convaincu qu'il saura être utile.


----------



## mrieu (3 Mai 2010)

Personnellement, j'ai trouvé un tutoriel plus simple avec une fonctionnalité incluse dans Mac OS x Client : http://pagesperso-orange.fr/macastuces


----------



## mrieu (4 Mai 2010)

Je me suis en fait trompé : le site est disponible à l'adresse suivante, vraiment très bien fait : http://pagesperso-orange.fr/macmouflon


----------



## raphaeljameson (21 Octobre 2010)

Bonjour, 
Le topo a ce lien est un topo sur le VPN PPTP ce qui est tres different d'openvpn (gestion des pare feu, proxy...)

Pour ma part j'ai essaye une bonne dizaine de fois le tutoriel mais n'y connaissant rien en informatique je nage.
Je suis a la recherche d'un logiciel sur mac pour creer un vpn en openvpn  un peu comme "viscosity server" ( qui n'est pas encore sorti).
Nous sommes quatre a notre bureau et je cherche a creer un vpn pour acceder avec nos portables a notre réseau local en openvpn (proxy et routeurs non modifiables sur les sites clients).
Actuellement j'utilise viscosity avec le provider Acevpn en TCP sur le port 443 (les port udp sont bloqués) et ca marche nickel mais il faut que je puisse creer notre propre serveur vpn, éventuellement sur un mac mini dédié. Si il y a moyen de faire passer "bonjour" c'est encore mieux.

Si quelqu'un peut m'aider? (aide technique ou coordonnées d'une societe qui fait ca)
Merci


----------



## Mac*Gyver (21 Octobre 2010)

Salut,

Merci pour ce tuto.
J'ai une question sur un besoin plus precis: lorsque je susi en deplacement avec mon macbook a l'etranger, j'aimerais pouvoir avoir acces a ma neufbox pour pouvoir mater mes chaines de tv par exemple.
Y a t il un moyen de faire cela, si possibel sans trop bidouiller avec le terminal  dans je suis pas un amateur?

merci
mg


----------

