Table des matières
Créé le: 2023-03-29 ; Révisé le: 2023-03-29
Développons avec Simon - 3 - Installer et utiliser OpenVPN
Vidéo (35 minutes)
Introduction (00:00)
OpenVPN est un logiciel gratuit pour créer un réseau privé virtuel. Il est disponible sur https://openvpn.org/ . Cela permet de:
- se connecter à votre réseau résidentiel depuis l’extérieur
- rediriger tout votre trafic internet vers un serveur distant
- Pour contourner les restrictions géographiques
- Pour partager votre compte Netflix en partageant votre connexion internet. Tout le trafic va avoir l’air de venir
de votre maison.
- Par contre, OpenVPN est un peu difficile à utiliser, alors vous pourriez essayer https://tailscale.com/ . Voici une vidéo en anglais sur sa configuration https://www.youtube.com/watch?v=9CunwUs08og .
Ce qu’on veut faire (02:12)
- Avoir un serveur Linux distant sur lequel on va installer OpenVPN
- On va rediriger tout notre trafic internet vers ce serveur
- On va aussi avoir à gérer les certificats sur ce serveur avec Easy RSA
- On va installer OpenVPN sur notre machine Windows locale
Créer un serveur sur DigitalOcean (03:11)
Si vous n’avez pas de compte DigitalOcean, vous pouvez utiliser mon lien https://m.do.co/c/15c86863abf8 pour obtenir 200$ de crédit sur 60 jours.
- Aller sur https://cloud.digitalocean.com/droplets/new?i=13b7ba®ion=tor1&size=s-1vcpu-1gb&distro=ubuntu&distroImage=ubuntu-22-04-x64
- Toronto
- Ubuntu 22.04 (LTS) x64
- Basic - Regular - 1GB RAM / 1 CPU / 25GB SSD Disk / 1TB Transfer
- Ajouter la clé SSH
- Créer Droplet
ssh root@$REMOTE_IP
# Installer des logiciels de base
apt update && \
apt dist-upgrade -y && \
apt install -y \
curl less net-tools rsync vim wget \
haveged && \
apt autoremove -y
# Ajouter 10G de mémoire SWAP dans des fichiers
for i in {1..10}; do
SWAP_FILE=/var/swap.$i
echo Generating $SWAP_FILE
fallocate -l 1G $SWAP_FILE
chmod 600 $SWAP_FILE
/sbin/mkswap $SWAP_FILE
echo $SWAP_FILE swap swap defaults 0 0 >> /etc/fstab
/sbin/swapon $SWAP_FILE
done
reboot
Installer OpenVPN et Easy RSA (08:13)
apt install -y easy-rsa openvpn
Créer les certificats (08:57)
mkdir -p /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
/usr/share/easy-rsa/easyrsa init-pki
/usr/share/easy-rsa/easyrsa build-ca # Pass: qwerty
/usr/share/easy-rsa/easyrsa build-server-full openvpn # Pass: master
/usr/share/easy-rsa/easyrsa build-client-full simon-desktop # Pass: windows
Configurer OpenVPN (14:15)
# Créer une clé d'encryption
cd /etc/openvpn/server
openssl dhparam -out dh2048.pem 2048
# Créer le fichier de configuration
cat << EOF > /etc/openvpn/server/server.conf
port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/openvpn.crt
key /etc/openvpn/easy-rsa/pki/private/openvpn.key
dh /etc/openvpn/server/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
push "redirect-gateway def1"
keepalive 60 300
cipher AES-256-GCM
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
verb 3
explicit-exit-notify 1
EOF
Démarrer OpenVPN et rediriger le trafic (19:10)
# Démarrer OpenVPN
/usr/sbin/openvpn --config /etc/openvpn/server/server.conf
# Relayer le trafic
VIRTUAL_VPN=tun0
NORMAL_CARD=eth0
iptables -I FORWARD -i $VIRTUAL_VPN -o $NORMAL_CARD \
-s 10.8.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED \
-j ACCEPT
iptables -t nat -I POSTROUTING -o $NORMAL_CARD \
-s 10.8.0.0/24 -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1
# Trouver le nom de la carte réseau
ip a
Préparer le fichier d’importation pour l’utilisateur (22:00)
Créer un fichier simon-desktop.ovpn avec le contenu suivant:
client
dev tun
proto udp
remote xxxxxxxx 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-GCM
verb 3
<ca>
-----BEGIN CERTIFICATE-----
MII[...]lQ==
-----END CERTIFICATE-----
</ca>
<cert>
Certificate:
Data:
Version: 3 (0x2)
[...]9b:2b:62:
c2:a7:a4:8d
-----BEGIN CERTIFICATE-----
MII[...]LCp6SN
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIF[...]M54zA==
-----END ENCRYPTED PRIVATE KEY-----
</key>
Changer les sections “ca”, “cert” et “key” avec les valeurs des fichiers dans /etc/openvpn/easy-rsa/pki/ .
Installer OpenVPN sur Windows (26:20)
Utiliser (28:44)
- https://checkip.foilen.com
- Se connecter et entrer le mot de passe (29:28)
- La connexion est établie, mais le trafic internet ne passe pas dedans (29:56)
- Dû au mauvais ordre d’exécution du côté serveur. Il faut: démarrer OpenVPN, faire les commandes iptables et activer le relayage. Le bon ordre est dans l’article dans la section “Démarrer OpenVPN et rediriger le trafic”
- Exécuter openvpn dans une session “screen” pour éviter que le processus ne soit tué lors d’une déconnexion SSH (30:56)
- La connexion est établie, mais le trafic internet ne passe pas dedans (32:59)
- Dû au relayage qui n’était pas activé
- Ça fonctionne (33:46)
- Se déconnecter (34:09)