Vous avez installé les paquets et créé les certificats. Maintenant, il faut configurer le serveur.
Configurer la partie serveur OpenVPN ne suffit pas, il faut faire communiquer l’équipement nomade avec votre réseau. Votre serveur cumule aussi le rôle de routeur. Une configuration de règles de pare-feu va être alors nécessaire.
On va déjà configurer le serveur.
Entrez en mode root.
Copiez les certificats dans le dossier de configuration dans le dossier d’OpenVPN :
cd ~/openvpn-ca/keys cp ca.crt ca.key server.crt server.key ta.key dh2048.pem /etc/openvpn
Le fichier par défaut de configuration est présent sur le serveur. Il va être décompressé et copier avec la commande suivante :
gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf
Editez le fichier server.conf :
nano /etc/openvpn/server.conf
Cherchez les lignes ci-dessous dans le fichier et les modifiez.
Changer le port. Si vous n’avez pas de serveur web, utilisez le port 443. Vous serez alors moins gêné par les pare feux restrictifs. Sinon, changez-le en lui donnant n’importe quelle valeur entre 5000 et 65000 pour éviter des ports de services existants.
# Which TCP/UDP port should OpenVPN listen on? # If you want to run multiple OpenVPN instances # on the same machine, use a different port # number for each one. You will need to # open up this port on your firewall. port 11194
Si vous passez par le port 443, choisissez le protocole TCP en retirant « ; » devant « proto TCP » puis en ajoutant « ; » devant « proto udp ». Si vous avez pris un port quelconque, restez en UDP.
# TCP or UDP server? ;proto tcp proto udp
Décommentez la ligne suivante :
push "redirect-gateway def1 bypass-dhcp"
Si vous le faites, tout le trafic passera par le serveur VPN. Cela permet d’éviter les conflits réseau si vous vous trouvez dans un lieu utilisant la même plage réseau. Cela permet aussi de vous connecter aux équipements de votre réseau.
Si vous avez un serveur DNS dans votre réseau local, vous pouvez le pousser dans votre VPN :
push "dhcp-option DNS 192.168.1.250"
Décommentez la ligne « tls-auth ta.key 0 # This file is secret » et ajouter « key-direction 0 »
# The server and each client must have # a copy of this key. # The second parameter should be '0' # on the server and '1' on the clients. tls-auth ta.key 0 # This file is secret key-direction 0
Décommentez la ligne « cipher AES-128-CBC » et ajouter juste en dessous « auth SHA256 » :
# Select a cryptographic cipher. # This config item must be copied to # the client config file as well. ;cipher BF-CBC # Blowfish (default) cipher AES-128-CBC # AES auth SHA256 ;cipher DES-EDE3-CBC # Triple-DES
Décommentez les 2 lignes « user nobody » et « group nogroup » :
# It's a good idea to reduce the OpenVPN # daemon's privileges after initialization. # # You can uncomment this out on # non-Windows systems. user nobody group nogroup
Sauvegardez et quittez. La configuration de la partie serveur est terminée.
Comme précisé plus haut, le serveur va avoir aussi le rôle de routeur. Si vous avez besoin de vous connecter à d’autres équipements de votre réseau, il est nécessaire de réaliser ces ajustements.
Restez toujours en mode root.
Editez le fichier « sysctl.conf » dans le dossier « etc » :
nano /etc/sysctl.conf
Décommentez la ligne ci-dessous puis sauvegardez et quittez :
net.ipv4.ip_forward=1
Vérifiez avec la commande “sysctl -p”. Vous devez obtenir ceci :
root@SRV-OPENVPN:~# sysctl -p net.ipv4.ip_forward = 1 root@SRV-OPENVPN:~#
Ouvrez le fichier “before.rules” pour activer la redirection de ports (NAT) :
nano /etc/ufw/before.rules
Modifiez la partie du fichier comme ci-dessous :
# # rules.before # # Rules that should be run before the ufw command line added rules. Custom # rules should be added to one of these chains: # ufw-before-input # ufw-before-output # ufw-before-forward # # DEBUT REGLES OPENVPN # REGLES DANS LA TABLE NAT *nat :POSTROUTING ACCEPT [0:0] # AUTORISE TOUT LE TRAFIC DU CLIENT OpenVPN vers eth0 -A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE COMMIT # FIN REGLES OPENVPN # Don't delete these required lines, otherwise there will be errors *filter
Sauvegardez et quittez.
Ouvrez le fichier « /etc/default/ufw » et modifiez la ligne « DEFAULT_FORWARD_POLICY=”DROP” » par « ACCEPT ». Sauvez et quittez.
nano /etc/default/ufw # /etc/default/ufw # # Set to yes to apply rules to support IPv6 (no means only IPv6 on loopback # accepted). You will need to 'disable' and then 'enable' the firewall for # the changes to take affect. IPV6=yes # Set the default input policy to ACCEPT, DROP, or REJECT. Please note that if # you change this you will most likely want to adjust your rules. DEFAULT_INPUT_POLICY="DROP" # Set the default output policy to ACCEPT, DROP, or REJECT. Please note that if # you change this you will most likely want to adjust your rules. DEFAULT_OUTPUT_POLICY="ACCEPT" # Set the default forward policy to ACCEPT, DROP or REJECT. Please note that # if you change this you will most likely want to adjust your rules DEFAULT_FORWARD_POLICY="ACCEPT"
Nous allons ouvrir les ports nécessaires à OpenVPN et aussi port SSH pour se connecter au serveur en cas de besoin :
ufw allow 11194/udp ufw allow OpenSSH
Si vous avez mis 443 en TCP dans le fichier server.conf, ce sont ces valeurs que vous devez mettre.
Pour valider ces changements, appliquez les 2 commandes suivantes :
ufw disable ufw enable
La partie pare-feu sur le serveur est prête. Il reste à paramétrer votre routeur ou box pour rediriger vers le serveur OpenVPN. C’est mettre en place une règle NAT (redirection de port). Pour cela, vous trouverez plein de tutoriels pour vous guider dans cette démarche.
Démarrez maintenant le service OpenVPN :
systemctl start openvpn@server
Pour vérifier l’état de votre serveur :
systemctl status openvpn@server
Vous obtenez :
root@SRV-OPENVPN:~# service openvpn status ● openvpn.service - OpenVPN service Loaded: loaded (/lib/systemd/system/openvpn.service; enabled; vendor preset: Active: active (exited) since jeu. 2017-03-30 23:16:36 CEST; 18min ago Process: 1286 ExecStart=/bin/true (code=exited, status=0/SUCCESS) Main PID: 1286 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 9830) Memory: 0B CPU: 0 CGroup: /system.slice/openvpn.service mars 30 23:16:36 SRV-OPENVPN systemd[1]: Starting OpenVPN service... mars 30 23:16:36 SRV-OPENVPN systemd[1]: Started OpenVPN service. lines 1-12/12 (END)
Pour activer le service d’OpenVPN au démarrage :
systemctl enable openvpn@server
Maintenant, occupons-nous de la création du fichier de configuration pour les clients dans l’étape suivante.
Source principale :
https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-16-04