Openvpn
Migration depuis l’ancien wiki MediaWiki
- Installation OpenVPN sous Debian en mode Tunnel sur un serveur dédié :
apt-get install openvpn- Générer le certificat et la clé de l’Autorité de Certification maître
Copie dans votre repertoire utilisateur ou root selon votre user
cp /usr/share/doc/openvpn/examples/easy-rsa ~/openvpn/ -R
cd ~/openvpn/2.0/Maintenant il faut éditer le fichier vars et initialiser les variables KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, and KEY_EMAIL. Ne laisser surtout pas un seul champ vide.
export KEY_COUNTRY=FR
export KEY_PROVINCE=Calvados
export KEY_CITY=Caen
export KEY_ORG=GeRgOsNET
export KEY_EMAIL=gergos_nospam@gergosnet.comOn initialise les variables
. ./varsOn nettoie toutes les clés et certificats existants : (ATTENTION A NE FAIRE QUE SI NOUVEAU VPN !!!)
./clean-allPuis, nous créons le certificat et la clée de l’Autorité de Certification Maitre (master Certificate Authority (CA) :
./build-caSi l'on a l'erreur : you must define KEY_DIR , il suffit de faire :
cd /votrerepertoire/easy-rsa/2.0/
. ./vars- Générer un certificat et une clé pour le serveur
./build-key-server monserveur- Générer les certificats et les clés
./build-key client1
./build-key client2
etc ...- Générer des paramètres Diffie-Hellman
./build-dh- Copie des fichiers serveur :
cp keys/dh*.pem keys/ca.crt keys/monserveur.crt keys/monserveur.key /etc/openvpn/Dans notre HOWTO on aura les ips/reseaux suivant :
10.10.0.0/24 le reseau VPN (Serveur VPN),
192.168.1.0/24 le LAN 1 (Reseau Client 1),
192.168.3.0/24 le LAN 2 (Reseau Client 2),- Configuration du serveur
Creer un fichier monserveur.conf dans /etc/openvpn/
#Port en ecoute utiliser pour la connexion VPN
port 1194
#Protocole (Le protocole udp est plus sécurisé que le tcp)
proto udp
#Type d'interface réseau virtuelle créer
dev tun0
#Nom des fichiers servant a l'authentification des clients via OpenSSL
ca ca.crt
cert monserveur.crt
key monserveur.key
dh dh1024.pem
#Adresse du réseau virtuel (Le serveur aura l'adresse 10.10.0.1)
server 10.10.0.0 255.255.255.0
# Permet de garder les ips en memoire
ifconfig-pool-persist ccd/ipp.txt
#Cette ligne ajoute sur le client la route du réseau du serveur
;push "route 192.168.1.0 255.255.255.0"
#Ces lignes indiquent aux clients l'adresse des serveur DNS et WINS
;push "dhcp-option DNS 192.168.2.1"
# Cette ligne permet aux clients de voire les autres clients
client-to-client
# Cette ligne permet de donner le repertoire des fichiers clients
client-config-dir ccd
keepalive 10 120
# Cette ligne active la compression
comp-lzo
#Ces lignes indiquent un user et un group particulier pour le processus
user openvpn
group openvpn
#Ces lignes permettent de rendre persistante la connexion
persist-key
persist-tun
#relance si ping down
keepalive 10 120
status openvpn-status.log
log /var/log/openvpn-server.log
#Cette ligne permet d'indiquer le niveau de log souhaité (de 1 à 9)
verb 5- Configuration du Client 1
Sur la machine cliente 1 : Recuperer les fichiers client1.crt client1.key et ca.crt et les mettres dans le repertoire /etc/openvpn/ de votre machine cliente 1 .
Fichier de configuration /etc/openvpn/client1.conf :
# Client configuration
client
remote monserveurvpn.com
nobind
dev tun0
comp-lzo
# SSL Configuration
ca bonux/ca.crt
cert client1.crt
key client1.key
# Logging configuration
log /var/log/openvpn.log
verb 3Sur le serveur :
Attribuer une ip fixe au client et lui donner les routes à suivre :
Creer un fichier ccd/client1
ifconfig-push 10.10.0.37 10.10.0.38 #Notre ip fixe push "route 192.168.3.0 255.255.255.0" #La route vers le LAN 2 que l'on veut optenir derriere notre client 2 iroute 192.168.1.0 255.255.255.0 #La route vers le LAN derriere notre client 1
Ajouter dans votre fichier /etc/openvpn/monserveur.conf
route 192.168.1.0 255.255.255.0 #Route vers notre LAN 1- Configuration du Client 2
Meme chose que le client 1 Sur la machine cliente 2 : Recuperer les fichiers client2.crt client2.key et ca.crt et les mettres dans le repertoire /etc/openvpn/ de votre machine cliente 2 .
Fichier de configuration /etc/openvpn/client2.conf :
# Client configuration
client
remote monserveurvpn.com
nobind
dev tun0
comp-lzo
# SSL Configuration
ca bonux/ca.crt
cert client2.crt
key client2.key
# Logging configuration
log /var/log/openvpn.log
verb 3Sur le serveur :
Attribuer une ip fixe au client et lui donner les routes à suivre :
Creer un fichier ccd/client2
ifconfig-push 10.10.0.33 10.10.0.34 #Notre ip fixe push "route 192.168.1.0 255.255.255.0" #La route vers le LAN 2 que l'on veut optenir derriere notre client 2 iroute 192.168.3.0 255.255.255.0 #La route vers le LAN derriere notre client 1
Ajouter dans votre fichier /etc/openvpn/monserveur.conf
route 192.168.3.0 255.255.255.0 #Route vers notre LAN 1Ip fixe possible :
Faire aussi tres attention au couple permis :
[ 1, 2] [ 5, 6] [ 9, 10] [ 13, 14] [ 17, 18]
[ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38]
[ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58]
[ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78]
[ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98]
[101,102] [105,106] [109,110] [113,114] [117,118]
[121,122] [125,126] [129,130] [133,134] [137,138]
[141,142] [145,146] [149,150] [153,154] [157,158]
[161,162] [165,166] [169,170] [173,174] [177,178]
[181,182] [185,186] [189,190] [193,194] [197,198]
[201,202] [205,206] [209,210] [213,214] [217,218]
[221,222] [225,226] [229,230] [233,234] [237,238]
[241,242] [245,246] [249,250] [253,254]- Authorisé le trafic VPN sur le serveur :
Ajouter ceci dans /etc/network/if-up.d/iptables
#!/bin/sh
# IpTables rules.
iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o eth0 -j MASQUERADELancer la regle :
sh /etc/network/if-up.d/iptables- Authorisé le trafic VPN/LAN sur le client 1 :
Ajouter ceci dans /etc/network/if-up.d/iptables
#!/bin/sh
# IpTables rules.
iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o eth0 -j MASQUERADELancer la regle :
sh /etc/network/if-up.d/iptables- Authorisé le trafic VPN/LAN sur le client 2 :
Ajouter ceci dans /etc/network/if-up.d/iptables
#!/bin/sh
# IpTables rules.
iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o eth0 -j MASQUERADELancer la regle :
sh /etc/network/if-up.d/iptables- Lancer le serveur et client VPN sur vos machines.
Il vous suffit maintenant de faire :
/etc/init.d/openvpn startLogiquement vous devriez voir le LAN 1 depuis le LAN2 et inversement .
- Utiliser le serveur VPN comme passerelle pour sortir sur internet.
Il suffit d'ajouter à la fin de votre fichier de configuration client /etc/openvpn/clientX.conf
redirect-gateway def1