Tuto Installation OpenVpn sur une distro Debian
Alors Nous allons voir ici l’installation OpenVpn sur une distro Debian destiné à la création de tunnel vpn ssl tcp, l’authentification et la sécurité étant basé sur la bibliothèque OpenSSL à l’aide de certificats.
Dans un premier temps avoir un accès ssh en mode root à la machine ou la VM, avoir le soft winscp (Windows) ou Cyberduck (MacOsx) pour récupérer par la suite les certificats en sftp.
Commençons, Installation du paquet OpenVpn:
1 |
apt-get install openvpn |
On copie les fichiers nécessaires à la suite:
1 2 3 4 5 |
mkdir /etc/openvpn/easy-rsa/ cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/ chown -R $USER /etc/openvpn/easy-rsa/ |
On édite le fichier de configuration à présent, soit en NANO ou en VI il ce trouve ici /etc/openvpn/easy-rsa/vars:
On le modifie avec nos infos:
1 2 3 4 5 6 7 8 9 |
export KEY_COUNTRY="FR" export KEY_PROVINCE="29" export KEY_CITY="UH" export KEY_ORG="h.com" |
Ensuite on génère les clés:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
cd /etc/openvpn/easy-rsa/ source vars ./clean-all ./build-dh ./pkitool --initca ./pkitool --server server openvpn --genkey --secret keys/ta.key |
1 |
cp keys/ca.crt keys/ta.key keys/server.crt keys/server.key keys/dh1024.pem /etc/openvpn/ |
Aprés avoir copié les clés on va Chrooter le process OpenVpn Dans une Jail:
1 2 3 |
mkdir /etc/openvpn/jail mkdir /etc/openvpn/clientconf |
Passons maintenant au fichier de configuration du serveur en le créant dans /etc/openvpn/server.conf:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# Serveur TCP/443 mode server proto tcp port 443 dev tun # Cles et certificats ca ca.crt cert server.crt key server.key dh dh1024.pem tls-auth ta.key 1 key-direction 0 cipher AES-256-CBC # Reseau server 10.8.0.0 255.255.255.0 push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 4.4.4.4" keepalive 10 120 # Securite user nobody group nogroup chroot /etc/openvpn/jail persist-key persist-tun comp-lzo # Log verb 3 mute 20 status openvpn-status.log log-append /var/log/openvpn.log |
On oublie surtout pas d’activé le Nat avec L’ip Forward de façons provisoire:
1 |
sh -c 'echo 1 > /proc/sys/net/ipv4/ip_forward' |
De façons permanente on modifie le fichier /etc/sysctl.conf
Et l’on passe le de 0 à 1 le , net.ipv4.ip_forward = 1
Pour les règles du pare feu iptable :
1 2 3 4 5 6 7 8 9 10 11 12 13 |
iptables -I FORWARD -i tun0 -j ACCEPT iptables -I FORWARD -o tun0 -j ACCEPT iptables -I OUTPUT -o tun0 -j ACCEPT iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -s 10.8.0.2/24 -o eth0 -j MASQUERADE |
On copie les régles actuel dans un fichiers iptables.rules :
1 |
sh -c "iptables-save > /etc/iptables.rules" |
On rajoute dans le fichier des interfaces réseaux, tout à la fin de /etc/network/interfaces :
1 |
pre-up iptables-restore < /etc/iptables.rules |
Création d’un compte client
par exemple pctest:
1 2 3 4 5 |
cd /etc/openvpn/easy-rsa source vars ./build-key pctest |
1 2 |
mkdir /etc/openvpn/clientconf/pctest/ cp /etc/openvpn/ca.crt /etc/openvpn/ta.key keys/pctest.crt keys/pctest.key /etc/openvpn/clientconf/pctest/ |
Il faut aller dans le répertoire que l’on vient de crée :
1 |
cd /etc/openvpn/clientconf/pctest/ |
On crée le fichier client.conf en remplacant evidement le A.B.C.D par vôtre ip publique, et de remplacer le nom des certificats par ceux que vous avez créez:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
client dev tun proto tcp-client remote A.B.C.D 443 resolv-retry infinite cipher AES-256-CBC ca ca.crt cert pctest.crt key pctestkey tls-auth ta.key 1 key-direction 1 nobind persist-key persist-tun comp-lzo verb 3 |
1 |
cp client.conf client.ovpn |
Ensuite il suffit de se connecter en sftp sur le serveur et aller dans le répertoire /etc/openvpn/pctest pour récupérer les certificats et les ajoutés dans le client vpn de sont ordinateur.
Fin du Tuto Installation OpenVpn sur une distro Debian 😉