On regroupe ici les travaux fédérées sur le VPN.
Il y a une liste de diffusion
Il y a aussi la page transmission VPN
OpenVPN
Plusieurs patches openvpn:
Variables d'environnement IPv6
Pour avoir les variables d'environnement contenant les IPv6
ifconfig_ipv6_pool_remote_ip
ifconfig_ipv6_pool_local_ip
ifconfig_ipv6_pool_netbits
- Au moins FDN et Aquilenet l'utilisent
- Un équivalent a été commité dans upstream openvpn le 25 novembre 2015: a8f8b9267183c3cfc065f344d61effe6c55c3da6:
ifconfig_pool_remote_ip6
ifconfig_pool_local_ip6
ifconfig_pool_ip6_netbits
- backporté dans openvpn 2.3.9 (donc disponible dans Stretch)
Proto static
Pour ajouter les routes avec “protocol static” pour que bird les attrape pour les pousser en bgp.
En cours de soumission: https://sourceforge.net/p/openvpn/mailman/message/35169222/
openvpn-auth-radius
Support IPv6
De nouveau, pour le support IPv6, utilisé par FDN
- framed-ipv6-address.patch , pour supporter l'attribut radius Framed-IPv6-Address qui permet de pousser l'adresse IPv6 configurée côté client du tunnel.
- framed-ipv6-route.patch , pour supporter l'attribut radius Framed-IPv6-Route qui permet de configurer le routage de préfixes.
Correction blocage
Lorsqu'on utilise radius, par défaut openvpn se bloque complètement pendant l'interrogation radius, utiliser useauthcontrolfile=true
permet d'éviter en partie le souci
- Il faut également désactiver l'accounting: disable-acct.txt
VPN-rw (range wide)
Pour permettre aux abonnés de se connecter au VPN même en environnement hostile avec que quelques ports ouverts, on peut ouvrir une IP sur tous les ports d'un coup avec un NAT (à partir de Linux 3.7 pour IPv6):
iptables -t nat -A PREROUTING -p tcp -d $CATCHALL4 -j DNAT --to-destination $VPN4:1194 iptables -t nat -A PREROUTING -p udp -d $CATCHALL4 -j DNAT --to-destination $VPN4:1194 ip6tables -t nat -A PREROUTING -p tcp -d $CATCHALL6 -j DNAT --to-destination $VPN6:1194 ip6tables -t nat -A PREROUTING -p udp -d $CATCHALL6 -j DNAT --to-destination $VPN6:1194
VPN everywhere
Pour se connecter facilement depuis n'importe où sans connaître les histoires de ports TCP/UDP, juste en cliquant sur un bouton.