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.conf
client
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.

Vus : 2136
Publié par bouleetbil : 25