vpn en 5 minutes
OpenVPN permet à des pairs de s’authentifier entre eux à l’aide d’une clé privée partagée à l’avance, de certificats ou de couples de noms d’utilisateur/mot de passe. Il utilise de manière intensive la bibliothèque d’authentification OpenSSL ainsi que le protocole SSLv3/TLSv1. Disponible sous Solaris, Linux, OpenBSD, FreeBSD, NetBSD, Mac OS X, Windows 2000, XP, Vista et 7, il offre aussi de nombreuses fonctions de sécurité et de contrôle.
(source wikipedia)
Récemment, j’ai ajouté le support PAM à openvpn dans frugalware.
Installation de Openvpn :# pacman-g2 -S openvpn
Configuration :# cp /usr/share/doc/openvpn-2.1.3/easy-rsa/2.0/ /etc/openvpn/easy-rsa/ -R
# cd /etc/openvpn/easy-rsa/
# nano vars
Change value of :
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@myhost.mydomain"
# source ./vars
# ./clean-all
# ./build-ca
# ./build-dh
Génération des clés du serveur :# ./build-key-server server
# openvpn --genkey --secret keys/ta.key
Installation des clés :# cd keys/
# cp ca.crt dh1024.pem server.key ta.key server.crt ../../
Edition du fichier de configuration coté serveur :
/etc/openvpn/openvpn.conf
port 1194
proto udp
dev tun0
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-to-client
keepalive 10 120
comp-lzo
max-clients 100
user nobody
group nobody
# of the privilege downgrade.
persist-key
persist-tun
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
verb 4
client-cert-not-required
plugin /usr/lib/openvpn/openvpn-auth-pam.so login
push "redirect-gateway def1"
push "dhcp-option DNS xxx.xxx.xxx.xxx" #Optional : DNS server
Démarrer le vpn :#!/bin/sh
cd /etc/openvpn
openvpn openvpn.conf &
modprobe iptable_nat
modprobe ip_nat_ftp
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F FORWARD
iptables -F INPUT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -A INPUT -s 10.8.0.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
Coté client :
Récupérer la clé ca.crt du serveur et la coller dans /etc/openvpn.
Edition du fichier de configuration
/etc/openvpn/client.confclient
dev tun
remote OpenvpnAdressIP 1194 # Adresse & port
proto udp
nobind
resolv-retry infinite
persist-key
persist-tun
ca ca.crt
cipher BF-CBC
comp-lzo
verb 3
auth-user-pass
route-method exe
route-delay 2
Démarrer le client :
# cd /etc/openvpn
# openvpn client.conf
Maintenant tous les utilisateurs qui on un compte sur ce serveur peuvent utiliser ce vpn.