openvpn

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
openvpn [2023/03/08 14:07] – [Clients sans interface de gestion] nekanopenvpn [2023/08/10 17:17] (Version actuelle) – [Ajout de la double authentification Google] nekan
Ligne 44: Ligne 44:
 <sxh bash>openvpn --genkey secret ./pki/ta.key</sxh> <sxh bash>openvpn --genkey secret ./pki/ta.key</sxh>
  
-  * On met en place un raccourci vers les certificats dans le dossier de ''OpenVPN''+  * On met en place un raccourci vers les certificats dans le dossier de ''OpenVPN'' ainsi qu'un raccourci pour la commande principale 
-<sxh bash>ln -sf /usr/share/easy-rsa /etc/openvpn/easy-rsa</sxh>+<sxh bash>ln -sf /usr/share/easy-rsa /etc/openvpn/easy-rsa 
 +ln -sf /usr/share/easy-rsa/easyrsa /bin/easyrsa</sxh>
  
 ==== Configuration du serveur ==== ==== Configuration du serveur ====
Ligne 219: Ligne 220:
 #up /etc/openvpn/update-systemd-resolved #up /etc/openvpn/update-systemd-resolved
 #down /etc/openvpn/update-systemd-resolved #down /etc/openvpn/update-systemd-resolved
-  +
-{{- if .PasswdAuth }} +
-auth-user-pass +
-{{- end }} +
- +
 <cert> <cert>
 {{ .Cert -}} {{ .Cert -}}
Ligne 242: Ligne 239:
 # Variables # Variables
    
-#OVPN_LISTEN_HOST=127.0.0.1                             # Adresse de l'hôte +OVPN_LISTEN_HOST=127.0.0.1                              # Adresse de l'hôte 
-OVPN_LISTEN_PORT=8080                                   # Port de l'hôte+OVPN_LISTEN_PORT=8088                                   # Port de l'hôte
 OVPN_NETWORK=172.16.0.0/24                              # Plage réseau des clients OpenVPN OVPN_NETWORK=172.16.0.0/24                              # Plage réseau des clients OpenVPN
 OVPN_SERVER=1.2.3.4:1194:udp                            # Adresse, port et protocole d'écoute pour OpenVPN OVPN_SERVER=1.2.3.4:1194:udp                            # Adresse, port et protocole d'écoute pour OpenVPN
Ligne 250: Ligne 247:
 EASYRSA_PATH="/etc/openvpn/easyrsa"                     # Racine pour easy-RSA EASYRSA_PATH="/etc/openvpn/easyrsa"                     # Racine pour easy-RSA
 OVPN_INDEX_PATH="/etc/openvpn/easyrsa/pki/index.txt"    # Chemin de la base de données pour les certificats gérés OVPN_INDEX_PATH="/etc/openvpn/easyrsa/pki/index.txt"    # Chemin de la base de données pour les certificats gérés
-#OVPN_CCD                                               # Stockage des configurations clientes 
 OVPN_CCD_PATH="/etc/openvpn/ccd"                        # Stockage des configurations clientes OVPN_CCD_PATH="/etc/openvpn/ccd"                        # Stockage des configurations clientes
 OVPN_TEMPLATES_CC_PATH="/etc/openvpn/client.conf.tpl"   # Chemin du modèle de configuration cliente OVPN_TEMPLATES_CC_PATH="/etc/openvpn/client.conf.tpl"   # Chemin du modèle de configuration cliente
Ligne 258: Ligne 254:
    
 /etc/openvpn/ovpn-admin \ /etc/openvpn/ovpn-admin \
 +        --listen.host=$OVPN_LISTEN_HOST \
 +        --listen.port=$OVPN_LISTEN_PORT \
         --log.level=$LOG_LEVEL \         --log.level=$LOG_LEVEL \
         --easyrsa.path=$EASYRSA_PATH \         --easyrsa.path=$EASYRSA_PATH \
Ligne 387: Ligne 385:
         CustomLog ${APACHE_LOG_DIR}/access.log combined         CustomLog ${APACHE_LOG_DIR}/access.log combined
    
