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 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 :
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
Une fois l'installation terminée, vous avez le protocole OpenVPN, félicitations ! Pour le vérifier, go terminal et entrez la commande
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) :
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
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
et renseignez le mot de passe que vous venez de définir. Entrez alors les commandes suivantes :
(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
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 :
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
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 ⌘⇧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 :
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, ⌘⇧T, sans ".txt", en UTF-8). Inscrivez-y le code suivant :
Parfait, maintenant, redémarrez votre Mac (2 fois pour être sûr). Ouvrez un terminal et entrez
Si vous voyez apparaître une ligne du genre
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) :
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 :
Enfin, vous avez besoin d'un fichier de configuration. Voici celui que je vous propose (à créer avec TextEdit (même procédure : ⌘⇧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") :
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 ⌘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!
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 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 :
Bloc de code:
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
Bloc de code:
./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
Bloc de code:
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) :
Bloc de code:
export KEY_COUNTRY=FR
export KEY_PROVINCE=France
export KEY_CITY=Paris
export KEY_ORG="MonServeurVPN"
export KEY_EMAIL="[email protected]"
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
Bloc de code:
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
Bloc de code:
login root
et renseignez le mot de passe que vous venez de définir. Entrez alors les commandes suivantes :
Bloc de code:
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
Bloc de code:
./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 :
Bloc de code:
./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
Bloc de code:
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 ⌘⇧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 :
Bloc de code:
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, ⌘⇧T, sans ".txt", en UTF-8). Inscrivez-y le code suivant :
Bloc de code:
<?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
Bloc de code:
ps aux | grep openvpn
Si vous voyez apparaître une ligne du genre
Bloc de code:
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) :
Bloc de code:
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 :
Bloc de code:
exit
Enfin, vous avez besoin d'un fichier de configuration. Voici celui que je vous propose (à créer avec TextEdit (même procédure : ⌘⇧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") :
Bloc de code:
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 ⌘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!