Coucou à toute la communauté de Mondedié.fr.
Je vous propose aujourd'hui un petit tutoriel sur l'installation d'un VPN (OpenVPN sur debian 8)
J'aimerais remercier yonea11 pour son tutoriel sous Debian 7 et Hardware pour avoir décrit la configuration d'openvpn sous debian 8.
Installation du paquet OpenVPN

Donc pour commencer on va installer OpenVPN via les paquets de Debian
apt-get install openvpn easy-rsa openssl iptables-persistent 
L'installation du paquet iptables-persistent ne marche pas sur Kimsufi et SoYouStart
Configuration de la PKI
cp -r /usr/share/easy-rsa/ /etc/openvpn
mkdir /etc/openvpn/easy-rsa/keys
On edite le fichier /etc/openvpn/easy-rsa/vars à l'aide de VIM (VIM Power)
vim /etc/openvpn/easy-rsa/vars
export KEY_COUNTRY="FR"
export KEY_PROVINCE="France"
export KEY_CITY="Paris"
export KEY_ORG="Mon entreprise"
export KEY_EMAIL="bob@monsupersite.com"
export KEY_OU="IT"

export KEY_NAME="server"
Ensuite on genere la clé en Diffie Helmman de taille 2048 bit (ça peut prendre du temps sur un kimsufi environ 5 à 10 minutes selon la puissance du processeur)
(Profitez en pour faire des folies 😀)
openssl dhparam -out /etc/openvpn/dh2048.pem 2048
On génère les certificats nécessaire pour OpenVPN
cd /etc/openvpn/easy-rsa

. ./vars
./clean-all
./build-ca
./build-key-server server
./build-key client1
Si vous souhaitez avoir plusieur client il faut generer des clés à l'aide de la commande
./build-key client1
[/b]

Ensuite on copie tout ce qu'on a generé dans le repertoire /etc/openvpn
cp /etc/openvpn/easy-rsa/keys/{server.crt,server.key,ca.crt} /etc/openvpn
cp /etc/openvpn/easy-rsa/keys/{client1.crt,client1.key} /etc/openvpn
On génère la clé statique et du routage individuel
cd /etc/openvpn
openvpn --genkey --secret ta.key

mkdir ccd
echo "iroute 10.10.1.0 255.255.255.0" > ccd/client1
chmod -R 777 ccd
Ensuite on va configurer le coté serveur
nano /etc/openvpn/server.conf
port 1194
proto tcp
dev tun
tcp-queue-limit 131072
bcast-buffers 131072
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
cipher AES-256-CBC
keysize 256
auth SHA512
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 10.8.0.1"
keepalive 10 120
tls-auth ta.key 0
user nobody
group nogroup
persist-key
comp-lzo
status /etc/openvpn/openvpn-status.log
log-append /etc/openvpn/openvpn.log
verb 4
- tcp-queue-limit & bcast-buffers :
permet d'améliorer les performances en augmentant la taille des buffers et de la queue-tcp, sans ces directives j'avais des erreurs dans les logs quand je naviguais sur youtube par exemple.

- dhcp-option DNS 10.8.0.1 :
pensez à changer l'adresse du serveur DNS, dans mon cas j'ai mis le serveur local comme j'ai installé mon propre résolveur.

- client-config-dir ccd & route 10.10.1.0 255.255.255.0 :
Permet d’éviter certaines erreurs de routage dans certains cas spécifiques

On va configurer le coté client
client
dev tun
persist-tun
proto tcp
remote IP_SERVEUR 1194
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
tls-auth ta.key 1
redirect-gateway def1
remote-cert-tls server
cipher AES-256-CBC
keysize 256
auth SHA512
comp-lzo
verb 4

<ca>
contenu du fichier ca.crt
</ca>

<cert>
contenu du fichier client1.crt
</cert>

<key>
contenu du fichier client1.key
</key>
On active le forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
On configure le NAT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables-save > /etc/iptables/rules.v4
systemctl enable netfilter-persistent
Et ensuite on démarre le service et roulez jeunesse
systemctl start openvpn@server.service

EDIT @xataz : Correction d'une erreur de syntax
un an plus tard
Répondre…