-        ProxyPass               / http://127.0.0.1:8080+        ProxyPass               / http://127.0.0.1:8088
-        ProxyPassReverse        / http://127.0.0.1:8080/+        ProxyPassReverse        / http://127.0.0.1:8088/
         ProxyRequests           Off         ProxyRequests           Off
         <Location />         <Location />
Ligne 403: Ligne 401:
   * On crée le mot de passe :   * On crée le mot de passe :
 <sxh>htpasswd -c /etc/apache2/password.file ovpn-admin</sxh> <sxh>htpasswd -c /etc/apache2/password.file ovpn-admin</sxh>
-  * On active les modules ''ssl'' et ''proxy_http'' :+  * On active les modules ''ssl'', ''proxy'' et ''proxy_http'' :
 <sxh bash>a2enmod ssl <sxh bash>a2enmod ssl
 +a2enmod proxy
 a2enmod proxy_http</sxh> a2enmod proxy_http</sxh>
   * On active le site :   * On active le site :
Ligne 437: Ligne 436:
 if [ -z "$1" ]; then if [ -z "$1" ]; then
         get-help         get-help
-elif [[ $(ls -$CCD | awk '{print $NF}' | grep -E "^${1}$" | wc -l) -eq 0 ]]; then+elif [ -$CCD/$1 ]; then
         get-help         get-help
 fi fi
Ligne 445: Ligne 444:
    
 # Création du google authenticator # Création du google authenticator
-su -c "google-authenticator --label=\"VPN LBG ${1}\"" $1+su -c "google-authenticator -t -f -d -r 3 -R 30 -w 17 --label=\"OpenVPN ${1}\"" $1
    
 # Mise à jour des droits # Mise à jour des droits
Ligne 459: Ligne 458:
 <sxh bash>cp /etc/pam.d/common-account /etc/pam.d/openvpn</sxh> <sxh bash>cp /etc/pam.d/common-account /etc/pam.d/openvpn</sxh>
   * On modifie cette configuration pour y ajouter en 1ère ligne :   * On modifie cette configuration pour y ajouter en 1ère ligne :
-<sxh>auth required pam_google_authenticator.so authok_prompt=pin</sxh>+<sxh>auth required pam_google_authenticator.so authtok_prompt=pin</sxh>
   * On redémarre le service :   * On redémarre le service :
 <sxh bash>service openvpn@server restart</sxh> <sxh bash>service openvpn@server restart</sxh>
Ligne 466: Ligne 465:
  
 Pour la suite, lorsque l'utilisateur se connecte au VPN, il lui sera demander un code fourni par l'application mobile pour pouvoir se connecter. Pour la suite, lorsque l'utilisateur se connecte au VPN, il lui sera demander un code fourni par l'application mobile pour pouvoir se connecter.
-===== Clients sans interface de gestion =====+===== Clients sans l'interface de gestion =====
  
 <callout type="info" title="Unicité" icon="true">Cette procédure devra être suivie pour chaque client devant se connecter au serveur. Chaque configuration sera donc unique.</callout> <callout type="info" title="Unicité" icon="true">Cette procédure devra être suivie pour chaque client devant se connecter au serveur. Chaque configuration sera donc unique.</callout>
Ligne 489: Ligne 488:
 verb 4 verb 4
 # uncomment below lines for use with Google 2FA # uncomment below lines for use with Google 2FA
-auth-user-pass+#auth-user-pass
 cipher AES-256-GCM cipher AES-256-GCM
 key-direction 1 key-direction 1
Ligne 497: Ligne 496:
 explicit-exit-notify 1 explicit-exit-notify 1
 reneg-sec 86400 reneg-sec 86400
- 
-# uncomment below lines for use with linux 
-#script-security 2 
-# if you use resolved 
-#up /etc/openvpn/update-resolv-conf 
-#down /etc/openvpn/update-resolv-conf 
-# if you use systemd-resolved first install openvpn-systemd-resolved package 
-#up /etc/openvpn/update-systemd-resolved 
-#down /etc/openvpn/update-systemd-resolved 
  
 # keys # keys
Ligne 524: Ligne 514:
 comp-lzo comp-lzo
 verb 4 verb 4
