ฉันจะใช้ตัวสร้างรหัสผ่านสำหรับการตรวจสอบสิทธิ์สำหรับการเข้าสู่ระบบจากระยะไกลได้อย่างไร


55

ฉันต้องการเสริมสร้างการรับรองความถูกต้องของการเข้าสู่ระบบ SSH ของฉันโดยเพิ่มปัจจัยอื่น: อุปกรณ์ตัวสร้างรหัสผ่านหรือแอปพลิเคชันการสร้างรหัสผ่านบนโทรศัพท์มือถือของฉัน ตัวเลือกที่ชัดเจนเท่านั้นในการตั้งค่าเริ่มต้นคือรหัสผ่านคงที่และคู่กุญแจ ฉันจะทำสิ่งนี้ได้อย่างไร

(ถ้าฉันใช้รหัสผ่านรวมทั้งตัวสร้างรหัสผ่านนี่เป็นการตรวจสอบความถูกต้องสองปัจจัย (2FA): รหัสผ่านคือ "สิ่งที่ฉันรู้" และรหัสผ่านคือ "สิ่งที่ฉันมี")

คำตอบ:


49

วิธีหนึ่งที่จะทำเช่นนี้คือมีเครื่องมือที่ให้บริการโดย Google ที่เรียกว่าGoogle Authenticator

  1. ติดตั้งlibpam-google-authenticator ติดตั้ง libpam-google-authenticator

    • หรือเพียงแค่ sudo apt-get install libpam-google-authenticator
  2. แก้ไข/etc/pam.d/sshdเพื่อรวมโมดูล:

    • sudoedit /etc/pam.d/sshd
    • จากนั้นใส่บรรทัดนี้ที่ด้านบนของไฟล์และบันทึก:

      auth required pam_google_authenticator.so
      
  3. แก้ไขไฟล์กำหนดค่า SSH ของคุณเพื่อเปิดการท้าทาย:

    • sudoedit /etc/ssh/sshd_config จากนั้นเปลี่ยนการรับรองความถูกต้องตอบกลับจาก:

      ChallengeResponseAuthentication no 
      

      ไปยัง

      ChallengeResponseAuthentication yes
      

      จากนั้นให้บันทึกไฟล์

  4. sudo restart ssh เพื่อรีสตาร์ท SSH

  5. วิ่ง google-authenticator

    • สิ่งนี้จะให้รหัสลับรหัสยืนยันและรหัสลับฉุกเฉินแก่คุณ นอกจากนี้ยังจะถามคำถามที่ จำกัด อัตรา

แอปพลิเคชันมือถือ:

คุณจะต้องมีรหัสเหล่านี้เพื่อรับรหัสการรับรองความถูกต้องบนอุปกรณ์อื่น

ที่เกี่ยวข้องและมีประโยชน์:

โปรดทราบว่าการรวมรหัสผ่านกับรหัสผ่านแบบใช้ครั้งเดียวเป็นการตรวจสอบความถูกต้องด้วยสองปัจจัย: มันรวม“ สิ่งที่คุณรู้” (รหัสผ่าน) กับ“ สิ่งที่คุณมี” (อุปกรณ์ตัวสร้างรหัสผ่าน) ในทางกลับกันถ้าคุณรวมรหัสผ่านแบบใช้ครั้งเดียวกับคู่คีย์ SSH นั่นคือทั้งหมดที่เกี่ยวกับ "สิ่งที่คุณมี" เมื่อปัจจัยการตรวจสอบความถูกต้องสองประเภทเดียวกันคุณไม่มีการตรวจสอบสิทธิ์แบบสองปัจจัย บางครั้งสิ่งนี้เรียกว่า“ การพิสูจน์ตัวตนแบบตัวต่อตัว”


12

Google Authenticator นั้นใช้ได้กับเซิร์ฟเวอร์ส่วนบุคคลของคุณ แต่คุณอาจพบว่ามันไม่สอดคล้องกับโครงสร้างพื้นฐานข้อมูลประจำตัวที่มีอยู่ของคุณ หากคุณต้องการสำรวจตัวเลือกอื่น ๆ ลองนึกถึงการใช้ RADIUS เป็นโปรโตคอลการตรวจสอบสิทธิ์และปลั๊กอิน pam-radius ระบบการตรวจสอบความถูกต้องสองปัจจัยที่มุ่งเน้นองค์กรทั้งหมดสนับสนุนรัศมี เราได้เขียนเอกสารเกี่ยวกับวิธีการเพิ่มWikid ตรวจสอบสองปัจจัยผ่าน Pam-รัศมีอูบุนตู

การใช้รัศมีช่วยให้คุณสามารถผูกระบบอื่นนอกเหนือจาก SSH ไปยังเซิร์ฟเวอร์การตรวจสอบความถูกต้องเดียวกัน คุณยังสามารถกำหนดเส้นทางการตรวจสอบสิทธิ์ผ่าน freeradius ไปยัง LDAP จากนั้นไปยังเซิร์ฟเวอร์ 2FA ของคุณเพื่อแยกการอนุญาตจากการรับรองความถูกต้อง คุณสามารถทำเช่นเดียวกันกับ AD btw


1

ฉันขอให้ทุกคนใส่บรรทัดต่อไปนี้ที่ด้านบนและไม่อยู่ที่ด้านล่างของ/etc/pam.d/sshdตามที่อธิบายไว้ข้างต้นก่อนหน้านี้ (ขณะนี้แก้ไข):

auth required pam_google_authenticator.so

มิฉะนั้นระบบของคุณจะยังคงเปิดให้โจมตีอย่างดุเดือดในรหัสผ่านของคุณซึ่งประกอบด้วยส่วนแรกของการตรวจสอบสิทธิ์แบบสองปัจจัย: รหัสผ่านของคุณ

คุณจะถูกถามก่อนถึงรหัสยืนยันของคุณจากนั้นรหัสผ่านของคุณ (ไม่ว่ารหัสนั้นจะถูกต้องหรือไม่ก็ตาม) หากมีข้อผิดพลาดคุณต้องป้อนทั้งสองอีกครั้ง คุณสามารถกำหนดค่าด้วยวิธีอื่น ๆ ได้ แต่เป็นการเปลี่ยนแปลงที่ยากขึ้นเล็กน้อยที่จะอธิบายในการกำหนดค่าเริ่มต้นปัจจุบันของ Ubuntu (15.04) sshd

สำหรับรายละเอียดว่าทำไมจึงต้องตรวจสอบปัญหานี้:

https://github.com/google/google-authenticator/issues/514

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