OPENVPN : configuration du serveur et pare-feu (partie 3)

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

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.