**Ceci est une ancienne révision du document !**
La configuration FDN du VPN est finalement relativement simple. On a un fichier serveur.conf
# en option, addresse sur laquelle écouter #local 80.67.169.57 port 1194 # On veut aussi de l'ipv6 proto tcp6-server dev tun tun-ipv6 push tun-ipv6 ca /etc/ssl/private/star.fdn.fr.chain cert /etc/ssl/private/star.fdn.fr.crt key /etc/ssl/private/star.fdn.fr.key # à générer avec openssl dhparam -out dh2048.pem 2048 dh dh2048.pem # le serveur piochera 179.1 pour lui. server 80.67.179.0 255.255.255.0 nopool ifconfig-ipv6 2001:910:1301::1/64 2001:910:1301::1 # Tout le monde est dans le même subnet topology subnet # C'est là qu'openvpn trouvera la configuration remontée du Radius client-config-dir ccd # pour les clients qui sauraient le prendre en compte push "dhcp-option DNS 80.67.169.12" push "dhcp-option DNS 80.67.169.40" # détecter la perte de connexion de la même façons des deux côtés ping 5 ping-exit 60 push "ping 5" push "ping-restart 60" persist-key persist-tun # De quoi regarder l'état des connexions status /var/log/openvpn-status.log 1 # le client s'authentifiera juste par le plugin radius client-cert-not-required username-as-common-name plugin /usr/lib/openvpn/radiusplugin.so /etc/openvpn/radiusplugin.cnf # des scripts pour modifier le routage script-security 2 client-connect /etc/openvpn/client-connect client-disconnect /etc/openvpn/client-disconnect learn-addresse /etc/openvpn/client-learen-address # De quoi tuer une connexion avec # socat /var/run/openvpn.management.serveur EXEC:"echo kill foo@vpn.fdn.fr" management-client-user root management /var/run/openvpn.management.serveur unix
Ensuite on a la configuration radius
NAS-Identifier=vpn Service-Type=5 Framed-Protocol=1 NAS-Port-Type=5 NAS-IP-Address=80.67.169.57 OpenVPNConfig=/etc/openvpn/serveur.conf VPN option "--server NETWORK NETMASK" subnet=255.255.252.0 p2p6=2001:910:1301::1 overwriteccfiles=true server { acctport=1813 authport=1812 name=80.67.169.9 retry=1 wait=1 sharedsecret=lepasswd }
À noter que le subnet n'est pas le même que dans la conf openvpn. C'est celui-ci qui sera réellement poussé vers le client en fait. Dans le cas de FDN, on met les ADSL et les VPN dans le même /22. On a donné 179 à openvpn juste pour qu'il utilise 179.1 comme IP de passerelle.
Le plugin radius fera du coup l'authentification, et l'autorisation va remonter les infos d'adresses IP et de routes (cf la vidéo afférente). Ça sera du coup écrit dans le fichier ccd, Framed-IP-Address va produire un ifconfig-push 80.67.179.7 255.255.252.0 par exemple.
Enfin, puisqu'on veut que bird route les /32 et /128 un par un pour pouvoir avoir plusieurs serveurs, on utilise les scripts:
client-connect
[ -z "$ifconfig_pool_remote_ip" ] || ip route add $ifconfig_pool_remote_ip/32 dev $dev proto static [ -z "$ifconfig_ipv6_pool_remote_ip" ] || ip route add $ifconfig_ipv6_pool_remote_ip/128 dev $dev proto static