HLab

Julien Hautefeuille

OpenVPN en mode Road Warrior et Firehol

OpenVPN

L’objectif est de mettre en place un serveur OpenVPN pour des clients Linux et Android.

J’utilise OpenVPN car celui-ci est bien adapté à un mode “Road Warrior”, la configuration est aisée et bien sécurisée par défaut.

J’emploie le script de configuration iptables Firehol car celui-ci permet d’industrialiser le processus de création de règles iptables.

Installation du serveur Openvpn

sudo apt-get install openvpn

Configuration pour démarrage automatique du démon OpenVPN au démarrage du serveur

sudo systemctl enable openvpn

Configuration du serveur Openvpn

Pour la configuration, nous allons utiliser le script écrit par Angristan.

Il est bien conçu et permet une configuration très sécurisée par défaut du serveur.

wget https://raw.githubusercontent.com/Angristan/OpenVPN-install/master/openvpn-install.sh
chmod +x openvpn-install.sh
sudo ./openvpn-install.sh

Suivre la procédure très bien détaillée affichée dans le terminal et créer les fichiers de configuration pour vos clients.

J’ai testé les fichiers de configuration des clients sur des configurations Linux et Android avec succès.

Installation du script de gestion iptables (Firehol)

sudo apt-get update
sudo apt-get install firehol

Editer le fichier /etc/default/firehol pour démarrer Firehol au démarrage de la machine

START_FIREHOL=YES

Configurer le firewall /etc/firehol/firehol.conf

version 6

interface enp0s20f0 inet
        protection strong
        server "ssh http https openvpn" accept
        client all accept

interface tun0 vpn
        server all accept
        client all accept

router inet2vpn inface enp0s20f0 outface tun0
        route all accept

router vpn2inet inface tun0 outface enp0s20f0
        masquerade
        route all accept

enp0s20f0 est mon interface publique reliée à Internet. tun0 est l’interface du tunnel Openvpn.

Le trafic est encapsulé du client vers le serveur à travers le tunnel grâce aux directives router.

Ces régles assurent que tout le trafic du client est routé à travers le tunnel.

On vérifie la configuration du firewall et on valide la configuration

sudo firehol try

Si aucune erreur n’est levée, on lance la commande commit pour appliquer les règles.

On démarre le serveur OpenVPN

sudo systemctl start openvpn

https://firehol.org/

https://openvpn.net/