การรับรองความถูกต้อง SSH สองตัวสำหรับที่อยู่ภายนอกเท่านั้น


11

ฉันมีเซิร์ฟเวอร์ Ubuntu ที่มีทั้งส่วนตัวภายใน IP และ IP สาธารณะ ฉันต้องการตั้งค่าการรับรองความถูกต้องสองปัจจัยสำหรับ SSH ในด้านสาธารณะ เป็นไปได้ไหม ฉันวางแผนที่จะใช้ Google Authenticator แต่ฉันก็เปิดรับแนวคิดใหม่ ๆ เช่นกัน


สำหรับข้อมูลเพิ่มเติมโปรดดูunix.stackexchange.com/questions/388384/…
FarO

คำตอบ:


15

pam_access.soใช่คุณสามารถทำเช่นนี้กับ สูตรนี้นำมาจากวิกิสำหรับ Google Authenticator :

สูตร PAM ที่มีประโยชน์คืออนุญาตให้ข้ามการตรวจสอบสิทธิ์แบบสองปัจจัยเมื่อการเชื่อมต่อมีต้นกำเนิดมาจากแหล่งที่มาที่แน่นอน PAM นี้รองรับแล้ว ตัวอย่างเช่นโมดูล pam_access สามารถใช้ในการตรวจสอบแหล่งที่มากับเครือข่ายย่อยท้องถิ่น:

# skip one-time password if logging in from the local network
auth [success=1 default=ignore] pam_access.so accessfile=/etc/security/access-local.conf
auth       required     pam_google_authenticator.so

ในกรณีนี้ access-local.conf ดูเหมือนว่า:

# only allow from local IP range
+ : ALL : 10.0.0.0/24
+ : ALL : LOCAL
- : ALL : ALL

ดังนั้นความพยายามในการเข้าสู่ระบบจาก 10.0.0.0/24 จะไม่ต้องมีการตรวจสอบสองปัจจัย


1
นั่นคือสิ่งที่ฉันกำลังมองหา ไม่แน่ใจว่าทำไมฉันไม่เห็นมันก่อนหน้านี้ ขอบคุณ!
Brett F.

4
ไมเคิลแฮมป์ตันขอบคุณตัวอย่าง แต่นั่นไม่ได้ผลสำหรับฉันเพราะฉันยังคงได้รับข้อผิดพลาดการอนุญาตถูกปฏิเสธ (แป้นพิมพ์แบบโต้ตอบ) ฉันคิดว่ามันออกมาเพราะผมใช้ในของฉันAuthenticationMethods publickey,keyboard-interactive /etc/ssh/sshd_configดังนั้นฉันจึงเปลี่ยนสิ่งต่อไปนี้เพื่อแก้ไข:auth [success=done default=ignore] pam_access.so accessfile=/etc/security/access-local.conf auth optional pam_google_authenticator.so nullok
Jeremy Laird

@ JeremyLaird บรรทัดเหล่านั้นถูก munged .. บรรทัดใหม่อยู่ที่ไหน
shadowbq
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.