Créé le: 2023-03-29 ; Révisé le: 2023-03-29
OpenVPN est un logiciel gratuit pour créer un réseau privé virtuel. Il est disponible sur https://openvpn.org/ . Cela permet de:
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.
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
apt install -y easy-rsa openvpn
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
# 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
/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
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/
.