-cipher AES-256-GCM+# uncomment below lines for use with Google 2FA 
 +#auth-user-pass 
 +data-cipher AES-256-GCM 
 +key-direction 1 
 +tls-client 
 +remote-cert-tls server 
 +auth-nocache 
 +explicit-exit-notify 1 
 +reneg-sec 86400 
 +# uncomment below lines for use with linux 
 +script-security 2 
 +# if you use resolved 
 +#up /etc/openvpn/update-resolv-conf 
 +#down /etc/openvpn/update-resolv-conf 
 +# if you use systemd-resolved first install openvpn-systemd-resolved package 
 +#up /etc/openvpn/update-systemd-resolved 
 +#down /etc/openvpn/update-systemd-resolved 
 # keys # keys
 ca chemin_vers_le_fichier_ca.crt ca chemin_vers_le_fichier_ca.crt
Ligne 530: Ligne 537:
 key chemin_vers_le_fichier_client.key key chemin_vers_le_fichier_client.key
 tls-auth chemin_vers_le_fichier_ta.key 1 tls-auth chemin_vers_le_fichier_ta.key 1
-auth-nocache</sxh>+</sxh>
  
   * Il faut ensuite inscrire le client sur le serveur, dans le dossier ''/etc/openvpn/ccd/'' (on remplace ''client'' par le nom choisi précédemment) :   * Il faut ensuite inscrire le client sur le serveur, dans le dossier ''/etc/openvpn/ccd/'' (on remplace ''client'' par le nom choisi précédemment) :
Ligne 541: Ligne 548:
       * **passerelle** : adresse du client +1       * **passerelle** : adresse du client +1
       * **broadcast** : adresse du client +2       * **broadcast** : adresse du client +2
-    * les options de DHCP +    * les options de DHCP (sauf si ajouté dans la partie serveur) 
-    * les options de DNS+    * les options de DNS (sauf si ajouté dans la partie serveur)
     * les différentes routes vers les serveurs dont les accès sont autorisés     * les différentes routes vers les serveurs dont les accès sont autorisés
   * Exemple :   * Exemple :
Ligne 570: Ligne 577:
  
 <callout type="success" title="Fini" icon="true">Et voilà ! Vous disposez d'un serveur OpenVPN et d'un configuration cliente permettant de s'y connecter.</callout> <callout type="success" title="Fini" icon="true">Et voilà ! Vous disposez d'un serveur OpenVPN et d'un configuration cliente permettant de s'y connecter.</callout>
 +
 +===== Clients avec l'interface de gestion =====
 +
 +  * On se connecte à l'interface et on clique sur ''Add user'' :
 +<image shape="thumbnail">{{ :linux:openvpn:ovpn_002.png |}}</image>
 +  * Dans la fenêtre qui apparaît, on entre le nom de l'utilisateur et on clique sur ''Create'' :
 +<image shape="thumbnail">{{ :linux:openvpn:ovpn_003.png |}}</image>
 +  * Le compte apparaît alors en bas de la liste. On crée sa configuration de base en cliquant sur ''Edit routes'' :
 +<image shape="thumbnail">{{ :linux:openvpn:ovpn_004.png |}}</image>
 +  * Si l'utilisateur n'utilise que les routes communes, on clique directement sur ''Save'' :
 +<image shape="thumbnail">{{ :linux:openvpn:ovpn_005.png |}}</image>
 +  * Si l'utilisateur utilise des routes spécifiques, on les ajoute une par une en entrant l'adresse IP, le masque et la description de la route puis en cliquant sur ''Add''. Une fois toutes les routes ajoutées, on sauvegarde en cliquant sur ''Save'' :
 +<image shape="thumbnail">{{ :linux:openvpn:ovpn_006.png |}}</image>
 +  * On peut alors télécharger la configuration client en cliquant sur ''Download config'' :
 +<image shape="thumbnail">{{ :linux:openvpn:ovpn_007.png |}}</image>
  
 ~~DISCUSSION~~ ~~DISCUSSION~~
  
  
  • openvpn.1678280820.txt.gz
  • Dernière modification : 2023/03/08 14:07
  • de nekan