Le VPN (Virtual Private Network) a pour but de vous permettre d'acceder à votre réseau personnel ou d'entreprise, depuis un point délocalisé et ce de façon sécurisée. Ainsi, grâce au VPN vous pouvez accéder à votre intranet d'entreprise depuis chez vous ou inversement, pour petits malins, d'accéder à internet depuis votre entreprise comme si vous étiez chez vous (permet de contourner des proxy trop sécurisés qui ne vous permettraient même pas d'acceder à un simple FTP).
1 - Installation de OpenVPN et OpenSSL
apt-get install openvpn opensslNous allons utiliser les exemples de configuration livrés dans /usr/share/doc/openvpn/examples/
cd /usr/share/doc/openvpn/examplesNous copions ./sample-config-files/server.conf.gz et ./easy-rsa/2.0/ dans /etc/openvpn
cp ./sample-config-files/server.conf.gz /etc/openvpn cp -r ./easy-rsa/2.0 /etc/openvpnOn renomme le dossier 2.0 en easy-rsa
cd /etc/openvpn mv 2.0 easy-rsaOn dezippe le fichier de configuration exemple :
gzip -d server.conf.gzVoilà pour l’installation :)
2 - Création des Certificats
Ici nous allons configurer les informations de certificat :cd /etc/openvpn/easy-rsa vi varsModifiez ces valeurs pour y mettre vos informations de certificat :
export KEY_COUNTRY=”US” export KEY_PROVINCE=”CA” export KEY_CITY=”SanFrancisco” export KEY_ORG=”Fort-Funston” export KEY_EMAIL=”me@myhost.mydomain”Puis sauvegardez (escape puis :w et :q pour quitter) On génère ensuite le Certificat Maitre (CA) et les clés qui vont avec
. ./vars ./clean-all ./build-caOn génère ensuite le certificat et les clés du serveur (en laissont les valeurs par défaut)
./build-key-server serverOn génère ensuite le certificat et les clés pour autant de client (en laissont les valeurs par défaut)
./build-key clientVPN1 ./build-key clientVPN2 ... autant de fois que vous souhaitez créer de clientsOn Génère les paramètres de clés Diffie Hellman
./build-dh
3 - Configuration du serveur :
On édite le fichier /etc/openvpn/server.confvi /etc/openvpn/server.confCes paramètres fonctionnent bien (# = comment):
port 1194 # par defaut modifiable selon besoins proto udp # tcp ou udp, selon vos besoins dev tap #Certificates ca ca.crt cert server.crt key server.key dh dh1024.pem #Server settings server 10.8.0.0 255.255.255.0 # Default VPN ip range. push “redirect-gateway” # DNS push “dhcp-option DNS 208.67.222.222″ push “dhcp-option DNS 208.67.220.220″ # Allow clients to see eachother client-to-client # Service executé par (limite les droits du service) user nobody group nogroupEnsuite on copie les Certificats et clés générés dans /etc/openvpn
cd /etc/openvpn/easy-rsa/keys cp ca.crt server.crt server.key dh1024.pem /etc/openvpnLes clients VPN auront besoin de ces fichiers, récupérez les ;) clientVPN1.crt clientVPN1.key ca.crt Puis redémarrez le service :
/etc/init.d/openvpn restart
Note :
Si le démarrage du daemon OpenVPN échoue (Fail), regardez le fichier /var/log/syslog et si vous avez ces lignes d'erreur concernant Tun/Tap :Note: Cannot open TUN/TAP dev /dev/net/tun: Permission denied (errno=13) Note: Attempting fallback to kernel 2.2 TUN/TAP interface Cannot open TUN/TAP dev /dev/tun0: No such file or directory (errno=2)Alors voici la procédure à suivre :
mkdir -p /dev/net mknod /dev/net/tun c 10 200 chmod 600 /dev/net/tun cat /dev/net/tun #Pour tester si tout fonctionne bienSi la dernière ligne fonctionne, vous devriez avoir le message suivant :
cat: /dev/net/tun: File descriptor in bad state
Vous pouvez alors relancer OpenVPN :)
4 - Configurer les règles de routage
Editez le fichier /etc/sysctl.conf et dé commentez la ligne : net.ipv4.ip_forward=1vi /etc/sysctl.confSauvegardez et quittez (escape, :w puis :q) Pour éviter de rebooter utilisez cette commande :
sysctl -w net.ipv4.ip_forward=1Pour confirmer la prise en compte :
sysctl net.ipv4.ip_forwardAjouter kes regles suivantes dans /etc/rc.local avant exit 0
iptables -P FORWARD ACCEPT iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Note :
Si vous installez votre serveur VPN sur un serveur dédié, chez 1and1 par exemple, vous n'aurez par d'interface eth0 mais plus quelque chose du genre venet0:0 et donc MASQUERADE ne fonctionnera pas.Dans ce cas la règle de routage ressemblera à ceci :
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source XXX.XXX.XXX.XXX (Adresse IP de votre serveur Dédié) iptables-save
5 - Configuration du client
Pour les clients je vous conseille :Comme je ne suis pas spécialement fan de Windows, je vais vous montrer la configuration du client avec Viscosity :
Une fois le soft installé, créez une novelle connexion que j'appelle ici "Mon VPN" mais vous faites comme vous voulez
C'est dans l'onglet général que l'on va renseigner l'adresse IP ou l'URL du serveur VPN, le port et le protocole choisi durant la configuration du serveur (ici par défaut port 1194 en UDP)
Ensuite dans l'onglet "Authentication" nous allons aller rechercher les 3 clés générées sur le serveur (il faudra les rapatrier sur votre ordinateur client au préalable )
Puis dans l'onglet réseau, nous cochons les 2 cases "Envoyer tout le traffic dans le tunnel du temps ;)" et "Enable Support DNS" qui nous permettra de récupérer les DNS définis sur le serveur VPN
Et voilà vous êtes parés pour une connexion complète en VPN !
Aucun commentaire:
Enregistrer un commentaire