OpenVPN et l'accès aux certificats
Fermé
Palo
-
Modifié par Palo le 24/06/2011 à 10:07
palopalo Messages postés 6 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 22 octobre 2012 - 13 juil. 2011 à 22:16
palopalo Messages postés 6 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 22 octobre 2012 - 13 juil. 2011 à 22:16
A voir également:
- OpenVPN et l'accès aux certificats
- Acces rapide - Guide
- On vous a donné accès à un fichier rapport. il est partagé avec plusieurs personnes sur cet espace pix cloud. répondez aux questions - Forum Cloud
- Accès refusé - Guide
- Outlook a interdit l'accès aux pièces jointes - Forum Outlook
- Clé d'accès google - Accueil - Guide confidentialité
9 réponses
Bonjour,
Je cite cela de mémoire. Dans le fichier de configuration de ton serveur (qui se trouve dans /etc/openvpn lui aussi), tu as des directives qui indiquent les fichiers de clef, de certificat, etc... tu peux y placer un chemin relatif ou absolu.
Je cite cela de mémoire. Dans le fichier de configuration de ton serveur (qui se trouve dans /etc/openvpn lui aussi), tu as des directives qui indiquent les fichiers de clef, de certificat, etc... tu peux y placer un chemin relatif ou absolu.
Effectivement, un fichier configuration se trouve dans ce répertoire. Merci.
Maintenant il va falloir trouver un moyen de lui dire d'aller chercher ça sur la clé USB. Le problème c'est que la clé n'est pas visible et il n'y a pas d'accès possible directement.
J'ai du utiliser du code Java pour utiliser les clés RSA de ma clé USB pour faire des tests de chiffrements.
Dans le fichier .conf, ce sont des chemins d'accès qui doivent être entrer. Si quelque pense que c'est faisable autrement, je suis tout ouïe :D
En tout cas merci pour l'info. Je vais commencer par analyser les items USB qui transite entre ma clé et le code Java pour voir si j'ai un autre moyen de récupérer les certificats :)
Maintenant il va falloir trouver un moyen de lui dire d'aller chercher ça sur la clé USB. Le problème c'est que la clé n'est pas visible et il n'y a pas d'accès possible directement.
J'ai du utiliser du code Java pour utiliser les clés RSA de ma clé USB pour faire des tests de chiffrements.
Dans le fichier .conf, ce sont des chemins d'accès qui doivent être entrer. Si quelque pense que c'est faisable autrement, je suis tout ouïe :D
En tout cas merci pour l'info. Je vais commencer par analyser les items USB qui transite entre ma clé et le code Java pour voir si j'ai un autre moyen de récupérer les certificats :)
Je m'aperçois que le proxy de mon entreprise me bloque pour accéder au site OpenVPN... super !
Donc encore de mémoire : tu dois pouvoir placer un script au nom particulier encore une fois dans /etc/openvpn (je l'ai déjà fait), et ce script est lancé avant l'établissement du service. Donc tu peux y monter ta clef à l'endroit où tu veux.
Fais une recherche sur "openvpn pre up script".
Donc encore de mémoire : tu dois pouvoir placer un script au nom particulier encore une fois dans /etc/openvpn (je l'ai déjà fait), et ce script est lancé avant l'établissement du service. Donc tu peux y monter ta clef à l'endroit où tu veux.
Fais une recherche sur "openvpn pre up script".
quand tu dis "Donc tu peux y monter ta clef à l'endroit où tu veux. "
Tu parles d'aller chercher la clé qui se trouve sur mon USB et de la placer quelque part ou de modifier le chemin d'accès du fichier de config pour que onpenVPN la cherche dans la clé ?
Merci pour ces infos, je suis en train de chercher des exemples de scripts :)
Tu parles d'aller chercher la clé qui se trouve sur mon USB et de la placer quelque part ou de modifier le chemin d'accès du fichier de config pour que onpenVPN la cherche dans la clé ?
Merci pour ces infos, je suis en train de chercher des exemples de scripts :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je parle d'aller chercher la clef de chiffrement directement sur la clef USB.
En gros je parle de la commande mount.
Quelque chose de ce genre-là...
Dans le preup :
Dans le fichier de config (qui reste dans /etc/openvpn), en remplaçant KeyFile par le vrai nom de propriété :
Et dans un "postdown" :
En gros je parle de la commande mount.
Quelque chose de ce genre-là...
Dans le preup :
mount /dev/disk/by-uuid/<uuid_de_la_clef_usb> /mnt/keys
Dans le fichier de config (qui reste dans /etc/openvpn), en remplaçant KeyFile par le vrai nom de propriété :
KeyFile /mnt/keys/openvpn_key
Et dans un "postdown" :
umount /mnt/keys
La clé en question est en faite un lecteur de carte.
Maintenant en plus de trouver un moyen de monter le lecteur, il faut que je trouve un moyen de récupérer les informations sur la carte.
Merci pour ton aide. J'ai avancé un peu grâce à ça :)
Maintenant en plus de trouver un moyen de monter le lecteur, il faut que je trouve un moyen de récupérer les informations sur la carte.
Merci pour ton aide. J'ai avancé un peu grâce à ça :)
Une lecture qui pourra peut-être t'aider :
http://www.unixgarden.com/index.php/administration-systeme/utilisation-de-smartcards-gnupg-v2-au-quotidien-partie-1
Ou encore, si tu as quelques euros à dépenser :
http://www.ed-diamond.com/produit.php?ref=lmhs39&id_rubrique=2&caracteristique=1-2-&caracdisp=2-4-
http://www.unixgarden.com/index.php/administration-systeme/utilisation-de-smartcards-gnupg-v2-au-quotidien-partie-1
Ou encore, si tu as quelques euros à dépenser :
http://www.ed-diamond.com/produit.php?ref=lmhs39&id_rubrique=2&caracteristique=1-2-&caracdisp=2-4-
J'ai trouvé une autre piste qui pourrait m'aider.
Si je branche ma clé USB avec les processus des browser non lancé (Firefox/IE fermé) il copie les certificats.
C'est à dire que si j'ouvre Firefox et que je vais regarder la liste des certificats, je voie les deux utilisés par ma clé.
Je vais essayer de les extraire de manière automatique avec un script ou du code Java (actuellement j'arrive juste les lister).
Si je branche ma clé USB avec les processus des browser non lancé (Firefox/IE fermé) il copie les certificats.
C'est à dire que si j'ouvre Firefox et que je vais regarder la liste des certificats, je voie les deux utilisés par ma clé.
Je vais essayer de les extraire de manière automatique avec un script ou du code Java (actuellement j'arrive juste les lister).
palopalo
Messages postés
6
Date d'inscription
mardi 30 novembre 2010
Statut
Membre
Dernière intervention
22 octobre 2012
Modifié par palopalo le 13/07/2011 à 22:18
Modifié par palopalo le 13/07/2011 à 22:18
Alors j'ai une solution (efin)
OpenVPN 2.1 et plus récent support le PKCS#11.
Une commande d'OpenVPN permet de récupérer l'ID avec le chemin d'accès sur le reader de la Smart Card
Pour une Smart Card standard la librairie est : pkcs11.so
Pour les utilisateurs de la Suisse ID : libcvP11.so (powered bye Crypto Vision)
Le résultat va vous afficher les informations pour tous les certificats personnelles (authentification/signateur/...)
Alors tout le début du Serialized ID représente le chemin et le long texte avec des chiffres et des lettre représente l'ID du certificat
Pour vérifiez vous pouvez installer le package opensc et lancer cette commande :
Qui va vous affichez tous les certificats de la Smart Card (même les root et intermédiaire) avec leur nom et leur ID.
Maintenant côté OpenVPN il faut gérer les deux fichiers de configuration (j'indique uniquement les parties qui touchent aux certificats).
Client
ca /etc/openvpn/ca.crt <-- Ce certificat est celui généré par le Serveur, il signe le certificat serveur.crt
pkcs11-providers /usr/lib/libcvP11.so
pkcs11-id 'SwissSign/CardOS\xxxxx\bbbbb/7bff2081ef012f35/SwissSignID/83444981CD0E4AB27EE8B7369532C9F886FEF6B3'
tls-auth /etc/openvpn/keys/ta.key 0 <-- Clé pour le tls/ssl générée par le serveur
Serveur
ca /etc/openvpn/ca.crt <-- Ce certificat est celui qui signe les certificats personnelle de la SmartCart (il faut toute la chaine)
cert /etc/openvpn/keys/server.crt <-- Certificat généré via le serveur
key /etc/openvpn/keys/server.key <-- Clé générée via le serveur
dh /etc/openvpn/keys/dh1024.pem <-- paramètre diffie-hellman généré par le serveur
tls-auth /etc/openvpn/keys/ta.key 0 <-- Clé pour le tls/ssl générée par le serveur
Il y a encore un point à respecter du côté serveur. Dans le dossier CCD il y a des fichiers qui permettent de donner une adresse IP et une passerelle au client. Ce fichier dois avoir un nom spécifique (en principe le nom sera écrit dans l'invit de commande côté client et dans les logs côté serveur quand vous tenterez de faire le tunnel), dans les exemples que j'ai vu il portait le nom du certificat en respectant ceci
* Le prénom du propriétaire suivit d'un « _ »
* Le nom du propriétaire suivit d'un « _ »
* Le type du certificat précédé et suivit d'un « _ »
* Tous les caractères spéciaux remplacés par « __ »
Exemple avec le certificat vu plus haut (CN=Prénom Nom (Authentication))
* Pr__nom_Nom__Authentication_
Pour extraire les certificats directement sur la Smart Card avec la chaine complète il faut utiliser cette commande
Il y a énormément de HOWTO sur Internet qui explique comment générer les certificats et les clés pour une connexion OpenVPN standar. Le côté serveur représente exactement ces configuration, il n'y a que le ca.crt qui est différent. Et le ca.crt que les HOWTO vous font créer sera mis uniquement du côté client.
Voilà j'espère que ça va aider du monde.
Sinon en recherche sur Google : HOWTO OpenVPN SmartCard aide beaucoup. Les informations données plus haut dépanne énormément pour ces reader d'authentification avec Smart Card porpriétaire
OpenVPN 2.1 et plus récent support le PKCS#11.
Une commande d'OpenVPN permet de récupérer l'ID avec le chemin d'accès sur le reader de la Smart Card
$ sudo openvpn --show-pkcs11-ids /usr/lib/nomDeLaLib.so
Pour une Smart Card standard la librairie est : pkcs11.so
Pour les utilisateurs de la Suisse ID : libcvP11.so (powered bye Crypto Vision)
Le résultat va vous afficher les informations pour tous les certificats personnelles (authentification/signateur/...)
Certificate DN: /CN=Prenom Nom (Authentication)/emailAddress=prenom.nom@exemple.ch/serialNumber=1313-1313-1313-1313 Serial: 1B1XXA71XX649XX33AXXC53XX088XX Serialized id: SwissSign/CardOS\xxxxx\bbbbb/7bff2081ef012f35/SwissSignID/83444981CD0E4AB27EE8B7369532C9F886FEF6B3
Alors tout le début du Serialized ID représente le chemin et le long texte avec des chiffres et des lettre représente l'ID du certificat
Pour vérifiez vous pouvez installer le package opensc et lancer cette commande :
$ sudo pkcs15-tool -c
Qui va vous affichez tous les certificats de la Smart Card (même les root et intermédiaire) avec leur nom et leur ID.
Maintenant côté OpenVPN il faut gérer les deux fichiers de configuration (j'indique uniquement les parties qui touchent aux certificats).
Client
ca /etc/openvpn/ca.crt <-- Ce certificat est celui généré par le Serveur, il signe le certificat serveur.crt
pkcs11-providers /usr/lib/libcvP11.so
pkcs11-id 'SwissSign/CardOS\xxxxx\bbbbb/7bff2081ef012f35/SwissSignID/83444981CD0E4AB27EE8B7369532C9F886FEF6B3'
tls-auth /etc/openvpn/keys/ta.key 0 <-- Clé pour le tls/ssl générée par le serveur
Serveur
ca /etc/openvpn/ca.crt <-- Ce certificat est celui qui signe les certificats personnelle de la SmartCart (il faut toute la chaine)
cert /etc/openvpn/keys/server.crt <-- Certificat généré via le serveur
key /etc/openvpn/keys/server.key <-- Clé générée via le serveur
dh /etc/openvpn/keys/dh1024.pem <-- paramètre diffie-hellman généré par le serveur
tls-auth /etc/openvpn/keys/ta.key 0 <-- Clé pour le tls/ssl générée par le serveur
Il y a encore un point à respecter du côté serveur. Dans le dossier CCD il y a des fichiers qui permettent de donner une adresse IP et une passerelle au client. Ce fichier dois avoir un nom spécifique (en principe le nom sera écrit dans l'invit de commande côté client et dans les logs côté serveur quand vous tenterez de faire le tunnel), dans les exemples que j'ai vu il portait le nom du certificat en respectant ceci
* Le prénom du propriétaire suivit d'un « _ »
* Le nom du propriétaire suivit d'un « _ »
* Le type du certificat précédé et suivit d'un « _ »
* Tous les caractères spéciaux remplacés par « __ »
Exemple avec le certificat vu plus haut (CN=Prénom Nom (Authentication))
* Pr__nom_Nom__Authentication_
Pour extraire les certificats directement sur la Smart Card avec la chaine complète il faut utiliser cette commande
$ pkcs15-tool -R idCertifIntermediaire1 > nomFichier.crt $ pkcs15-tool -R idCertifIntermediaire2 >> nomFichier.crt $ pkcs15-tool -R idCertifIntermediaireX >> nomFichier.crt $ pkcs15-tool -R idRoot >> nomFichier.crt
Il y a énormément de HOWTO sur Internet qui explique comment générer les certificats et les clés pour une connexion OpenVPN standar. Le côté serveur représente exactement ces configuration, il n'y a que le ca.crt qui est différent. Et le ca.crt que les HOWTO vous font créer sera mis uniquement du côté client.
Voilà j'espère que ça va aider du monde.
Sinon en recherche sur Google : HOWTO OpenVPN SmartCard aide beaucoup. Les informations données plus haut dépanne énormément pour ces reader d'authentification avec Smart Card porpriétaire