Ich habe ein funktionierendes OpenVPN-System unter Ubuntu 12.04 und möchte Google Authenticator für zusätzliche Sicherheit hinzufügen.
Dies ist meine aktuelle openvpn-Konfiguration:
dev tun proto udp Port 1096 ca ubuserv04-ca.crt cert ubuserv04.crt Schlüssel ubuserv04.key dh dh1024.pem Server 10.10.0.0 255.255.255.0 Drücken Sie "Redirect-Gateway def1" Drücken Sie "Route 192.168.0.0 255.255.255.0". drücke "dhcp-option DNS 8.8.8.8" drücke "dhcp-option DNS 8.8.4.4" schweben log-append /var/log/openvpn-otp-1096-status.log
(Dies ist nur ein Testaufbau. Ich weiß, dass ich bestimmte Aspekte ändern sollte, aber das funktioniert vorerst.)
Auf dem Client habe ich:
dev tun Klient proto udp remote my.server.fqdn 1096 Resolv-Retry unendlich ca ubuserv04-ca.crt cert user1.crt Schlüssel user1.key Verb 3
Das obige Setup funktioniert einwandfrei: keine Fehler, schnell, stabil.
Ich habe mehrere Anleitungen ausprobiert, um Google Authenticator zum Laufen zu bringen, aber am Ende behebe ich jedes Mal Nebenprobleme in diesen Artikeln. Ich möchte mich nicht bei der lokalen Benutzer- / Kennwortdatenbank des Servers authentifizieren, sondern nur bei dem System, das ich bereits eingerichtet habe, sowie bei Google Authenticator.
Ich habe Google Authenticator ausgeführt. Ich habe es mit apt-get install libpam-google-authenticator installiert und es zuvor zur Authentifizierung von SSH-Sitzungen verwendet. Das hat gut funktioniert, aber ich habe das jetzt deaktiviert, weil es nur ein Testserver ist und dieser bestimmte Test abgeschlossen wurde.
Bitte erläutern. Ich weiß, dass ich der ovpn-Konfiguration meines Servers ein Plugin hinzufügen und /etc/pam.d/openvpn etwas hinzufügen sollte, aber was genau?
Jede Hilfe wäre sehr dankbar!
/Zusatzinformation
Ich habe diesen Artikel befolgt: http://www.howtoforge.com/securing-openvpn-with-a-one-time-password-otp-on-ubuntu Anstatt aus der Quelle zu kompilieren, habe ich Google Authenticator mit apt installiert -get installieren libpam-google-authenticator. Ich habe auch diese Artikel gelesen, aber in diesem Fall nicht verwendet: http://www.howtogeek.com/121650/how-to-secure-ssh-with-google-authenticators-two-factor-authentication/ und http : //zcentric.com/2012/10/09/google-authenticator-with-openvpn-for-2-factor-auth/ . Und ich habe PAM gelesen, wie vorgeschlagen;)
Hier sind einige interessante Entwickler.
/etc/pam.d/openvpn hat Folgendes:
account [success = 2 new_authtok_reqd = done default = ignore] pam_unix.so account [success = 1 new_authtok_reqd = done default = ignore] pam_winbind.so Konto erforderlich pam_deny.so Konto erforderlich pam_permit.so auth erforderlich pam_google_authenticator.so
Gemäß der Anleitung habe ich das Original von /etc/pam.d/common-account kopiert und die letzte Zeile hinzugefügt. Wenn ich jetzt die letzte Zeile auskommentiere, ist die OpenVPN-Verbindung erfolgreich. Wenn die letzte Zeile jedoch nicht auskommentiert ist, protokolliert /var/log/auth.log Folgendes:
PAM kann nicht geöffnet werden (pam_google_authenticator.so): /lib/security/pam_google_authenticator.so: undefiniertes Symbol: pam_get_item PAM fügt fehlerhaftes Modul hinzu: pam_google_authenticator.so
und /var/log/openvpn-otp-1096.log protokollieren dies:
PLUGIN_CALL: Plugin-Funktion PLUGIN_AUTH_USER_PASS_VERIFY ist mit Status 1 fehlgeschlagen: /usr/lib/openvpn/openvpn-auth-pam.so TLS-Authentifizierungsfehler: Überprüfung des Authentifizierungs-Benutzernamens / -Kennworts für Peer fehlgeschlagen E-Using SSL / TLS-Kontext AUTH-PAM: HINTERGRUND: Benutzer 'martin' konnte sich nicht authentifizieren: Modul ist unbekannt
Das Problem scheint zwischen PAM und Google Authenticator zu liegen.
Google listet Probleme mit anderen Plugins auf, aber ich kann keine Informationen zu Google Authenticator finden.
quelle
libpam-google-authenticator
dient zur Authentifizierung mit Google Authenticator in PAM. Dies ist in OpenVPN nicht von Nutzen, da Sie dort Zertifikate verwenden. Ich schlage vor, Sie lesen, was PAM ist - Sie werden verstehen, dass es in Ihrem Fall nichts mit OpenVPN zu tun hat.Antworten:
Ok, Google ist mein Freund.
Ich war das:
Fügen Sie dies direkt nach der Lizenz zu Makefile hinzu:
Dann
Stellen Sie außerdem sicher, dass /home/username/.google_authenticator überhaupt keine Rechte hat, außer Leserechte für den Benutzer, der es verwenden wird.
Jetzt muss ich meinen Benutzernamen, der mein lokaler Benutzername auf dem Server ist (mein Shell-Konto), als meinen OpenVPN-Benutzernamen und den 6-stelligen Google Authenticator-Code als Passwort eingeben.
Jetzt funktioniert es.
Vielen Dank für Ihre Zeit :)
(Wie kann ich diesen Beitrag als gelöst markieren? Bearbeite ich nur den Titel des Themas?)
quelle
Wenn Sie nur die OTP-Authentifizierung für OpenVPN wünschen, steht ein natives OTP-OpenVPN-Plugin zur Verfügung. Es ist mit geheimen Schlüsseln von Google Authenticator kompatibel. Alle Geheimnisse werden in einer einzigen Textdatei gespeichert, und es ist nicht erforderlich, PAM zu konfigurieren oder Benutzerverzeichnisse zu erstellen.
Probieren Sie es aus: https://github.com/evgeny-gridasov/openvpn-otp
quelle