APLU » Historique » Version 1
Version 1/4
-
Suivant » -
Version actuelle
Aymeric APLU, 11/06/2015 21:29
creation - draft
De la config en vrac par rapport à TTN¶
By APLU
VPN¶
Tunnel VPN de type TUN via openvpn¶
Le but de ce VPN est de faire passer IPv6 et IPv4 au sein du même tunnel pour être visible sur internet avec une l'ip de son serveur.
[Serveur] Prerequis¶
- sudo
- openvpn
[Serveur] Configurer sudo¶
On édite le fichier sudoers avec les info suivantes, ceci sera utilisé dans la suite pour permettre la déclaration de l'IPv6 tunnel côté TTN pour que l'IPv6 puisse être routé.
Cmnd_Alias IPVPN = /bin/ip neigh add *, /bin/ip neigh del *, /bin/ip neigh replace * nobody ALL = NOPASSWD: IPVPN
TODO: Voir comment rendre ça un peu plus sécurisé
[Serveur] Configuration openvpn - creation certificat¶
# cd /etc/openvpn # mkdir easy-rsa # cp -R /usr/share/easy-rsa/* easy-rsa/
Editer : /etc/openvpn/easy-rsa/vars pour renseigner les infos relatives à la clef. On peut aussi changer la taille des clefs.
- cd easy-rsa/
- touch keys/index.txt
- echo 01 > keys/serial
- . ./vars # set environment variables
- ./clean-all
- ./build-ca
- ./build-key-server server
- ./build-dh # prends du temps (+15h si on choisi 8192, ~10 minutes pour 2048)
[Serveur] Configuration openvpn - openvpn¶
Créer un fichier de configuration /etc/openvpn/myvpn.conf (on peut changer le nom)
dev tun proto udp port 1194 ca /etc/openvpn/easy-rsa/keys/ca.crt # generated keys cert /etc/openvpn/easy-rsa/keys/server.crt key /etc/openvpn/easy-rsa/keys/server.key # keep secret dh /etc/openvpn/easy-rsa/keys/dh2048.pem user nobody group nogroup server 10.42.42.0 255.255.255.0 tun-ipv6 push tun-ipv6 push "route-ipv6 2000::/3" learn-address /etc/openvpn/learn-address # execution de script script-security 2 #mssfix #fragment 1300 persist-key persist-tun keepalive 10 100 status /var/log/openvpn-status.log log-append /var/log/openvpn verb 3 client-to-client push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 10.42.42.1" push "dhcp-option DNS 91.224.149.254" comp-lzo adaptive server-ipv6 2a01:6600:80XX:YY01::1/64
On adaptera XX:YY en fonction de l'IPv6 fourni par les administrateurs de TTN.
Créer le script /etc/openvpn/learn-address avec le contenu suivant (penser à le rendre executable) :
#!/bin/bash action="$1" addr="$2" grep -qE "^2a01:.*" <<< "$addr" if [ $? -eq 0 ] then case "$action" in add ) sudo /bin/ip neigh add proxy "$addr" dev eth0 ;; update ) sudo /bin/ip neigh replace proxy "$addr" dev eth0 ;; delete) sudo /bin/ip neigh del proxy "$addr" dev eth0 ;; esac fi
TODO: S'assurer que $addr contient bien une IPv6.. le script est lancée en nobody les checks ne risque rien, le sudo moins.