ข้อ จำกัด ssh สำหรับการตรวจสอบผู้ใช้


3

RHEL 6.8, ฉันมีผู้ใช้ที่ได้รับการรับรองความถูกต้องแบบโลคัลและไม่แน่ใจว่าผู้ใช้นั้นมีการตั้งค่าการเข้าสู่ระบบโดยใช้คีย์จากโหนดอื่นเพื่อเชื่อมต่อกับโหนดที่มีปัญหา

ฉันกำลังคิดที่จะสร้างคีย์ ssh ใหม่สำหรับผู้ใช้เพื่อป้องกันไม่ให้เขาเข้าสู่ระบบโดยใช้คีย์การตั้งค่าก่อนหน้านี้

ฉันเข้าถึง "รูท" ไปยังโหนด อะไรคือวิธีที่ดีที่สุดที่จะส่งต่อเพื่อ จำกัด การเข้าสู่ระบบด้วยคีย์ซึ่งจะได้รับการตั้งค่าไว้ แต่เพื่อรักษาบัญชีเดิมสำหรับบริการอื่น ๆ ที่เราใช้บัญชีในปัจจุบัน

คำตอบ:


2

โดยค่าเริ่มต้นรายการของคีย์ที่ผู้ใช้สามารถใช้เพื่อเข้าสู่โหนดใด ๆ จะถูกเก็บไว้ใน$HOME/.ssh/authorized_keysโหนดที่ถูกเข้าสู่ระบบ

ไพรเวตคีย์ที่ผู้ใช้ใช้เพื่อทำการเชื่อมต่อจะถูกเก็บไว้ในโหนดซึ่งมีต้นกำเนิดการเชื่อมต่อ

หากคุณต้องการป้องกันไม่ให้ผู้ใช้ล็อกอินโดยใช้รหัสเฉพาะคุณสามารถลบออกจากauthorized_keysไฟล์ของพวกเขาได้ แต่พึงระวังว่าผู้ใช้สามารถนำกลับมาใช้ใหม่ได้ตลอดเวลาหากพวกเขาสามารถล็อกอินเข้าสู่โหนดนั้นหรือเข้าถึงไฟล์นั้นได้ นอกจากนี้คุณยังสามารถเปลี่ยนเส้นทางไปยังแฟ้มคีย์ที่ได้รับอนุญาตโดยการตั้งค่าAuthorizedKeysFileในการ/etc/ssh/sshd_configไปยังไฟล์ที่ผู้ใช้ไม่สามารถเข้าถึง แต่โปรดทราบว่าสิ่งนี้จะมีผลกับผู้ใช้ทุกคน

สำหรับการพิจารณาว่าผู้ใช้รับรองความถูกต้องข้อมูลนั้นจะอยู่ในล็อกไฟล์ของ/var/log/secureคุณ ตัวอย่างเช่น:

# grep Accepted /var/log/secure
Nov 26 03:13:46 www sshd[13925]: Accepted password for user1 from 203.0.113.242 port 3481 ssh2
Nov 26 03:20:22 www sshd[14216]: Accepted publickey for dev2 from 198.51.100.21 port 64386 ssh2: RSA SHA256:...omitted...

ไฟล์ "$ HOME / .ssh / authorized_keys" เป็นเพียงข้อตกลง - พา ธ ถูกกำหนดไว้ใน sshd_config ตามที่อธิบายโดย Patrick - ดังนั้นการเปลี่ยนสิ่งนี้เป็นตำแหน่งที่ผู้ใช้ไม่สามารถเขียนเพื่อป้องกันพวกเขาโดยใช้คีย์ส่วนตัวในขณะที่ยังคงอนุญาต ควบคุมว่าใครสามารถใช้กุญแจได้ นอกจากนี้ยังเป็นไปได้ที่จะปิดการใช้งานคีย์ ssh สำหรับผู้ใช้ทุกคนในไฟล์ปรับแต่ง - แต่นั่นไม่น่าจะเป็นความคิดที่ดี
symcbean

@symcbean ขอบคุณสำหรับข้อมูล ฉันได้รวมสิ่งนี้ไว้ในคำตอบ
Michael Hampton

1

หากคุณต้องการควบคุมคีย์ที่จะใช้ในการเข้าสู่ระบบคุณควรควบคุมไฟล์ที่แสดงคีย์ที่ได้รับอนุญาตดังนั้นคุณไม่ควรให้ผู้ใช้ควบคุมมัน แทนที่จะทำการแมปกับไฟล์ในไดเรกทอรีผู้ใช้คุณควรใช้รายการการกำหนดค่า ssh ที่เหมาะสมที่จะทำงานเช่น:

  • AuthorizedKeysCommand : โปรแกรมที่ทำหน้าที่เป็นตัวกรองของคีย์ที่จะใช้
  • AuthorizedKeysFile : ไฟล์ที่จะได้รับกุญแจที่ได้รับอนุญาตให้ใช้คุณสามารถระบุพา ธ สัมบูรณ์นอกไดเรกทอรีที่ผู้ใช้ควบคุม

นอกจากนี้ไม่เข้าใจกรณีการใช้งาน 100% ของคุณ แต่คุณอาจดูใบรับรองแทนคีย์เนื่องจากด้วยใบรับรองคุณสามารถระบุระยะเวลาที่ใช้ได้และตรวจสอบให้แน่ใจว่าข้อมูลรับรองบางอย่างจะหมดอายุ ดูตัวเลือกในการ-Vssh-keygen


0

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

ขั้นตอน

  1. ลบคีย์ใด ๆ ที่คุณไม่ต้องการให้ผู้ใช้กับผู้ใช้จากไฟล์ ~ / .ssh / authorized_keys ของผู้ใช้
  2. เพิ่มพับลิกคีย์ใหม่ที่คุณสร้างลงในไฟล์
  3. chmod ไฟล์ authorized_keys เป็น 400 (เจ้าของอ่านได้เท่านั้น)
  4. chattr + i ไฟล์ authorized_keys (ทำให้ไม่เปลี่ยนรูปดังนั้นผู้ใช้ไม่สามารถเปลี่ยนสิทธิ์กลับไปแก้ไขได้)
  5. chattr + i ไดเรกทอรี. ssh

เช่นสมมติว่าชื่อผู้ใช้คือ "โฮแกน" และเข้าสู่ระบบในฐานะรูท:

#cd ~hogan/.ssh
#vim authorized_keys
[ do your edits and save ] 
#chmod 400 authorized_keys
#chattr +i authorized_keys
#cd ..
#chattr +i .ssh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.