Ubuntu 12.04에서 OpenVPN 서버와 함께 Google OTP를 사용하는 방법 내 서버의 ovpn 구성에 플러그인을 추가 하고

Ubuntu 12.04에서 OpenVPN 시스템을 사용하고 있으며 보안을 강화하기 위해 Google OTP를 추가하고 싶습니다.

이것은 현재 openvpn 구성입니다.

데브 툰
프로토 udp
포트 1096
ca ubuserv04-ca.crt
인증서 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

(이것은 테스트 설정 일 뿐이며 특정 측면을 변경해야하지만 지금은 작동합니다.)

클라이언트에서 나는 가지고있다 :

데브 툰
고객
프로토 udp
원격 my.server.fqdn 1096
재시도 무한 재시도
ca ubuserv04-ca.crt
cert user1.crt
키 user1.key
동사 3

위의 설정은 오류없이 빠르고 안정적입니다.

Google OTP를 실행하기 위해 몇 가지 방법을 시도했지만 매번 해당 기사의 문제를 해결했습니다. 서버의 로컬 사용자 / 비밀번호 데이터베이스에 대해 인증하고 싶지 않습니다. 이미 설치 한 시스템과 Google OTP가 있습니다.

Google OTP가 실행 중입니다. 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
소스에서 컴파일하는 대신 apt로 Google OTP를 설치했습니다. 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 [성공 = 2 new_authtok_reqd = 완료 기본값 = 무시] pam_unix.so
계정 [성공 = 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이 dlopen (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 OTP 사이에있는 것 같습니다.

Google은 다른 플러그인의 문제를 나열하지만 실제로는 Google OTP와 관련된 정보를 찾을 수 없습니다.



답변

좋아, 구글은 내 친구 야.

나는 이걸했다:

# apt-get purge libpam-google-authenticator
# 다운로드 https://code.google.com/p/google-authenticator/downloads/list
# apt-get 설치 libpam-dev

라이센스 바로 다음에 이것을 Makefile에 추가하십시오.

LDFLAGS = "-lpam"

그때

# 만들기
# 설치하다
# 서비스 openvpn 재시작

또한 /home/username/.google_authenticator에 사용할 사용자에 대한 읽기 권한을 제외하고는 전혀 권한이 없는지 확인하십시오.

이제 서버의 로컬 사용자 이름 인 내 사용자 이름 (내 쉘 계정)을 OpenVPN 사용자 이름으로, Google OTP 6 자리 코드를 암호로 입력해야합니다.

이제 작동합니다.

시간 내 주셔서 감사합니다 🙂

(이 게시물을 해결 된 것으로 표시하려면 어떻게해야합니까? 주제 제목 만 편집합니까?)


답변

OpenVPN에 OTP 인증을 원할 경우 기본 OTP OpenVPN 플러그인을 사용할 수 있습니다. Google OTP 비밀 키와 호환됩니다. 모든 비밀은 단일 텍스트 파일로 저장되며 PAM을 구성하거나 사용자 디렉토리를 만들 필요가 없습니다.

확인하십시오 : https://github.com/evgeny-gridasov/openvpn-otp


답변