Ceci est une ancienne révision du document !
Table des matières
Cette page détaille la configuration du serveur VPN Iloth.
Architecture
Il n'y a qu'un seul serveur, Brescou, qui sert de point de sortie pour les VPN de tous les utilisateurs. Le trafic est ensuite évacué par OVEA.
Mise en place
Tout est dans /etc/openvpn :
- /etc/openvpn/server.conf la configuration principale ;
- /etc/openvpn/ccd/ la configuration pour chaque client ;
- /etc/openvpn/keys/ les clés cryptographiques ;
- /etc/openvpn/easyrsa/2.0/ collection de scripts pour gérer les clés et certificats de chiffrement ;
- /etc/openvpn/easyrsa/2.0/vars configuration de easyrsa.
Dans la suite de cette page, les chemins relatifs sont à partir de /etc/openvpn/.
La configuration principale (server.conf) indique, dans l'ordre :
- l'IP (WAN) du serveur, 193.239.192.22 ;
- l'emplacement des différentes clés de chiffrement (dans keys/) ;
- l'IP (sur notre réseau local) du serveur, 178.20.70.192 ;
- la route par défaut pour les clients ;
- l'emplacement du dossier ccd/ pour les configurations spécifiques à chaque client ;
- la passerelle à utiliser pour les clients ;
- le DNS à utiliser pour les clients (Brescou lui-même).
local 193.239.192.22 dev tun ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/brescou.crt key /etc/openvpn/keys/brescou.key dh /etc/openvpn/keys/dh1024.pem crl-verify /etc/openvpn/keys/crl.pem server 178.20.70.192 255.255.255.192 route 178.20.70.192 255.255.255.192 client-config-dir /etc/openvpn/ccd persist-key persist-tun verb 3 push "redirect-gateway def1" push "dhcp-option DNS 193.239.192.22"
Le fichier de configuration affecté à chaque client n'indique que l'adresse IP dudit client (qui est une adresse publique Iloth), ainsi que l'adresse de Brescou.
ifconfig-push 178.20.70.194 178.20.70.193
Le dossier /etc/openvpn/easyrsa/2.0/ contient divers scripts permettant de gérer les certificats, notamment ./build-key qui permet d'en créer un nouveau. Ces scripts placent leur sortie dans easyrsa/2.0/keys, et /etc/openvpn/keys est en fait un symlink vers ce dossier. Ainsi, les certificats produits par easyrsa sont immédiatement pris en compte par OpenVPN.
Enfin, le fichier easyrsa/2.0/vars est laissé tel quel par défaut, en dehors des valeurs pour le certificat :
export KEY_COUNTRY="FR" export KEY_PROVINCE="Hérault" export KEY_CITY="Montpellier" export KEY_ORG="Iloth" export KEY_EMAIL="president@nospam.example"
Où vous remplacerez nospam.example par le domaine de notre sympathique FAI. :)
Procédure d'ajout d'un utilisateur
Créer le certificat, puis le fichier de conficuration dans ccd.
/etc/openvpn $ cd easyrsa/2.0 /etc/openvpn/easyrsa/2.0 $ source vars /etc/openvpn/easyrsa/2.0 $ ./build-key MONCLIENT ... remplir les champs ... /etc/openvpn/easyrsa/2.0 $ cd ../.. /etc/openvpn/ $ ./build-conf.sh MONCLIENT /etc/openvpn/ $ echo "ifconfig-push 178.20.70.IP 178.20.70.193" > ccd/MONCLIENT
Où “IP” sera bien sûr remplacé par le numéro approprié pour former l'IP à attribuer à ce client.
Le serveur est maintenant prêt à router le client. Il ne manque plus qu'à envoyer la conf (/etc/openvpn/confs/MONCLIENT ) à l'utilisateur, afin qu'il l'entre dans son client OpenVPN.
Procédure de révocation d'un certificat
/etc/openvpn $ cd easyrsa/2.0 /etc/openvpn/easyrsa/2.0 $ source vars /etc/openvpn/easyrsa/2.0 $ ./revoke-full monclient
La documentation officielle
Documentation OpenVPN en cas de pépin. :)
Procédure de modification du Reverse DNS
Pour attribuer un reverse DNS à un adhérent, il suffit d'aller modifier la zone correspondante dans le Bind de Brescou. L'adhérent doit en faire la demande au CA (ou a quelqu'un avec un accès root sur Brescou).
