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