Tôi có một hệ thống OpenVPN đang hoạt động trên Ubuntu 12.04 và tôi muốn thêm Google Authenticator để bảo mật hơn.
Đây là cấu hình openvpn hiện tại của tôi:
nhà phát triển proto udp cổng 1096 ca ubuserv04-ca.crt chứng nhận ubuserv04.crt khóa ubuserv04.key dh dh1024.pem máy chủ 10.10.0.0 255.255.255.0 đẩy "redirect-gateway def1" đẩy "tuyến 192.168.0.0 255.255.255.0" đẩy "tùy chọn dhcp DNS 8.8.8.8" đẩy "tùy chọn dhcp DNS 8.8.4.4" Phao nổi đăng nhập /var/log/openvpn-otp-1096-status.log
(Đây chỉ là một thiết lập thử nghiệm, tôi biết tôi nên thay đổi một số khía cạnh của nó nhưng hiện tại nó hoạt động.)
Trên máy khách tôi có:
nhà phát triển khách hàng proto udp từ xa my.server.fqdn 1096 độ phân giải-thử lại vô hạn ca ubuserv04-ca.crt chứng nhận user1.crt khóa user1.key động từ 3
Các thiết lập trên hoạt động tốt: không có lỗi, nhanh, ổn định.
Tôi đã thử một vài cách để chạy Google Authenticator nhưng cuối cùng tôi vẫn khắc phục sự cố bên lề trong các bài viết đó. Tôi không muốn xác thực với cơ sở dữ liệu mật khẩu / người dùng cục bộ của máy chủ, chỉ là hệ thống tôi đã có sẵn cùng với Google Authenticator.
Tôi có Google Authenticator đang chạy; Tôi đã cài đặt nó bằng cách sử dụng apt-get install libpam-google-Authenticator và đã sử dụng nó trước đó để xác thực các phiên ssh. Điều đó đã làm việc tốt nhưng tôi đã vô hiệu hóa nó bởi vì nó chỉ là một máy chủ thử nghiệm và thử nghiệm cụ thể đó đã kết thúc.
Hãy cụ thể. Tôi biết tôi nên thêm một plugin vào cấu hình ovpn của máy chủ của mình và tôi nên thêm một cái gì đó vào /etc/pam.d/openvpn nhưng chính xác thì sao?
Mọi sự trợ giúp sẽ rất được trân trọng!
/thông tin thêm
Tôi đã theo dõi bài viết này: http://www.howtoforge.com/securing-openvpn-with-a-one-time-password-otp-on-ub Ubuntu Thay vì biên dịch từ nguồn tôi đã cài đặt Google Authenticator với apt -get cài đặt libpam-google-xác thực. Tôi cũng đã đọc, nhưng không được sử dụng trong trường hợp này, các bài viết này: http://www.howtogeek.com/121650/how-to-secure-ssh-with-google-authenticators-two-factor-authentication/ và http : //zcentric.com/2012/10/09/google-authenticator-with-openvpn-for-2-factor-auth/ . Và tôi đã đọc về PAM, như được đề xuất;)
Bây giờ, đây là một số phát triển thú vị.
/etc/pam.d/openvpn có điều này:
tài khoản [thành công = 2 new_authtok_Vqd = thực hiện mặc định = bỏ qua] pam_unix.so tài khoản [thành công = 1 new_authtok_Vqd = thực hiện mặc định = bỏ qua] pam_winbind.so tài khoản cần thiết pam_deny.so yêu cầu tài khoản pam_permit.so auth yêu cầu pam_google_authenticator.so
Theo cách làm, tôi đã sao chép bản gốc từ /etc/pam.d/common-account và thêm dòng cuối cùng. Bây giờ nếu tôi nhận xét dòng cuối cùng, kết nối OpenVPN thành công. Tuy nhiên, nếu dòng cuối cùng không được nhận xét, /var/log/auth.log sẽ ghi lại điều này:
PAM không thể dlopen (pam_google_authenticator.so): /lib/security/pam_google_authenticator.so: ký hiệu không xác định: pam_get_item PAM thêm mô-đun bị lỗi: pam_google_authenticator.so
và /var/log/openvpn-otp-1096.log ghi nhật ký này:
PLUGIN_CALL: chức năng plugin PLUGIN_AUTH_USER_PASS_VERIFY không thành công với trạng thái 1: /usr/lib/openvpn/openvpn-auth-pam.so Lỗi xác thực TLS: Xác thực tên người dùng / mật khẩu không thành công cho ngang hàng sử dụng bối cảnh SSL / TLS AUTH-PAM: BACKGROUND: người dùng 'martin' không xác thực được: Mô-đun không xác định
Vấn đề dường như là giữa PAM và Google Authenticator.
Google liệt kê các vấn đề với các plugin khác nhưng tôi thực sự không thể tìm thấy thông tin liên quan đến Google Authenticator.
libpam-google-authenticator
là để xác thực bằng Google Authenticator trong PAM. Điều này không được sử dụng trong OpenVPN vì bạn đang sử dụng chứng chỉ ở đó. Tôi đề nghị bạn đọc về PAM là gì - bạn sẽ hiểu rằng nó không liên quan gì đến OpenVPN trong trường hợp của bạn.