documentation:openvpn

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
documentation:openvpn [2014/04/06 00:27]
sthibaul
documentation:openvpn [2022/05/22 07:53] (Version actuelle)
khrys [FDN]
Ligne 1: Ligne 1:
-La configuration FDN du VPN est finalement relativement simple. On a un fichier serveur.conf 
  
-    # en option, addresse sur laquelle écouter +====== Configurations OpenVPN ======
-    #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::+
-    # 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 +
-     +
-    # 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 +===== Côté Client =====
-    Service-Type=+
-    Framed-Protocol=+
-    NAS-Port-Type=+
-    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::+
-     +
-    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.+  * [[https://git.fdn.fr/fdn-public/wiki/-/blob/master/VPN/doc.md|Documentation FDN]]
  
-Enfin, puisqu'on veut que bird route les /32 et /128 un par un pour pouvoir avoir plusieurs serveurs, on utilise les scripts:+===== Côté Serveur =====
  
-client-connect+Cette page liste les configurations OpenVPN utilisées par les FAI de la fédé.
  
-    #!/bin/sh +Slides d'une présentation en AG FFDN: {{:documentation:vpn.odp|ODP}}, {{:documentation:vpn.pdf|PDF}}
-    set -e +
-    [ -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+
  
-client-disconnect+==== FDN ====
  
-    #!/bin/sh +Utilisation de radius, adressage IPv4 + IPv6 (via un plugin radius patché). Configuration : [[.:openvpn:fdn]]. 
-    set -e + 
-    [ -z "$ifconfig_pool_remote_ip" ] || ip route del $ifconfig_pool_remote_ip/32 dev $dev proto static || true +  * [[https://git.fdn.fr/fdn-public/wiki/-/blob/master/VPN/doc.md|Configuration client chez FDN]] 
-    -z "$ifconfig_ipv6_pool_remote_ip" ] || ip route del $ifconfig_ipv6_pool_remote_ip/128 dev $dev proto static || true+  * [[https://git.fdn.fr/fdn-public/wiki/-/blob/master/VPN/doc_serveur.md|Configuration serveur chez FDN]] 
 + 
 +Pour RSF, on utilise un bête fichier de mots de passe, et éventuellement des fichiers .ccd pour des options spécifiques, IP fixes, etc. On passe pour ça à l'option auth-user-pass-verify le script [[https://git.fdn.fr/fdn-public/wiki/-/blob/master/VPN/doc/checkpass.txt|checkpass]
 + 
 + 
 +==== LDN ==== 
 + 
 +Basé sur la config de FDN, mais sans Radius pour éviter de patcher OpenVPN pour IPv6 (configuration des clients dans des fichiers plats). Configuration et discussion des choix : [[https://wiki.ldn-fai.net/wiki/Tuto_Serveur_OpenVPN|Tuto serveur OpenVPN]] 
 + 
 +==== Illyse ==== 
 + 
 +Inspiré de la config de FDN, mais en utilisant LDAP plutôt que Radius.  Ca permet notamment de faire de l'IPv6 sans patcher OpenVPN et de configurer plusieurs subnets routés vers un client directement dans le LDAP. 
 + 
 +Modèle : tous les abonnés ont une configuration client identique, et les données spécifiques à chaque abonné (IP et DNS) sont poussés par le serveur OpenVPN. 
 + 
 +Configuration client(s), avec en plus quelques idées de configuration avancées : https://www.illyse.org/projects/publicdocs/wiki/Vpn_doc_user 
 + 
 +==== Aquilenet ==== 
 + 
 +On utilise le script checkpass, et on met manuellement des fichiers ccd pour les IPs fixes. 
 + 
 +  * [[https://atelier.aquilenet.fr/projects/aquilenet/wiki/Configuration_VPN|Configuration client chez Aquilenet]] 
 +  * [[https://atelier.aquilenet.fr/projects/aquilenet/wiki/Configuration_VPN_sans_brique|tutoriel configuration client chez Aquilenet]] 
 + 
 +==== Trucs généraux ==== 
 + 
 +Pour faire du VPN sur n'importe quel port, il faut deux IP distinctes sur la machine ($IP_MAIN et $IP_VPN). Puis, avec iptables : 
 + 
 +  iptables -t nat -A PREROUTING -d $IP_VPN/32 -p tcp -j DNAT --to-destination $IP_MAIN:1194 
 +  iptables -t nat -A PREROUTING -d $IP_VPN/32 -p udp -j DNAT --to-destination $IP_MAIN:1194
  
  • documentation/openvpn.1396736873.txt.gz
  • Dernière modification: 2014/04/06 00:27
  • de sthibaul