Sécurité et Confidentialité des données, Vie privée : Installation d’un serveur OpenVPN (Debian/Ubuntu)

Une des nombreuses solutions pour sécuriser votre trafic réseau (et donc ce qui passe par votre box internet puis chez votre FAI) est l’utilisation d’un VPN. En temps normal, quand vous « surfez » sur Internet, le trafic réseau part de votre machine, passe dans votre box, puis chez votre FAI, vers le serveur que vous interrogez (site web, e-mail,…) et revient vers vous par le chemin inverse. Dans le cas de l’utilisation d’un VPN, votre machine établit une connexion avec le serveur VPN (suivant le chemin précédent) et les deux communiquent comme s’ils étaient sur le même réseau local, de manière chiffrée. Avec ce chiffrement, votre FAI ne peut plus voir le contenu des échanges entre votre machine et Internet (voir mon introduction sur le sujet).

Cet article va vous aider à installer et configurer un serveur OpenVPN sur une machine Linux. Pour celles et ceux d’entre vous ne disposant pas de serveur Linux, il existe divers services VPN tels que FrootVPN et Anonine qui permettent de sécuriser et d’anonymiser vos échanges sur Internet. Préférez les services dans des pays comme la Suède où la vie privée est beaucoup plus respectée qu’en France. Vous trouverez des offres allant entre $3 et $5 par mois. Évitez si possible les VPN gratuits qui offrent des services hasardeux.

Vous avez votre propre serveur Linux ? On continue ? C’est parti !

Installation

Pour installer OpenVPN :

# apt-get install openvpn

Si votre serveur est en Debian 8 (Jessie), Ubuntu 14.04 (Trusty) ou plus récent, vous aurez aussi besoin d’easy-rsa :

# apt-get install easy-rsa

Génération des clés publiques/privées

Pour générer les clés de votre serveur OpenVPN, commencez par vous rendre dans le dossier adéquat.

Avant Debian 8 et Ubuntu 14.04, les outils de génération des clés OpenVPN se trouvaient ici :

# cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/

Ce dossier a ensuite changé d’emplacement et se trouve désormais là :

# cd /usr/share/easy-rsa/

Éditez ensuite le fichier de configuration qui sert à la génération des clés, vous pourrez y entrer des pré-réglages ce qui vous évitera de devoir les remettre à chaque génération de clé :

# nano vars

Des commentaires vous expliquent ce que font chacun des réglages de ce fichier, ceux qui nous intéressent seront plus particulièrement ceux-ci, renseignez vos informations, sauvegardez et quittez l’éditeur :

export KEY_COUNTRY="FR"
export KEY_PROVINCE="PACA"
export KEY_CITY="Le Cannet"
export KEY_ORG="Phyrexia.org"
export KEY_OU="OpenVPN"
export KEY_EMAIL="admin@phyrexia.org"

Ensuite, chargez dans l’environnement le contenu de ce fichier :

# source vars

Préparez ensuite votre dossier de clés avec la commande suivante : (attention, n’exécutez pas cette commande si vous avez déjà généré des clés, cette dernière va effacer tout le contenu du dossier de clés)

# ./clean-all

Vous devez ensuite générer les paramètres Diffie-Hellman de votre serveur OpenVPN, je n’entrerais pas dans le détail à ce sujet au cours de cet article, mais si vous souhaitez en savoir plus, n’hésitez pas à lire la page Wikipédia associée à ce sujet :

# ./build-dh

Après, la CA (Certificate Authority, ou Autorité de Certification) de votre VPN. Cette dernière servira à valider la clé du serveur ainsi que les clés des clients, afin de s’assurer que les clés présentées lors de la connexion à votre VPN aient bien été délivrées par vous :

# ./build-ca

Une fois arrivé à cette étape, il ne vous reste qu’à générer la clé de votre serveur. Pensez à remplacer mon.serveur.vpn par le hostname/FQDN de votre serveur :

# ./build-key-server mon.serveur.vpn

Vous pouvez maintenant générer une clé pour un client VPN. Répétez cette étape pour chaque client et encore une fois remplacez mon.client.vpn par l’information utile :

# ./build-key mon.client.vpn

Toutes les clés que vous générez se trouvent dans le dossier « keys », copiez les dans /etc/openvpn :

# cp keys/ca.crt /etc/openvpn
# cp keys/dh1024.pem /etc/openvpn
# cp keys/mon.serveur.vpn.crt /etc/openvpn
# cp keys/mon.serveur.vpn.key /etc/openvpn

Voici un exemple de configuration serveur d’OpenVPN : (Note: vous trouverez les configurations exemples du paquet openvpn dans « /usr/share/doc/openvpn/examples/sample-config-files »)

port 1194
proto udp
dev tun
topology subnet
ca ca.crt
cert mon.serveur.vpn.crt
key mon.serveur.vpn.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway"
push "dhcp-option DNS 10.8.0.1"
client-to-client
keepalive 10 120
user openvpn
group openvpn
persist-key
persist-tun
status /var/log/openvpn-status.log
status-version 1
verb 3

Pour chacun des clients vous devez récupérer dans le dossier « keys » les fichiers suivants et les copier dans /etc/openvpn sur la machine où ils seront utilisés :

# scp ca.crt user@mon.client.vpn:/etc/openvpn
# scp mon.client.vpn.crt user@mon.client.vpn:/etc/openvpn
# scp mon.client.vpn.key user@mon.client.vpn:/etc/openvpn

Voici aussi un exemple de configuration de client OpenVPN : (Note: vous trouverez les configurations exemples du paquet openvpn dans « /usr/share/doc/openvpn/examples/sample-config-files »)

client
tls-client
proto udp
dev tun
ca ca.crt
cert mon.client.vpn.crt
key mon.client.vpn.key
remote mon.serveur.vpn 1194
nobind
persist-key
persist-tun
status /var/log/openvpn-status.log
status-version 1
verb 3

Une fois votre serveur en place (pensez à relancer OpenVPN une fois la configuration mise en place), votre client devrait pouvoir se connecter et votre trafic Internet passer au travers de votre VPN. Vous pouvez vous rendre sur http://wimip.fr pour vérifier si vous voyez toujours votre adresse IP attribuée par votre FAI, ou bien celle de votre serveur VPN. Vous pouvez aussi consulter le « syslog » sur le serveur et le client pour voir si la connexion s’établit correctement, et aussi en cas de soucis pour comprendre ce qui se passe :

# tail -f /var/log/syslog

Voila, vous disposez maintenant de votre propre serveur VPN et votre trafic n’est plus visible par votre FAI, c’est un premier grand pas vers le retour à la vie privée ! 🙂

Catégories

Tags

3 commentaires

  1. hotfix
    07/01/2016
    Répondre

    # host wimip.fr
    Host wimip.fr not found: 3(NXDOMAIN)
    😀

Laisser un commentaire

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