Dernière mise à jour : 03/06/2017 à 18h14
Table des matières
Présentation
Ce tutoriel a été réalisé par le biais d'un POC comprenant deux machines virtuelles sous mageia 6
Le serveur nommé "serveurmga", connecté sur un réseau local avec l'adresse ip : 192.168.1.15
Une machine cliente nommée "clientmga" connectée au même réseau local avec l'adresse ip : 192.168.1.1.16
Clientmga établira une connexion réseau en 10.8.0.0/24 sur le serveur vpn serveurmga. Ce dernier sera configuré pour être une passerelle vers internet et proposera par défaut les DNS d'opendns.
Dans un premier temps, on désactivera le pare-feu des différentes machines via le Mageia Control Center
Installation et configuration du serveur
Code BASH :
urpmi openvpn
Copie du répertoire easy-rsa
Code BASH :
cp -r /usr/share/openvpn/easy-rsa/ /etc/openvpn/easy-rsa
On édite le fichier /etc/openvpn/easy-rsa/vars
Code BASH :
cd /etc/openvpn/easy-rsa nano vars
On modifie
Code TEXT :
export EASY_RSA="`pwd`"
Pour avoir
Code TEXT :
export EASY_RSA="/etc/openvpn/easy-rsa"
Fichier de configuration du serveur /etc/openvpn/server.conf
Code TEXT :
local 192.168.1.15 # adresse IP locale de votre serveur dev tun # type de VPN, tun (tunnel IP) ou tap (tunnel Ethernet/bridge) proto udp # protocole à utiliser : tcp ou udp, généralement udp port 1194 # le port par défaut pour OpenVPN, à ajuster au besoin ca /etc/openvpn/easy-rsa/keys/ca.crt # clé publique de l’autorité de certification cert /etc/openvpn/easy-rsa/keys/serveurmga.crt # Clé publique du serveur key /etc/openvpn/easy-rsa/keys/serveurmga.key # Clé privée du serveur dh /etc/openvpn/easy-rsa/keys/dh2048.pem # si vous êtes restés sur du 2024 bits server 10.8.0.0 255.255.255.0 #le réseau au sein duquel vous allez attribuer des IP. Les clients auront une ip en 10.8.0x push "redirect-gateway def1 bypass-dhcp" # Permet au serveur de se comporter comme une passerelle. #push "dhcp-option DNS 10.8.0.1" # votre serveur DNS primaire (votre routeur, souvent) push "dhcp-option DNS 208.67.222.222" # votre serveur DNS primaire OpenDNS push "dhcp-option DNS 208.67.220.220" # votre serveur DNS primaire OpenDNS # vous pouvez aussi utiliser le DNS Google 8.8.8.8 ou OpenDNS 208.67.222.222 # pour le reste, a priori pas de raisons d'y toucher à moins de savoir ce que vous faites ! client-to-client duplicate-cn keepalive 10 120 tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0 cipher AES-128-CBC comp-lzo user nobody group nogroup persist-key persist-tun status /var/log/openvpn-status.log 20 log /var/log/openvpn.log verb 3
Code BASH :
nano /etc/sysctl.conf
Ajouter à la fin du fichier /etc/sysctl.conf
Code TEXT :
net.ipv4.ip_forward = 1
Commande à jouer à chaque redémarrage du serveur. Voir comment l’exécuter automatiquement à chaque reboot.
Code BASH :
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o enp0s3 -j MASQUERADE
[style=notice] Attention au nom de la carte. Ici il s'agit de la carte ethernet enp0s3. Cela peut varier en fonction du matériel[!style]
Code BASH :
[root@localhost keys]# ifconfig -a enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.15 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 2a01:cb19:1a2:5200:a00:27ff:fe00:b346 prefixlen 64 scopeid 0x0<global> inet6 fe80::a00:27ff:fe00:b346 prefixlen 64 scopeid 0x20<link> ether 08:00:27:00:b3:46 txqueuelen 1000 (Ethernet) RX packets 194036 bytes 138807516 (132.3 MiB) RX errors 0 dropped 2 overruns 0 frame 0 TX packets 191523 bytes 135687027 (129.4 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Boucle locale) RX packets 34 bytes 4214 (4.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 34 bytes 4214 (4.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500 inet 10.8.0.1 netmask 255.255.255.255 destination 10.8.0.2 inet6 fe80::3a19:dbb5:604e:afb8 prefixlen 64 scopeid 0x20<link> unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 100 (UNSPEC) RX packets 79307 bytes 22061882 (21.0 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 110498 bytes 105230363 (100.3 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Création du service openvpn pour démarrer le serveur
Code BASH :
[root@localhost etc]# systemctl enable openvpn@server.service
Résultat de la commande pour créer le service openvpn via systemctl
Code BASH :
Created symlink /etc/systemd/system/openvpn.target.wants/openvpn@server.service → /usr/lib/systemd/system/openvpn@.service.
Démarrage du serveur openvpn
Code BASH :
systemctl start openvpn@server.service
Installation et configuration du client
Fichier de configuration du client
Code TEXT :
client dev tun proto udp # Protocol udp remote serveurmga 1194 # on peut mettre l'ip du serveur vpn, ou le nom de domaine. On retrouve le port 1194 resolv-retry infinite nobind persist-key persist-tun mute-replay-warnings ns-cert-type server key-direction 1 cipher AES-128-CBC comp-lzo verb 1 mute 20
Mis à jour par Vouf le 03/06/2017
Sources d'information qui ont permis de produire ce tutorial
[Tuto] Monter son VPN perso avec OpenVPN
Fil de discussion sur le forum MLO