Linux/Openvpn/
- 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.com
On initialise les variables
. ./vars
On nettoie toutes les clés et certificats existants : (ATTENTION A NE FAIRE QUE SI NOUVEAU VPN !!!)
./clean-all
Puis, nous créons le certificat et la clée de l’Autorité de Certification Maitre (master Certificate Authority (CA) :
./build-ca
Si 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 3
Sur 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 3
Sur 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 1
Ip 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 MASQUERADE
Lancer 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 MASQUERADE
Lancer 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 MASQUERADE
Lancer 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 start
Logiquement 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