Cette page détaille la configuration du serveur VPN Iloth.
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.
Tout est dans /etc/openvpn :
Dans la suite de cette page, les chemins relatifs sont à partir de /etc/openvpn/.
La configuration principale (server.conf) indique, dans l'ordre :
local 89.234.152.133 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 89.234.152.32 255.255.255.224 route 89.234.152.32 255.255.255.224 route 89.234.152.64 255.255.255.224 client-config-dir /etc/openvpn/ccd ccd-exclusive #options persist-key persist-tun verb 3 comp-lzo no keepalive 10 30 status /var/log/openvpn/openvpn-iloth-status.log log-append /var/log/openvpn/openvpn-iloth.log push "redirect-gateway def1" push "dhcp-option DNS 89.234.152.133"
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 89.234.152.X 89.234.152.64
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. :)
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 89.234.152.IP 89.234.152.64" > 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.
/etc/openvpn $ cd easyrsa/2.0 /etc/openvpn/easyrsa/2.0 $ source vars /etc/openvpn/easyrsa/2.0 $ ./revoke-full monclient
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).
Documentation OpenVPN en cas de pépin. :)