У меня есть работающая система OpenVPN в Ubuntu 12.04, и я хотел бы добавить Google Authenticator для дополнительной безопасности.
Это мой текущий конфигурационный файл openvpn:
Dev Tun прото удп порт 1096 ca ubuserv04-ca.crt cert ubuserv04.crt ключ ubuserv04.key dh dh1024.pem сервер 10.10.0.0 255.255.255.0 нажать "redirect-gateway def1" нажать «маршрут 192.168.0.0 255.255.255.0» нажмите "dhcp-option DNS 8.8.8.8" нажмите "dhcp-option DNS 8.8.4.4" поплавок log-append /var/log/openvpn-otp-1096-status.log
(Это всего лишь тестовая настройка, я знаю, что должен изменить некоторые аспекты, но пока это работает.)
На клиенте у меня есть:
Dev Tun клиент прото удп удаленный my.server.fqdn 1096 разрешить-повторить бесконечный ca ubuserv04-ca.crt cert user1.crt ключ user1.key глагол 3
Вышеуказанная настройка работает отлично: без ошибок, быстро, стабильно.
Я испробовал несколько инструкций по запуску Google Authenticator, но каждый раз сталкиваюсь с проблемами в этих статьях. Я не хочу проходить аутентификацию на локальной базе данных пользователей и паролей, а только на той системе, которая у меня уже есть, плюс Google Authenticator.
У меня запущен Google Authenticator; Я установил его с помощью apt-get install libpam-google-authenticator и использовал его ранее для аутентификации сессий ssh. Это работало нормально, но теперь я отключил это, потому что это всего лишь тестовый сервер, и этот конкретный тест завершен.
Пожалуйста, будьте конкретны. Я знаю, что должен добавить плагин в конфигурацию ovpn моего сервера и что я должен добавить что-то в /etc/pam.d/openvpn, но что именно?
Любая помощь будет принята с благодарностью!
/ дополнительная информация
Я следил за этой статьей: http://www.howtoforge.com/securing-openvpn-with-a-one-time-password-otp-on-ubuntu Вместо компиляции из источника я установил Google Authenticator с apt -установите libpam-google-authenticator. Я также прочитал, но не использовал в этом случае эти статьи: http://www.howtogeek.com/121650/how-to-secure-ssh-with-google-authenticators-two-factor-authentication/ и http : //zcentric.com/2012/10/09/google-authenticator-with-openvpn-for-2-factor-auth/ . И я прочитал на PAM, как и предлагалось;)
Теперь вот некоторые интересные разработки.
/etc/pam.d/openvpn имеет это:
account [success = 2 new_authtok_reqd = сделано по умолчанию = игнорировать] pam_unix.so account [success = 1 new_authtok_reqd = сделано по умолчанию = игнорировать] pam_winbind.so реквизиты учетной записи pam_deny.so требуется учетная запись pam_permit.so требуется авторизация pam_google_authenticator.so
Согласно инструкции, я скопировал оригинал из /etc/pam.d/common-account и добавил последнюю строку. Теперь, если я прокомментирую последнюю строку, соединение OpenVPN будет успешным. Однако, если последняя строка не закомментирована, /var/log/auth.log записывает это:
PAM не может получить ответ (pam_google_authenticator.so): /lib/security/pam_google_authenticator.so: неопределенный символ: pam_get_item PAM добавление неисправного модуля: pam_google_authenticator.so
и /var/log/openvpn-otp-1096.log регистрирует это:
PLUGIN_CALL: функция плагина PLUGIN_AUTH_USER_PASS_VERIFY завершилась неудачно со статусом 1: /usr/lib/openvpn/openvpn-auth-pam.so Ошибка аутентификации TLS: не удалось подтвердить имя пользователя / пароль аутентификации Электронное использование контекста SSL / TLS AUTH-PAM: ФОН: пользователь 'martin' не смог аутентифицироваться: модуль неизвестен
Кажется, проблема между PAM и Google Authenticator.
Google перечисляет проблемы с другими плагинами, но я не могу найти информацию о Google Authenticator специально.
libpam-google-authenticator
для аутентификации с помощью Google Authenticator в PAM. Это бесполезно в OpenVPN, так как вы используете там сертификаты. Я предлагаю вам прочитать о том, что такое PAM - вы поймете, что это не имеет ничего общего с OpenVPN в вашем случае.