Aller au contenu

Installer facilement un serveur OpenVPN sur Debian, Ubuntu et CentOS


Ldfa

Messages recommandés

Posté(e)

Pour simplifier la mise ne place d’un serveur OpenVPN, un script a été développé et mis à disposition sur github par Angristan.

Ce script permet d’installer et configurer votre propre serveur VPN en moins de 5 Minutes en générant un fichier de configuration au format .ovpn utilisable avec le client OpenVPN, sur tous les systèmes d’exploitation GNU/Linux, MacOS X et Windows.

Ce script par défaut permet :

  • Pas de logs
  • Utilisation uniquement du protocole TLS 1.2
  • Chiffrement AES-256-CBC
  • Serveurs DNS de FDN

Ce script, je l’ai testé uniquement sur Debian 8.

  • Téléchargement du script :
wget --no-check-certificate https://raw.githubusercontent.com/Angristan/OpenVPN-install/master/openvpn-install.sh
Rendre le script exécutable :
chmod +x openvpn-install.sh
Exécution du script :
./openvpn-install.sh

Ensuite, il suffit de répondre aux questions :
openvpn-01
Une fois terminé, le script génère un fichier de configuration au format .ovpn dans le répertoire /root. Ce fichier est à transférer sur le poste client.

Par défaut le fichier généré par le serveur est fonctionnel de suite, mais on va lui apporter quelques petites modifications pour forcer l’utilisation des serveurs DNS défini par le serveur OpenVPN et l’ajout de paramètres pour la gestions des logs.

Installation sur le poste client des paquets nécessaire pour se connecter au serveur OpenVPN

Normalement le paquet resolvconf devrait déjà être installé, dans le doute je l’ai ajouté.

  • Arch Linux / Manajaro :
sudo pacman install openvpn resolvconf
Debian / Ubuntu :
sudo apt-get- install openvpn resolvconf
Fedora :
yum install openvpn resolvconf

Utiliser les serveurs DNS définit par le serveur

Sur le poste client installer le paquet openvpn-update-resolv-conf :

  • Arch Linux / Manjaro :
yaourt -S openvpn-update-resolv-conf

Pour les autres distributions :

wget --no-check https://github.com/masterkorp/openvpn-update-resolv-conf/blob/master/update-resolv-conf.sh
sudo mv update-resolv-conf.sh /etc/openvpn/

C’est grâce à openvpn-update-resolv-conf , qu’il va être possible de forcer l’utilisation des serveurs DNS définit sur le serveur OpenVPN.

Modification du fichier de configuration client.ovpn pour forcer l’utilisation des serveurs DNS

nano client.ovpn

Ajouter ces lignes :

dhcp-option DNS
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

Activation des logs

L’activation des logs n’est pas obligatoire pour le bon fonctionnement d’OpenVPN, mais dans mon cas j’ai activé les logs pour faire du monitoring avec Munin.

Pour activer les logs, modifier comme suit le fichier de configuration sur le serveur OpenVPN :

nano /etc/openvpn/server.conf

Ajouter :

#log
verb 3
mute 20
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log

Pour la prise en compte de l’ajout, relancer le serveur OpenVPN :

systemctl restart openvpn

Pour se connecter au serveur OpenVPN, saisir la commande :

sudo openvpn client.ovpn

ce qui donne :
opencpn-client-linux

On peut vérifier l’adresse IP de l’interface tun0 :

ip a | grep tun0
6: tun0:  mtu 1500 qdisc noqueue state UNKNOWN group default qlen 100
    inet 10.8.0.3/24 brd 10.8.0.255 scope global tun0

Et vérifier aussi le serveur DNS utlisé :
openvpn-dns

Pour ajouter une couche de sécurité, on va appliquer des règles iptables au serveur OpenVPN.
Pour simplifier la mise en place, voici un petit script créé par Denis Rosenkranz :

#!/bin/bash
##Créé par Denis ROSENKRANZ
##denisrosenkranz.com
 
start() {
    echo -n "Application des regles IpTables: "
    #Suppresion des anciennes rêgles
    iptables -F
    iptables -X
 
    #Activation de l'IP Forwarding
    echo 1 > /proc/sys/net/ipv4/ip_forward
 
    #Mise en place des regles iptables
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
 
    echo " [termine]"
    echo
}
 
stop() {
    echo -n "Flush des regles IpTables: "
    iptables -F
    iptables -X
    echo " [termine]"
    echo
}
 
case $1 in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        start
    ;;
    status)
        /sbin/iptables -L
        /sbin/iptables -t nat -L
    ;;
    *)
        echo "Usage: ovpn {start|stop|restart|status}"
esac
exit

Afficher l’article complet

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.