ฉันมีระบบ OpenVPN ที่ทำงานบน Ubuntu 12.04 และฉันต้องการเพิ่ม Google Authenticator เพื่อความปลอดภัยเป็นพิเศษ
นี่คือการกำหนดค่า openvpn ปัจจุบันของฉัน:
dev tun proto 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
(นี่เป็นเพียงการตั้งค่าการทดสอบฉันรู้ว่าฉันควรเปลี่ยนบางแง่มุมของมัน แต่ตอนนี้ใช้งานได้ตอนนี้)
เมื่อลูกค้ามี:
dev tun ลูกค้า proto udp remote my.server.fqdn 1096 resolv-retry อนันต์ ca ubuserv04-ca.crt ใบรับรอง 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 ด้วยฉลาด - รับติดตั้ง libpam-google-authenticator ฉันยังอ่าน แต่ไม่ได้ใช้ในกรณีนี้บทความเหล่านี้: http://www.howtogeek.com/121650/how-to-secure-ssh-with-google-authenticators-two-factor-authentication/และhttp : และฉันได้อ่าน PAM ตามที่แนะนำแล้ว)
ตอนนี้ที่นี่มีการพัฒนาที่น่าสนใจ
/etc/pam.d/openvpn มีสิ่งนี้:
บัญชี [สำเร็จ = 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 Auth: การตรวจสอบชื่อผู้ใช้ / รหัสผ่านรับรองความถูกต้องล้มเหลวสำหรับเพียร์ บริบท e-using SSL / TLS AUTH-PAM: พื้นหลัง: ผู้ใช้ 'มาร์ติน' ล้มเหลวในการตรวจสอบ: โมดูลไม่เป็นที่รู้จัก
ดูเหมือนว่าปัญหาระหว่าง PAM กับ Google Authenticator
Google แสดงปัญหาเกี่ยวกับปลั๊กอินอื่น ๆ แต่ฉันไม่พบข้อมูลเกี่ยวกับ Google Authenticator โดยเฉพาะ
libpam-google-authenticator
ไงก็ตามสำหรับการตรวจสอบโดยใช้ Google Authenticator ใน PAM สิ่งนี้ไม่มีประโยชน์ใน OpenVPN เนื่องจากคุณใช้ใบรับรองอยู่ที่นั่น ฉันแนะนำให้คุณอ่านว่า PAM คืออะไร - คุณจะเข้าใจว่ามันไม่มีส่วนเกี่ยวข้องกับ OpenVPN ในกรณีของคุณ