Dis tonton, pourquoi tu tousses?
Par hr le mardi 13 octobre 2009, 15:07 - sécurité - Lien permanent
Etant actuellement dans un pays dont l'accès internet est assez largement filtré, je me suis demandé si openvpn ne pouvait pas me donner un coup de main. Et bien, c'est d'une simplicité enfantine de monter un tunnel en point à point avec clé statique.
Après installation du paquet openvpn (apt-get install openvpn) sur le serveur et le client à connecter, il faut générer une clé statique à partager entre ces deux machines.
openvpn --genkey --secret server_client.key
Il faut poser cette clé sur le serveur et le client, de préférence en utilisant un canal sécurisé, scp(1) est une solution, l'apprendre par coeur en est une autre::).
Ensuite, la configuration du serveur et du client est assez simple. On va considérer que le serveur a le nom de domaine vpn.server.org, que son ip dans le vpn sera 10.42.0.1 et le client aura pour ip 10.42.0.2.
Sur le serveur, dans le fichier /etc/openvpn/static_client.conf :
dev tun0 ifconfig 10.42.0.1 10.42.0.2 # configuration ip point à point secret server_client.key
Sur le client, dans le fichier /etc/openvpn/static_server.conf :
remote vpn.server.org # l'ip ou le nom de domaine du serveur dev tun0 ifconfig 10.42.0.2 10.42.0.1 secret server_client.key
Il est temps de lancer le tunnel (et oui déjà), sur le serveur :
server# openvpn /etc/openvpn/static_client.conf Tue Oct 13 08:50:50 2009 OpenVPN 2.1_rc11 x86_64-pc-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] built on Sep 18 2008 Tue Oct 13 08:50:50 2009 IMPORTANT: OpenVPN's default port number is now 1194, based on an official port number assignment by IANA. OpenVPN 2.0-beta16 and earlier used 5000 as the default port. Tue Oct 13 08:50:50 2009 /usr/sbin/openvpn-vulnkey -q server_client.key Tue Oct 13 08:50:50 2009 TUN/TAP device tun0 opened Tue Oct 13 08:50:50 2009 /sbin/ifconfig tun0 10.42.0.1 pointopoint 10.42.0.2 mtu 1500 Tue Oct 13 08:50:50 2009 UDPv4 link local (bound): [undef]:1194 Tue Oct 13 08:50:50 2009 UDPv4 link remote: [undef]
Sur le client :
client# openvpn /etc/openvpn/static_server.conf Tue Oct 13 14:51:50 2009 OpenVPN 2.1_rc11 i486-pc-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] built on Sep 18 2008 Tue Oct 13 14:51:50 2009 IMPORTANT: OpenVPN's default port number is now 1194, based on an official port number assignment by IANA. OpenVPN 2.0-beta16 and earlier used 5000 as the default port. Tue Oct 13 14:51:50 2009 /usr/sbin/openvpn-vulnkey -q server_client.key Tue Oct 13 14:51:50 2009 TUN/TAP device tun0 opened Tue Oct 13 14:51:50 2009 /sbin/ifconfig tun0 10.42.0.2 pointopoint 10.42.0.1 mtu 1500 Tue Oct 13 14:51:50 2009 UDPv4 link local (bound): [undef]:1194 Tue Oct 13 14:51:50 2009 UDPv4 link remote: vpn.server.org:1194 Tue Oct 13 14:52:01 2009 Peer Connection Initiated with vpn.server.org:1194 Tue Oct 13 14:52:02 2009 Initialization Sequence Completed
Les machines peuvent normalement se contacter, vérifions :
client$ ping -c2 10.42.0.1 PING 10.42.0.1 (10.42.0.1) 56(84) bytes of data. 64 bytes from 10.42.0.1: icmp_seq=1 ttl=64 time=324 ms 64 bytes from 10.42.0.1: icmp_seq=2 ttl=64 time=324 ms --- 10.42.0.1 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1005ms rtt min/avg/max/mdev = 324.583/324.775/324.968/0.601 ms
Des interfaces tunX sont créées :
client# ifconfig
[...]
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.42.0.2 P-t-P:10.42.0.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
[...]
Pour démarrer proprement les tunnels comme on le souhaite, il est utile d'aller jeter un oeil à la variable AUTOSTART du fichier /etc/default/openvpn. Sur le client par exemple, si on ne veut démarrer que le tunnel qui vient d'être configuré :
AUTOSTART="static_server"
Pour un démarrage directement par la ligne de commande, le script d'init accepte un nom de configuration :
client# /etc/init.d/openvpn start static_server
Il est important de bien prendre en considération les conflits de sous-réseau dans la topologie du tunnel pour éviter les problèmes de routage.
Prochaine étape, faire en sorte que tout le traffic passe par le tunnel (mode appelé "road-warrior").
Référence : le tutoriel officiel openvpn
Commentaires
Thanks for the good data just about this topic! Do you utilize the <a href="http://www.4submission.com">article submit</a> for it?
Different students that would like to get good grades detect a trustworthy <a href="http://quality-papers.com/topics/co...">comparison essay</a> service to buy their good essay at. The same things we do too.