Mam działający system OpenVPN na Ubuntu 12.04 i chciałbym dodać Google Authenticator dla dodatkowego bezpieczeństwa.
Oto moja obecna konfiguracja openvpn:
dev tun proto udp port 1096 ca ubuserv04-ca.crt cert ubuserv04.crt klucz ubuserv04.key dh dh1024.pem serwer 10.10.0.0 255.255.255.0 Wciśnij „redirect-gateway def1” push „route 192.168.0.0 255.255.255.0” Wciśnij „dhcp-option DNS 8.8.8.8” Wciśnij „dhcp-opcja DNS 8.8.4.4” pływak log-append /var/log/openvpn-otp-1096-status.log
(To tylko konfiguracja testowa, wiem, że powinienem zmienić niektóre jej aspekty, ale na razie to działa.)
Na kliencie mam:
dev tun klient proto udp zdalny mój.serwer.fqdn 1096 resolv-retry nieskończoność ca ubuserv04-ca.crt cert user1.crt klucz użytkownik1.klucz czasownik 3
Powyższa konfiguracja działa dobrze: bez błędów, szybko, stabilnie.
Próbowałem kilka porad, aby uruchomić Google Authenticator, ale za każdym razem kończę rozwiązywanie problemów ubocznych w tych artykułach. Nie chcę uwierzytelniać się na lokalnej bazie danych użytkowników / haseł serwera, tylko system, który już mam, plus Google Authenticator.
Mam uruchomiony Google Authenticator; Zainstalowałem go za pomocą apt-get install libpam-google -hentator i użyłem go wcześniej do uwierzytelnienia sesji ssh. To działało dobrze, ale teraz to wyłączyłem, ponieważ to tylko serwer testowy i ten konkretny test został zakończony.
Proszę, bądź konkretny. Wiem, że powinienem dodać wtyczkę do konfiguracji ovpn mojego serwera i że powinienem dodać coś do /etc/pam.d/openvpn, ale co dokładnie?
Każda pomoc byłaby bardzo mile widziana!
/Informacje dodatkowe
Śledziłem ten artykuł: http://www.howtoforge.com/securing-openvpn-with-a-one-time-password-otp-on-ubuntu Zamiast kompilacji ze źródła zainstalowałem Google Authenticator z apt -get zainstaluj libpam-google -hentator. Przeczytałem również, ale nie wykorzystane w tym przypadku, te artykuły: http://www.howtogeek.com/121650/how-to-secure-ssh-with-google-authenticators-two-factor-authentication/ i http : //zcentric.com/2012/10/09/google-authenticator-with-openvpn-for-2-factor-auth/ . I czytałem na PAM, jak sugerowałem;)
Oto kilka interesujących programów.
/etc/pam.d/openvpn ma to:
konto [sukces = 2 new_authtok_reqd = gotowe domyślne = zignoruj] pam_unix.so konto [sukces = 1 new_authtok_reqd = gotowe domyślnie = zignoruj] pam_winbind.so wymagane konto pam_deny.so wymagane konto pam_permit.so wymagane uwierzytelnianie pam_google_authenticator.so
Zgodnie z howto skopiowałem oryginał z /etc/pam.d/common-account i dodałem ostatni wiersz. Teraz, jeśli skomentuję ostatni wiersz, połączenie OpenVPN powiedzie się. Jeśli jednak ostatni wiersz nie został skomentowany, /var/log/auth.log rejestruje to:
PAM nie może dlopen (pam_google_authenticator.so): /lib/security/pam_google_authenticator.so: niezdefiniowany symbol: pam_get_item PAM dodaje wadliwy moduł: pam_google_authenticator.so
i /var/log/openvpn-otp-1096.log rejestruje to:
PLUGIN_CALL: funkcja wtyczki PLUGIN_AUTH_USER_PASS_VERIFY nie powiodła się ze statusem 1: /usr/lib/openvpn/openvpn-auth-pam.so Błąd uwierzytelniania TLS: uwierzytelnianie nazwy użytkownika / hasła nie powiodło się dla elementu równorzędnego e-korzystanie z kontekstu SSL / TLS AUTH-PAM: INFORMACJE OGÓLNE: użytkownik „martin” nie mógł się uwierzytelnić: moduł jest nieznany
Problem wydaje się być między PAM a Google Authenticator.
Google wymienia problemy z innymi wtyczkami, ale tak naprawdę nie mogę znaleźć informacji dotyczących Google Authenticator.
źródło
libpam-google-authenticator
służy do uwierzytelniania za pomocą Google Authenticator w PAM. Nie jest to przydatne w OpenVPN, ponieważ używasz tam certyfikatów. Sugeruję przeczytanie o tym, czym jest PAM - zrozumiesz, że w twoim przypadku nie ma to nic wspólnego z OpenVPN.Odpowiedzi:
Ok, Google jest moim przyjacielem.
Ja to zrobiłem:
Dodaj to do Makefile, zaraz po licencji:
Następnie
Upewnij się również, że /home/username/.google_authenticator nie ma żadnych praw, z wyjątkiem praw do odczytu dla użytkownika, który będzie z niego korzystać.
Teraz muszę wprowadzić moją nazwę użytkownika, czyli moją lokalną nazwę użytkownika na serwerze (moje konto powłoki) jako moją nazwę użytkownika OpenVPN i 6-cyfrowy kod Google Authenticator jako hasło.
Teraz działa.
Dziękuję wszystkim za poświęcony czas :)
(Jak mogę oznaczyć ten post jako rozwiązany? Czy po prostu edytuję tytuł tematu?)
źródło
Jeśli chcesz tylko uwierzytelniania OTP dla OpenVPN, dostępna jest natywna wtyczka OTP OpenVPN. Jest kompatybilny z tajnymi kluczami Google Authenticator. Wszystkie sekrety są przechowywane w jednym pliku tekstowym i nie ma potrzeby konfigurowania PAM ani tworzenia katalogów użytkowników.
Sprawdź to: https://github.com/evgeny-gridasov/openvpn-otp
źródło