« OpenVPN on Debian 12 » : différence entre les versions
Aller à la navigation
Aller à la recherche
Aucun résumé des modifications |
|||
| (7 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 35 : | Ligne 35 : | ||
;tls-auth ta.key 1 | ;tls-auth ta.key 1 | ||
tls-crypt ta.key | tls-crypt ta.key | ||
data-ciphers AES-256-CBC</nowiki> | cipher AES-256-CBC | ||
data-ciphers AES-256-CBC | |||
log /var/log/openvpn/openvpn.log | |||
log-append /var/log/openvpn/openvpn.log | |||
push "redirect-gateway def1 bypass-dhcp" # Router tout le trafic réseau au travers du VPN | |||
</nowiki> | |||
La configuration est prête. Sauvegarder le fichier, puis démarrer le service | |||
systemctl enable --now openvpn@server | |||
=== Activer le forward d'IP et le masquage d'adresse === | |||
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.d/local.conf | |||
sysctl -p /etc/sysctl.d/local.conf | |||
=== Créer des configurations clients === | |||
Commençons par créer un template | |||
grep -Pv "^#|^;|^$" /usr/share/doc/openvpn/examples/sample-config-files/client.conf > ~/openvpn-ca/template_client.conf | |||
éditer le fichier pour configurer les variables | |||
remote my-server-1 1194 # mettre l'IP ou le nom de domaine du serveur | |||
;ca ca.crt | |||
;cert client.crt | |||
;key client.key | |||
;tls-auth ta.key 1 | |||
cipher AES-256-CBC | |||
data-ciphers AES-256-CBC | |||
key-direction 1 | |||
Création d'un script créer un certificat et générer le fichier de cnfig : ''~/openvpn-ca/config_gen.sh'' | |||
<nowiki>#!/bin/bash | |||
# check presence of arg | |||
if [[ $# -ne 1 ]] | |||
then | |||
echo "Usage: $0 login" | |||
exit 1 | |||
fi | |||
./easyrsa gen-req $1 nopass | |||
./easyrsa sign-req client $1 | |||
KEY_DIR=/root/openvpn-ca/pki | |||
OUTPUT_DIR=/root | |||
BASE_CONFIG=/root/openvpn-ca/template_client.conf | |||
cat ${BASE_CONFIG} \ | |||
<(echo -e '<ca>') \ | |||
${KEY_DIR}/ca.crt \ | |||
<(echo -e '</ca>\n<cert>') \ | |||
${KEY_DIR}/issued/${1}.crt \ | |||
<(echo -e '</cert>\n<key>') \ | |||
${KEY_DIR}/private/${1}.key \ | |||
<(echo -e '</key>\n<tls-crypt>') \ | |||
${KEY_DIR}/ta.key \ | |||
<(echo -e '</tls-crypt>') \ | |||
> ${OUTPUT_DIR}/${1}.ovpn | |||
chmod 600 ${OUTPUT_DIR}/${1}.ovpn | |||
echo "Config file to sent to the client : ${OUTPUT_DIR}/${1}.ovpn"</nowiki> | |||
Rendez le script exécutable, puis exécutez le | |||
chmod 700 ~/openvpn-ca/config_gen.sh | |||
./config_gen.sh client1 | |||
cela créé un fichier client1.ovpn tout prêt qu'il suffit d'importer dans le client OpenVPN. | |||
Dernière version du 14 mars 2025 à 17:28
Installation et configuration serveur OpenVPN sur Debian 12
Installation
apt install openvpn easy-rsa
Génération de l'autorité de certification
make-cadir ~/openvpn-ca && cd ~/openvpn-ca
Editez le ficher vars pour adapter a vos informations
set_var EASYRSA_REQ_COUNTRY "FR" set_var EASYRSA_REQ_PROVINCE "France" set_var EASYRSA_REQ_CITY "Paris" set_var EASYRSA_REQ_ORG "Sn4kY.net" set_var EASYRSA_REQ_EMAIL "me@example.net" set_var EASYRSA_REQ_OU "DSI"
Puis générez la CA
./easyrsa init-pki ./easyrsa build-ca
Téléchargez la clé DH pré calculée
curl https://ssl-config.mozilla.org/ffdhe2048.txt > pki/dh2048.pem
Créer la clé des secrets pré-partagés :
openvpn genkey --secret pki/ta.key
Génération du certificat du serveur
./easyrsa gen-req server nopass ./easyrsa sign-req server server
Configurer le serveur openvpn
Utiliser le fichier d'exemple du serveur pour créer une base :
grep -Pv "^#|^;|^$" /usr/share/doc/openvpn/examples/sample-config-files/client.conf > /etc/openvpn/server.conf
Copier les fichiers nécessaire :
cp /root/openvpn-ca/pki/{ca.crt,dh2048.pem,ta.key} /etc/openvpn
cp /root/openvpn-ca/pki/issued/server.crt /etc/openvpn
cp /root/openvpn-ca/pki/private/server.key /etc/openvpn
Puis éditez le fichier /etc/openvpn/server.conf pour ajouter/vérifier les infos suivantes
ca ca.crt cert server.crt key server.key # Keep this file secure dh dh2048.pem ;tls-auth ta.key 1 tls-crypt ta.key cipher AES-256-CBC data-ciphers AES-256-CBC log /var/log/openvpn/openvpn.log log-append /var/log/openvpn/openvpn.log push "redirect-gateway def1 bypass-dhcp" # Router tout le trafic réseau au travers du VPN
La configuration est prête. Sauvegarder le fichier, puis démarrer le service
systemctl enable --now openvpn@server
Activer le forward d'IP et le masquage d'adresse
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.d/local.conf sysctl -p /etc/sysctl.d/local.conf
Créer des configurations clients
Commençons par créer un template
grep -Pv "^#|^;|^$" /usr/share/doc/openvpn/examples/sample-config-files/client.conf > ~/openvpn-ca/template_client.conf
éditer le fichier pour configurer les variables
remote my-server-1 1194 # mettre l'IP ou le nom de domaine du serveur ;ca ca.crt ;cert client.crt ;key client.key ;tls-auth ta.key 1 cipher AES-256-CBC data-ciphers AES-256-CBC key-direction 1
Création d'un script créer un certificat et générer le fichier de cnfig : ~/openvpn-ca/config_gen.sh
#!/bin/bash
# check presence of arg
if [[ $# -ne 1 ]]
then
echo "Usage: $0 login"
exit 1
fi
./easyrsa gen-req $1 nopass
./easyrsa sign-req client $1
KEY_DIR=/root/openvpn-ca/pki
OUTPUT_DIR=/root
BASE_CONFIG=/root/openvpn-ca/template_client.conf
cat ${BASE_CONFIG} \
<(echo -e '<ca>') \
${KEY_DIR}/ca.crt \
<(echo -e '</ca>\n<cert>') \
${KEY_DIR}/issued/${1}.crt \
<(echo -e '</cert>\n<key>') \
${KEY_DIR}/private/${1}.key \
<(echo -e '</key>\n<tls-crypt>') \
${KEY_DIR}/ta.key \
<(echo -e '</tls-crypt>') \
> ${OUTPUT_DIR}/${1}.ovpn
chmod 600 ${OUTPUT_DIR}/${1}.ovpn
echo "Config file to sent to the client : ${OUTPUT_DIR}/${1}.ovpn"
Rendez le script exécutable, puis exécutez le
chmod 700 ~/openvpn-ca/config_gen.sh ./config_gen.sh client1
cela créé un fichier client1.ovpn tout prêt qu'il suffit d'importer dans le client OpenVPN.