openvpn : authentification par certificats + user/password [résolu] - Sécurité - Systèmes & Réseaux Pro
Marsh Posté le 13-05-2012 à 16:37:22
Sur PFsense tu as cette option. Elle marche en utilisant un script externe qui est appelée lors du logon via auth-user-pass-verify
Ce script vérifie (entre autres) que le username = le comonname.
http://redmine.pfsense.org/project [...] 6e3a259a8c
Marsh Posté le 13-05-2012 à 18:51:58
merci, c'est vrai que ce script fait a priori bien ce que je voudrais faire :-)
par contre il est très lié à pfsense visiblement... donc difficilement utilisable pour moi :-/
J'utilise openvpn 2.0 sous linux debian squeeze
Marsh Posté le 13-05-2012 à 19:10:15
Non mais adaptable par contre il l'est, ou tu peux en faire un qui colle à ton besoin
Marsh Posté le 13-05-2012 à 21:43:50
Je@nb a écrit : Non mais adaptable par contre il l'est, ou tu peux en faire un qui colle à ton besoin |
Dans la doc d'openvpn (http://openvpn.net/index.php/open-source/documentation/manuals/65-openvpn-20x-manpage.html)
je me rends compte qu'on peut avoir accès à un certain nombre de variables (dont common-name et username) en scriptant et en utilisant l'attribut "auth-user-pass-verify" :
As of OpenVPN 2.0-beta12, in server mode, environmental variables set by OpenVPN are scoped according to the client objects they are associated with, so there should not be any issues with scripts having access to stale, previously set variables which refer to different client instances. bytes_received |
sais-tu si je peux utiliser le plugin pam qui marche très bien... et faire, en plus, un script de vérification avec "auth-user-pass-verify" ?
mon server.conf serait du genre :
|
a priori je ne pense pas....( que ce soit possible d'utiliser le plugin + auth-user-pass-verify)
mais je ne souhaite pas mettre un script-security level à 3 et n'utiliser que auth-user-pass-verify...
0 -- Strictly no calling of external programs. |
Marsh Posté le 13-05-2012 à 21:49:43
D'après la doc :
--plugin module-pathname [init-string] |
Tu devrais pouvoir cumuler les 2.
Pour la sécu, tu peux essayer à 2 vu que tu t'en fous du mot de passe.
Essaie tu verras bien ^^
Marsh Posté le 13-05-2012 à 22:15:54
ça à l'air faisable :-)
effectivement je peux mettre le level à 2 puisque je n'ai pas besoin de checker le pwd
merci!
j'essaie demain!
Marsh Posté le 14-05-2012 à 11:36:54
arn100 a écrit : ça à l'air faisable :-) |
nickel ça marche...
server.conf :
|
/etc/openvpn/verif-cn-username.sh :
|
merci :-)
Marsh Posté le 13-05-2012 à 16:02:51
Bonjour à tous,
J'ai installé Openvpn avec une authentification forte : certificats pour chaque client + authentification ldap
Comment faire pour qu'un client n'utilise pas le certificat d'un autre client? (en s'authentifiant bien avec son propre user/password). Autrement dit, y a t'il, en fait, un moyen pour veiller à ce que le common name du certificat client soit identique au username?
Car, pour mes tests, je me suis créé un certificat client, et avec je peux aussi avoir accès au vpn en me connectant avec d'autres username/passwd :-/
côté serveur :
...
common-name-as-username
plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so openvpn
côté client :
...
ca ca.crt
cert client.crt
key client.key
...
auth-user-pass
côté serveur, j'ai pour l'instant mis l'attribut "common-name-as-username" afin d'avoir, dans les log du serveur, le username plutôt que le common name présent dans le certificat du client (bien que l'attribut semble vouloir dire l'inverse)
merci de votre aide ;-)
bon dimanche à vous
Message édité par arn100 le 14-05-2012 à 13:43:14