У меня есть работающая система 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 в вашем случае.Ответы:
Хорошо, Google мой друг.
Я сделал это:
Добавьте это в Makefile, сразу после лицензии:
затем
Кроме того, убедитесь, что /home/username/.google_authenticator не имеет никаких прав, кроме прав на чтение для пользователя, который будет его использовать.
Теперь мне нужно ввести свое имя пользователя, то есть локальное имя пользователя на сервере (мою учетную запись оболочки), в качестве имени пользователя OpenVPN и 6-значный код Google Authenticator в качестве пароля.
Теперь это работает.
Спасибо всем за ваше время :)
(Как я могу пометить этот пост как решенный? Могу ли я просто изменить заголовок темы?)
источник
Если вы просто хотите OTP-аутентификацию для OpenVPN, есть собственный плагин OTP OpenVPN. Он совместим с секретными ключами Google Authenticator. Все секреты хранятся в одном текстовом файле, и нет необходимости настраивать PAM или создавать пользовательские каталоги.
Проверьте это: https://github.com/evgeny-gridasov/openvpn-otp
источник