Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
wiki:services:openvpn:vpnprod [2017/11/21 18:29] varens ajout création dossier keys |
wiki:services:openvpn:vpnprod [2020/06/27 18:16] (Version actuelle) |
||
---|---|---|---|
Ligne 10: | Ligne 10: | ||
==== Comment je crée mes clés? ==== | ==== Comment je crée mes clés? ==== | ||
Pour avoir ses accès sur le VPN il faut tout d' | Pour avoir ses accès sur le VPN il faut tout d' | ||
- | Premièrement demandez à un membre de MiNET qui a déjà accès au VPN le fichier | + | Pour cela, vous aurez notamment besoin du fichier |
La première étape sera de télécharger un outil appelé __" | La première étape sera de télécharger un outil appelé __" | ||
Ligne 26: | Ligne 26: | ||
| | ||
Puis éditez le fichier | Puis éditez le fichier | ||
- | vars | + | |
Par exemple en modifiant ces variables : | Par exemple en modifiant ces variables : | ||
export KEY_COUNTRY=" | export KEY_COUNTRY=" | ||
Ligne 39: | Ligne 39: | ||
source ./vars | source ./vars | ||
| | ||
- | Mettez le **ca.crt** que on vous a filé dans le dossier keys/ | + | Mettez le **ca.crt** que on vous a filé dans le dossier keys/ (qu'il faut créer) |
Ensuite vous allez créer votre clé ainsi qu'une demande de signature pour votre clé (//CSR: certificate signing request//). | Ensuite vous allez créer votre clé ainsi qu'une demande de signature pour votre clé (//CSR: certificate signing request//). | ||
./build-req ton_pseudo_ldap_en_minuscules | ./build-req ton_pseudo_ldap_en_minuscules | ||
Ligne 47: | Ligne 47: | ||
(Laissez //challenge password// vide, il est mis en clair dans le fichier) | (Laissez //challenge password// vide, il est mis en clair dans le fichier) | ||
- | Un fichier **ton_pseudo.key** et **ton_pseudo.crt** seront créé dans le dossier //keys/// que vous devez créér | + | Un fichier **ton_pseudo.key** et **ton_pseudo.crt** seront créé dans le dossier //keys/// que vous devez créer |
Le fichier en **.key** est la clé privée. Il faut la garder bien précieusement et ne jamais l' | Le fichier en **.key** est la clé privée. Il faut la garder bien précieusement et ne jamais l' | ||
- | Il faut envoyer le **.csr** au président ou à un membre qui détient le //CA (autorité de certification)// | + | Il faut envoyer le **.csr** au président ou à un membre qui détient le //CA (autorité de certification)// |
- | Une fois qu'on vous a renvoyé un fichier par mail, vous aurez trois fichiers | + | Une fois qu'on vous a renvoyé un fichier par mail, vous aurez donc trois fichiers |
Vous pourrez mettre ces trois fichiers dans le dossier de votre choix et vous débarrasser de easy-rsa. | Vous pourrez mettre ces trois fichiers dans le dossier de votre choix et vous débarrasser de easy-rsa. | ||
- | Une fois que vous avez fait ça, il faut prendre le fichier de configuration (pour que le client VPN sache comment communiquer avec notre serveur VPN), que vous pouvez trouver | + | Une fois que vous avez fait ça, il faut prendre le fichier de configuration (pour que le client VPN sache comment communiquer avec notre serveur VPN), que vous pouvez trouver dans la section juste après |
Vous pouvez normalement vous connecter aux réseaux privés de MiNET < | Vous pouvez normalement vous connecter aux réseaux privés de MiNET < | ||
sudo openvpn / | sudo openvpn / | ||
- | On vous demandera des identifiants, | + | On vous demandera des identifiants, |
- | + | ||
- | + | ||
- | + | ||
- | < | + | |
- | ==== Pour les clés ==== | + | |
- | Le président détient les clés du CA, permettant de créer des nouvelles clés aux utilisateurs, | + | |
- | + | ||
- | ===== IPTables ===== | + | |
- | Le pare-feu a été configuré pour NAT les clients d' | + | |
- | + | ||
- | + | ||
- | ==== Authentification openvpn ==== | + | |
- | + | ||
- | L' | + | |
- | === vsftpd === | + | |
- | Le home des utilisateurs est accessible en ftp utilisant TLS, grâce à vsftpd, il est configuré pour utiliser PAM pour l' | + | |
- | + | ||
- | En fait les utilisateurs se connectent sur le port 2121, ensuite les utilisateurs utilisent un mode passif qui écoute sur les ports 64000-64321 (donc il faut rajouter une ligne iptables).</ | + | |
- | + | ||
- | ==== Pour les sous réseaux ==== | + | |
- | + | ||
- | Eh bien quand vous vous connectez avec OpenVPN sur le serveur, celui-ci vous attribue une IP. | + | |
- | Dans notre cas, ça sera quelque chose du genre 10.0.X.Y. | + | |
- | + | ||
- | Ensuite, quand vous allez vouloir accéder à un service par exemple dans 192.168.102.0/ | + | |
- | + | ||
- | ^ Groupe | + | |
- | | Nouveaux utilisateurs | + | |
- | | Production | + | |
- | | Developpement | + | |
- | + | ||
- | Pour restreindre les accès, nous utilisons IPTables. Il suffit de restreindre le forward des packets selon l' | + | |
- | + | ||
- | + | ||
- | ===== Comment ajouter les accès à quelqu' | + | |
- | + | ||
- | Vous devez avoir la clé privée du CA. | + | |
- | + | ||
- | - Donner le ca.crt à la personne, lui dire d' | + | |
- | - Une fois que la personne vous a filé le .csr, signez le (./sign-req ) après avoir bien vérifié que le csr appartient bien à la personne. Renvoyez à cette personne le .crt ainsi créé. | + | |
- | - Ajouter les droits dans le LDAP pour que cette personne puisse utiliser le VPN | + | |
- | - À ce moment là, la personne devrait pouvoir se connecter au VPN avec openVPN. Elle n'aura juste aucune route d' | + | |
- | - Utilisez / | + | |
- | + | ||
- | (En réalité il va dans / | + | |
- | + | ||
- | <WRAP important 60%> | + | |
- | À lire si vous éditez directement les fichiers dans / | + | |
- | + | ||
- | Les routes dans les fichiers de ccd/* ne permettent pas de contrôler l' | + | |
- | + | ||
- | Si par exemple vous ne pushez pas la route 192.168.102.0/ | + | |
- | + | ||
- | Les règles d' | + | |
- | </ | + | |
- | + | ||
- | ===== Comment rajouter un groupe ? ===== | + | |
- | - Commencez par le référencer dans le tableau ci-dessus. | + | |
- | - Ajoutez "route 10.0.X.0 255.255.255.0" | + | |
- | - Ajoutez des règles IPTables autorisant le trafic de tun0 avec comme IP source votre plage, vers l' | + | |
- | - Ajoutez une entrée dans / | + | |
- | + | ||
- | ===== Comment rajouter une interface au vpn ? ===== | + | |
- | - Ajoutez l' | + | |
- | - Renommez l' | + | |
- | - Configurer une IP pour cette interface | + | |
- | - Ajoutez une règle au pare-feu pour que le VPN NAT sur cette interface (masquerade) | + | |
- | - Ajouter une règle au pare-feu pour que certains groupes puissent l' | + | |
- | - Rajouter votre interface aux groupes en n' | + | |
===== Un joli de fichier de conf commenté pour Linux ===== | ===== Un joli de fichier de conf commenté pour Linux ===== | ||
Ligne 263: | Ligne 193: | ||
# Authenticate data channel packets with SHA515 algorithm | # Authenticate data channel packets with SHA515 algorithm | ||
auth SHA512 | auth SHA512 | ||
- | |||
- | # Don't cache username/ | ||
- | auth-nocache | ||
</ | </ | ||
+ | |||
+ | <del> | ||
+ | ==== Pour les clés ==== | ||
+ | Le président détient les clés du CA, permettant de créer des nouvelles clés aux utilisateurs, | ||
+ | |||
+ | ===== IPTables ===== | ||
+ | Le pare-feu a été configuré pour NAT les clients d' | ||
+ | |||
+ | |||
+ | ==== Authentification openvpn ==== | ||
+ | |||
+ | L' | ||
+ | === vsftpd === | ||
+ | Le home des utilisateurs est accessible en ftp utilisant TLS, grâce à vsftpd, il est configuré pour utiliser PAM pour l' | ||
+ | |||
+ | En fait les utilisateurs se connectent sur le port 2121, ensuite les utilisateurs utilisent un mode passif qui écoute sur les ports 64000-64321 (donc il faut rajouter une ligne iptables).</ | ||
+ | |||
+ | ==== Pour les sous réseaux ==== | ||
+ | |||
+ | Eh bien quand vous vous connectez avec OpenVPN sur le serveur, celui-ci vous attribue une IP. | ||
+ | Dans notre cas, ça sera quelque chose du genre 10.0.X.Y. | ||
+ | |||
+ | Ensuite, quand vous allez vouloir accéder à un service par exemple dans 192.168.102.0/ | ||
+ | |||
+ | ^ Groupe | ||
+ | | Nouveaux utilisateurs | ||
+ | | Production | ||
+ | | Developpement | ||
+ | |||
+ | Pour restreindre les accès, nous utilisons IPTables. Il suffit de restreindre le forward des packets selon l' | ||
+ | |||
+ | |||
+ | ===== Comment ajouter les accès à quelqu' | ||
+ | |||
+ | Vous devez avoir la clé privée du CA. | ||
+ | |||
+ | - Donner le ca.crt à la personne, lui dire d' | ||
+ | - Une fois que la personne vous a filé le .csr, signez le (./sign-req ) après avoir bien vérifié que le csr appartient bien à la personne. Renvoyez à cette personne le .crt ainsi créé. | ||
+ | - Ajouter les droits dans le LDAP pour que cette personne puisse utiliser le VPN | ||
+ | - À ce moment là, la personne devrait pouvoir se connecter au VPN avec openVPN. Elle n'aura juste aucune route d' | ||
+ | - Utilisez / | ||
+ | |||
+ | (En réalité il va dans / | ||
+ | |||
+ | <WRAP important 60%> | ||
+ | À lire si vous éditez directement les fichiers dans / | ||
+ | |||
+ | Les routes dans les fichiers de ccd/* ne permettent pas de contrôler l' | ||
+ | |||
+ | Si par exemple vous ne pushez pas la route 192.168.102.0/ | ||
+ | |||
+ | Les règles d' | ||
+ | </ | ||
+ | |||
+ | ===== Comment rajouter un groupe ? ===== | ||
+ | - Commencez par le référencer dans le tableau ci-dessus. | ||
+ | - Ajoutez "route 10.0.X.0 255.255.255.0" | ||
+ | - Ajoutez des règles IPTables autorisant le trafic de tun0 avec comme IP source votre plage, vers l' | ||
+ | - Ajoutez une entrée dans / | ||
+ | |||
+ | ===== Comment rajouter une interface au vpn ? ===== | ||
+ | - Ajoutez l' | ||
+ | - Renommez l' | ||
+ | - Configurer une IP pour cette interface | ||
+ | - Ajoutez une règle au pare-feu pour que le VPN NAT sur cette interface (masquerade) | ||
+ | - Ajouter une règle au pare-feu pour que certains groupes puissent l' | ||
+ | - Rajouter votre interface aux groupes en n' | ||
Ligne 367: | Ligne 361: | ||
IMPORTANT : ne pas oublier de cocher la case tout en bas pour les options ipv6 | IMPORTANT : ne pas oublier de cocher la case tout en bas pour les options ipv6 | ||
+ | |||
+ | ===== Comment regénérer la CRL ===== | ||
+ | La CRL ou certificate revocation list, permet de révoquer des certificats. Elle est signée par le CA et doit être renouvelée régulièrement. | ||
+ | |||
+ | Pour la réactualiser il faut faire: | ||
+ | > source vars | ||
+ | > export KEY_CN="" | ||
+ | > export KEY_OU="" | ||
+ | > export KEY_NAME="" | ||
+ | > openssl ca -gencrl -out " | ||
===== Comment accéder au VPN depuis Windows ?===== | ===== Comment accéder au VPN depuis Windows ?===== |