Internet - Communication & Réseau

Configurer son serveur et ses clients vpn sous mageia

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Dernière mise à jour : 03/06/2017 à 18h14
Table des matières

Documentation en cours de rédaction en cours de rédaction !!



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 &#8594; /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