Quantcast
Channel: fred – memo-linux.com
Viewing all articles
Browse latest Browse all 515

Installer facilement un serveur OpenVPN sur Debian, Ubuntu et CentOS

$
0
0

Pour simplifier la mise en place d’un serveur OpenVPN, Angristan met à disposition un script « forké » de l’Url https://github.com/Nyr/openvpn-install.

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

Script d’installation automatique d’OpenVPN pour Debian, Ubuntu et CentOS

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.

    Configuration du 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

    Connexion du poste client sur le serveur 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

    Règles iptables pour le serveur OpenVPN

    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
    

    Viewing all articles
    Browse latest Browse all 515

    Trending Articles