J'ai un système OpenVPN opérationnel sur Ubuntu 12.04 et j'aimerais ajouter Google Authenticator pour plus de sécurité.
C'est ma config openvpn actuelle:
dev tun proto udp port 1096 ca ubuserv04-ca.crt cert ubuserv04.crt clé ubuserv04.key dh dh1024.pem serveur 10.10.0.0 255.255.255.0 Appuyez sur "redirect-gateway def1" Appuyez sur "route 192.168.0.0 255.255.255.0" Appuyez sur "dhcp-option DNS 8.8.8.8" Appuyez sur "dhcp-option DNS 8.8.4.4" Float Log-append/var/log/openvpn-otp -1096-status.log
(Ceci est juste une configuration de test, je sais que je devrais en changer mais cela fonctionne pour le moment.)
Sur le client j'ai:
dev tun client proto udp à distance mon.serveur.fqdn 1096 résolv-retry infinie ca ubuserv04-ca .crt cert user1.crt clé user1.key verbe 3
La configuration ci-dessus fonctionne bien: pas d'erreur, rapide, stable.
J'ai essayé plusieurs méthodes pour faire fonctionner Google Authenticator, mais je finis toujours par résoudre les problèmes secondaires de ces articles. Je ne souhaite pas m'authentifier auprès de la base de données d'utilisateurs/mots de passe locaux du serveur, mais uniquement du système que j'ai déjà mis en place et de Google Authenticator.
J'ai Google Authenticator en cours d'exécution; Je l'ai installé en utilisant apt-get install libpam-google-authenticator et je l'ai déjà utilisé pour authentifier les sessions SSH. Cela a bien fonctionné, mais je l’ai désactivé car il s’agit d’un serveur de test et le test en question est terminé.
Soyez précis s'il vous plait. Je sais que je devrais ajouter un plugin à la configuration ovpn de mon serveur et que je devrais ajouter quelque chose à /etc/pam.d/openvpn mais quoi au juste?
Toute aide serait grandement appréciée!
/informaitons supplémentaires
J'ai suivi cet article: http://www.howtoforge.com/securing-openvpn-with-a-a-a--a---a-ne-password-otp-on-ubuntu au lieu de compiler à partir de la source, j'ai installé Google Authenticator avec apt-get install libpam-google-authentator. J'ai aussi lu, mais non utilisé dans ce cas, ces articles: http://www.howtogeek.com/121650/how-to-secure-ssh-with-google-authenticators-two -factor-authentication/ et http://zcentric.com/2012/10/09/google-authenticator-with-openvpn-for-2-factor-auth/ . Et j'ai lu sur PAM, comme suggéré;)
Maintenant, voici quelques développements intéressants.
/etc/pam.d/openvpn a ceci:
compte [succès = 2 new_authtok_reqd = done default = ignorer] pam_unix.so compte [success = 1 new_authtok_reqd = done default = ignorer] pam_winbind.so compte requis pam_deny.so compte requis pam_permit.so authentification requise pam_google_authenticator.so
Conformément au howto, j'ai copié l'original de /etc/pam.d/common-account et ajouté la dernière ligne. Maintenant, si je commente la dernière ligne, la connexion OpenVPN réussit. Cependant, si la dernière ligne n'est pas commentée, /var/log/auth.log enregistre ceci:
PAM incapable d'ouvrir le fichier (pam_google_authenticator.so): /lib/security/pam_google_authenticator.so: symbole non défini: pam_get_item PAM ajoutant un module défaillant: pam_google_authenticator.so .
et /var/log/openvpn-otp-1096.log enregistre ceci:
PLUGIN_CALL: la fonction de plug-in PLUGIN_AUTH_USER_PASS_VERIFY a échoué avec le statut 1: /usr/lib/openvpn/openvpn-auth-pam.so... ] e-utilisant le contexte SSL/TLS AUTH-PAM: BACKGROUND: l'authentification de l'utilisateur 'martin' a échoué: le module est inconnu
Le problème semble être entre PAM et Google Authenticator.
Google répertorie les problèmes rencontrés avec d'autres plug-ins, mais je ne trouve pas d'informations spécifiques concernant Google Authenticator.
Ok, Google est mon ami.
J'ai fait ça:
# apt-get purge libpam-google-authenticator # télécharger https://code.google.com/p/google-authenticator/downloads/list # apt-get installez libpam-dev
Ajoutez ceci à Makefile, juste après la licence:
LDFLAGS = "- lpam"
Ensuite
# make # make installer # service openvpn restart
Assurez-vous également que /home/username/.google_authenticator ne dispose d'aucun droit, à l'exception des droits de lecture, pour l'utilisateur qui l'utilisera.
Maintenant, je dois entrer mon nom d'utilisateur correspondant à mon nom d'utilisateur local sur le serveur (mon compte Shell) en tant que nom d'utilisateur OpenVPN et le code à 6 chiffres de Google Authenticator en tant que mot de passe.
Maintenant ça marche.
Merci à tous pour votre temps :)
(Comment puis-je marquer ce message comme résolu? Dois-je simplement modifier le titre du sujet?)
Si vous voulez juste une autorisation OTP pour OpenVPN, un plugin natif OTP OpenVPN est disponible. Il est compatible avec les clés secrètes de Google Authenticator. Tous les secrets sont stockés dans un seul fichier texte et il n'est pas nécessaire de configurer PAM ou de créer des répertoires d'utilisateurs.
Découvrez-le: https://github.com/evgeny-gridasov/openvpn-otp