======OpenVPN====== ====Informations==== [[http://openvpn.net|{{ ::images:openvpn:logo.png?400}}]] OpenVPN est un logiciel libre permettant de créer, ou de se connecter a un VPN. Ce logiciel permet à d'établir des connexions VPN, que ce soit de site-en-site ou bien en tant qu'accès nomade, de manière chiffré grâce à TLS. Disponible sur Linux / Windows / Mac OS X / iOS / Android, c'est l'une des solutions les plus sécurisés aujourd'hui. ====Installation et pré-configuration==== Toute la manipulation coté serveur est réalisé sur le packet OpenVPN 2.4 (sous debian 9) # apt install openvpn easy-rsa Ensuite on va créer tous les dossiers nécessaire # mkdir -p /etc/openvpn/jail/tmp && cp -r /usr/share/easy-rsa /etc/openvpn/ Il faut ensuite autoriser le noyaux linux à faire du 'FORWARD', il faut juste lancer les deux commandes suivante : # sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf && echo 1 > /proc/sys/net/ipv4/ip_forward On va passer aux différentes configurations possibles. Il faudra obligatoirement faire des modifications dans certains fichiers, certaines seront expliqué, à vous de faire vos recherches pour vous adapter à vos besoins. ====Configuration Nomade==== ===Objectif=== L'objectif est simple, permettre à un usagé d'accéder a des services interne où alors que chiffrer leurs communications ===Configuration du serveur=== Il va falloir créer les certificats : Modifier le fichiers de variables ///etc/openvpn/easy-rsa/vars// afin de faire correspondre à la réalité les valeurs suivantes : export KEY_COUNTRY="FR" export KEY_PROVINCE="75" export KEY_CITY="Ville" export KEY_ORG="Nom de la societé" export KEY_EMAIL="email@domaine.fr" export KEY_OU="IT" On va ensuite générer les clés et les certificats pour le serveur en lançant le script suivant #!/bin/bash source /etc/openvpn/easy-rsa/vars /etc/openvpn/easy-rsa/clean-all openssl dhparam -out keys/dh4096.pem 4096 /etc/openvpn/easy-rsa//pkitool --initca /etc/openvpn/easy-rsa//pkitool --server server openvpn --genkey --secret keys/ta.key Le script va vous poser plein de question et va être un peu long sur certaines étape. Téléchargé le ficher {{configurations:openvpn:nomade.conf|suivant}}.\\ Il est fait pour fonctionner, cependant vous pouvez modifier certains paramètres mais il faudra les reporter dans la configuration du client. Attention au règles de NAT qui peuvent être nécessaire.((Voir [[https://wiki.virtit.fr/doku.php/kb:cheatsheet:iptables|ceci]])) Il ne restera plus qu'a lancer le service : # systemctl start openvpn@nomade ===Configuration du client=== Téléchargé le ficher {{configurations:openvpn:client_nomade.conf|suivant}}.\\ Et modifier le pour qu'il correspond à votre configuration notamment à la ligne 'remote' où il faudra y mettre l' IP/FQDN du serveur. Si vous voulez que tout le trafic du client soit rediriger dans le tunnel il faut ajouter à la fin de ce fichier : redirect-gateway def1 sinon, il faut ajouter toutes les routes que vous voulez router à la fin de ce même fichier route 10.0.0.0 255.255.255.0 ===Ajouter un client=== Pour créer un client il faut lancer les commandes suivantes : # /etc/openvpn/easy-rsa/vars && /etc/openvpn/easy-rsa/build-key-pass $NOMDUCLIENT La première 'passphrase' demandé est celle qui sera demander a chaque fois que le client veux se connecter.\\ Pour le reste, laissez vous guider. Il faudra modifier le fichier de configuration du client afin de remplir le champs **** afin qu'il soit identique à celui fournit plus tôt. Il ne vous restera qu'a fournir au client son fichier de configuration, ainsi que les fichiers : * /etc/openvpn/easy-rsa/keys/ta.key * /etc/openvpn/easy-rsa/keys/ca.crt * /etc/openvpn/easy-rsa/keys/$NOMDUCLIENT.crt * /etc/openvpn/easy-rsa/keys/$NOMDUCLIENT.key qu'il devra mettre dans un même dossier. ====Configuration Site-à-Site==== FIXME ====Configuration d'Accès Public==== FIXME ==Note : == Règle iptables pour rediriger les requêtes vers une autre une ip (NAT 1.1) sans modification de l'adresse qui émet iptables -t nat -A PREROUTING -p tcp -d 188.165.42.128 -j DNAT --to-destination 10.8.0.6 ==Note 2 : == Le packet Resolvconf installer nativement sur Debian bloque les modifications DNS invoqué par Openvpn. Pour outrepasser cela, il suffit de rajouter les lignes suivante dans le fichier de configuration du client : script-security 2 up /etc/openvpn/update-resolv-conf down /etc/openvpn/update-resolv-conf