У меня есть работающая система OpenVPN в Ubuntu 12.04, и я хотел бы добавить Google Authenticator для дополнительной безопасности.
Это моя текущая конфигурация openvpn:
dev tun proto udp port 1096 ca ubuserv04-ca.crt cert ubuserv04.crt key ubuserv04.key dh dh1024.pem server 10.10.0.0 255.255.255.0 push "redirect-gateway def1" push "route 192.168.0.0 255.255.255.0" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" float log-append /var/log/openvpn-otp-1096-status.log
(Это всего лишь тестовая настройка, я знаю, что я должен изменить некоторые ее аспекты, но пока это работает.)
Вкл. у меня есть клиент:
dev tun client proto udp remote my.server.fqdn 1096 resolv-retry infinite ca ubuserv04-ca.crt cert user1.crt key user1.key verb 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-get install 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=done default=ignore] pam_unix.so account [success=1 new_authtok_reqd=done default=ignore] pam_winbind.so account requisite pam_deny.so account required pam_permit.so auth required pam_google_authenticator.so
Согласно инструкции, я скопировал оригинал из /etc/pam.d/common-account и добавил последнюю строку. Теперь, если я прокомментирую последнюю строку, соединение OpenVPN будет успешным. Если последняя строка не закомментирована, то /var/log/auth.log записывает это:
PAM unable to dlopen(pam_google_authenticator.so): /lib/security/pam_google_authenticator.so: undefined symbol: pam_get_item PAM adding faulty module: pam_google_authenticator.so
и /var/log/openvpn-otp-1096.log записывает это:
[ 114]Кажется, проблема между PAM и Google Authenticator.
Google перечисляет проблемы с другими плагинами, но я не могу найти информацию, касающуюся Google Authenticator, в частности.
Если вы просто хотите OTP-аутентификацию для OpenVPN, есть собственный плагин OTP OpenVPN. Он совместим с секретными ключами Google Authenticator. Все секреты хранятся в одном текстовом файле, и нет необходимости настраивать PAM или создавать пользовательские каталоги.
Проверьте это: https://github.com/evgeny-gridasov/openvpn-otp
Хорошо, Google мой друг.
Я сделал это:
# apt-get purge libpam-google-authenticator # download https://code.google.com/p/google-authenticator/downloads/list # apt-get install libpam-dev
Добавьте это в Makefile, сразу после лицензии:
LDFLAGS="-lpam"
Затем
# make # make install # service openvpn restart
Также убедитесь, что / home / username / .google_authenticator не имеет никаких прав, кроме прав на чтение для пользователя, который будет его использовать.
Теперь мне нужно ввести мое имя пользователя, то есть локальное имя пользователя на сервере (мою учетную запись оболочки), в качестве моего имени пользователя OpenVPN и 6-значный код Google Authenticator в качестве пароля.
Теперь это работает.
Спасибо всем за потраченное время:)
(Как я могу пометить этот пост как решенный? Я просто редактирую заголовок темы?)