ระบบการจัดการส่วนกลางสำหรับกุญแจ SSH?


27

เรากำลังมองหาที่จะเปลี่ยนไปใช้การจัดการที่ใช้คีย์ของการเข้าสู่ระบบ SSH และสงสัยว่ามีระบบการจัดการคีย์ใดที่จะทำให้เราสามารถจัดการการเข้าถึงคีย์ส่วนกลางได้ทั่วโลก

ระบบควรอนุญาตให้ใช้คีย์การออกต่อไคลเอนต์และยกเลิกหากจำเป็นต้องอัปเดตคีย์เครื่องเซิร์ฟเวอร์ทันที

ไม่มีใครรู้เกี่ยวกับระบบดังกล่าวไม่ว่าจะเป็นเชิงพาณิชย์หรือโอเพนซอร์ส

หมายเหตุ: ในการชี้แจงเราจำเป็นต้องมีการจัดการที่สำคัญสำหรับคลาวด์เซิร์ฟเวอร์จำนวนมาก (เหมือน EC2) และผู้ใช้บริการจำนวนเล็กน้อย ฉันเดาว่า patch ของ LDAP + แนะนำด้านล่างอาจเป็นวิธีที่จะไป


7
เป็นฉันคนเดียวที่คิดว่า "คีย์ส่วนตัวและคลาวด์" เป็นเหมือน "ดื่มและขับรถ" ทั้งคู่ทำให้ความสนุกแยกจากกัน แต่ไม่เคยไปด้วยกัน
mailq

1
"Cloud" อาจเป็นคำที่ผิด - ดูเหมือนว่าสิ่งที่พวกเขาต้องการคือการตรวจสอบจากส่วนกลางด้วยความสม่ำเสมอทั่วโลก
voretaq7

สวัสดี ตรง - นั่นคือสิ่งที่เรากำลังมองหา
SyRenity

ฉันได้ต่อสู้กับปัญหานี้กับสภาพแวดล้อมไฮบริดของลูกค้าของฉัน นอกจากนี้ยังมีคำถามว่าจะเก็บ OPenLDAP หรืออินสแตนซ์ส่วนกลางไว้ที่ไหนในการปรับใช้ระบบคลาวด์ ฉันใช้ webmin ทุกอย่างเป็นเครื่องมือในการจัดการคีย์และตำราพ่อครัวเพื่อซิงค์คีย์ออกไปยังโหนด
Tom H

Userify ครอบคลุมสิ่งที่คุณกำลังมองหา (ดูserverfault.com/questions/647797/… )
Jamieson Becker

คำตอบ:


8

มีวิธีมากมายในการทำเช่นนี้ ที่เก็บข้อมูลคีย์ LDAP ได้รับการกล่าวถึงสองสามครั้งและฉันได้ทำไปแล้วและใช้งานได้เท่าที่ทำได้ LDAP มีความอยากรู้เรื่องการจัดการเป็นของตัวเองซึ่งจะต้องเรียนรู้บ้าง

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


วิธีการนี้เป็นวิธีที่ดีอย่างแน่นอนและเนื่องจาก Womble ชี้ให้เห็นว่ามีข้อได้เปรียบในการที่เซิร์ฟเวอร์คอยติดตามและใช้งาน (และเข้าถึงได้) ในกรณีที่ LDAP หยุดทำงาน - ระบบ LDAP ที่สำรองไว้ทุกระบบควร (ที่กล้าบอกว่าต้อง ) ผู้ใช้อย่างน้อยหนึ่งรายที่มีการกดปุ่มในลักษณะที่ Womble อธิบาย ข้อเสียคือคุณต้องทำการตั้งค่าคอนฟิกเพื่อยกเลิกการอนุญาตผู้ใช้ ไม่ใช่ปัญหาสำหรับ "บัญชีฉุกเฉิน" กับผู้ใช้ที่ได้รับอนุญาตเพียงไม่กี่คน ปัญหาที่ใหญ่กว่าสำหรับบัญชีจำนวนมาก :)
voretaq7

1
คุณต้องมีวิธีในการทริกเกอร์การกำหนดค่าจำนวนมากทำงานต่อไปดังนั้นจึงไม่ควรเป็นเรื่องใหญ่สำหรับการเปลี่ยนบัญชี
womble

ผมเห็นด้วย แต่น่าเสียดายที่ความต้องการทางธุรกิจ / ดอมไม่ได้: ความหวาดระแวงที่สถานที่ต่างๆ (เหมืองรวม) คำสั่งที่ผลักดันการตั้งค่าที่เกิดขึ้นในช่วงเวลาปิด แต่ใหม่พนักงาน / ออกจากพนักงานที่สามารถเกิดขึ้นได้ทุกเวลา: - /
voretaq7

1
ดังนั้นคุณมีความสุขที่จะทิ้งสิ่งต่าง ๆ ไว้สำหรับวันทำการเพียงเพราะคุณไม่สามารถเรียกใช้การกำหนดค่าในระหว่างวัน เพียงเพราะเป็นเรื่องปกติไม่ได้หมายความว่ามันจะไม่โง่
womble

2
สวัสดี ดังนั้นความคิดที่ดีควรใช้หุ่นเชิดเพื่อสิ่งนี้เป็นตัวอย่าง?
SyRenity

23

ผู้ใช้ควรสร้างคู่กุญแจ

ผู้ใช้เก็บส่วนบุคคลไว้ - คุณไม่ควรเห็นมัน หากคุณมีรหัสส่วนตัวของใครบางคนในแบบฟอร์มที่คุณสามารถอ่าน / ใช้งานได้คุณกำลังทำผิดด้านความปลอดภัย

ครึ่งสาธารณะจะมอบให้คุณ (ไม่ว่าจะเป็นกลไกแบบใดก็ตามที่คุณต้องการ: แบบฟอร์มเว็บ, อีเมล, การมอบให้กับฉันบนซีดี) เพื่อให้เป็นศูนย์กลาง แต่คุณต้องการ บางสถานที่เก็บกุญแจสาธารณะใน LDAP คนอื่น ๆ ดันauthorized_keysไฟล์โดยใช้ระบบการปรับใช้


ในสภาพแวดล้อมของฉันผู้ใช้ที่ต้องการเข้าถึงเชลล์มอบกุญแจสาธารณะให้ฉัน คีย์เหล่านี้จะมีการเพิ่มระบบ LDAP ของเราและsshdให้คำปรึกษากุญแจสาธารณะ (s) ที่ระบุไว้สำหรับผู้ใช้แต่ละคนในการตรวจสอบพวกเขาโดยวิธีการของแพทช์ LDAP คีย์สาธารณะ
เมื่อมีคนต้องการเพิ่มคีย์เพิ่มเติมหรือยกเลิกคีย์ที่มีอยู่พวกเขาจะแจ้งให้ผู้ดูแลระบบทราบและเราจะดูแลมัน ในที่สุดเมื่อเราปรับขนาดฉันจะใช้ระบบที่ให้ผู้คนหมุนกุญแจสาธารณะของพวกเขาเอง

แต่ละไซต์ของเรามีเซิร์ฟเวอร์ LDAP คู่หนึ่งซึ่งถูกซิงโครไนซ์กับต้นแบบของเราด้วยการจำลองแบบ LDAP ซึ่งทำให้ข้อมูลสอดคล้องกัน (และเข้าถึงได้) ในแต่ละตำแหน่ง


ทุกสิ่งที่ฉันอธิบายสามารถทำได้ด้วยซอฟต์แวร์โอเพ่นซอร์ส นอกจากนี้ยังมีผลิตภัณฑ์เชิงพาณิชย์ที่ทำในสิ่งเดียวกัน
คุณต้องทำการวิจัยตัวเลือกที่มีอยู่ให้ละเอียดยิ่งขึ้นและตัดสินใจว่าตัวเลือกใดที่เหมาะกับสภาพแวดล้อมของคุณที่สุด หากคุณมีคำถามเพิ่มเติม (เฉพาะเจาะจงมากขึ้น) เราอาจมีประโยชน์มากกว่านี้


ดังนั้นโดยทั่วไปคุณแนะนำให้ใช้โครงสร้างพื้นฐาน LDAP ด้วย OpenSSH ที่ได้รับการแก้ไขซึ่งจะทำงานกับ LDAP ได้หรือไม่ ขนาดนี้ใช้ในการผลิตได้ดีแค่ไหน? สามารถรองรับเครื่องจักรจำนวนมากได้หรือไม่? เราจำเป็นต้องสนับสนุนผู้ใช้บริการเพียงเล็กน้อยเท่านั้น
SyRenity

1
@SyRenity: LDAP รองรับการจำลองแบบและการทำคลัสเตอร์ดังนั้นจึงปรับขนาดได้ดีมาก
Hubert Kario

@SyRenity ในทางทฤษฎีคุณสามารถรองรับเครื่องได้ไม่ จำกัด จำนวนในสถานที่ไม่ จำกัด จำนวน (คิดว่า "การปรับใช้ Active Directory ขนาดใหญ่จริง ๆ " - AD นั้นเป็น LDAP ด้วยอุปกรณ์เสริมที่ทันสมัยบางอย่าง) สำหรับผู้ใช้บริการคำแนะนำของฉันคือสร้างมาตรฐานให้กับสภาพแวดล้อมของคุณและผลักมาตรฐาน/etc/passwdและ/etc/groupไฟล์ออก (อนุญาตให้เครื่องทำงานได้ตามปกติและบริการที่เกี่ยวข้องจะเริ่ม / เรียกใช้แม้ว่า LDAP จะไม่พร้อมใช้งาน)
voretaq7

@ voretaq7 ความหมายผู้ใช้บริการจะได้รับการจัดการแยกต่างหากจาก LDAP ผ่านการจัดการการกำหนดค่า?
SyRenity

@SyRenity ใช่ - และอื่น ๆ ที่สำคัญสามารถใช้ได้สำหรับการบริการที่ใช้พวกเขาหาก LDAP ลง วางแผนสำหรับความล้มเหลวหรือคุณจะประสบกับภัยพิบัติ
voretaq7

9

ไม่ควรสร้าง Keypairs ที่ใดก็ได้ แต่บนคอมพิวเตอร์ของผู้ใช้แต่ละคน ไพรเวตคีย์ถูกตั้งชื่อเช่นนี้ด้วยเหตุผล

ที่กล่าวว่าฉันสามารถดูกรณีการใช้งานสำหรับพื้นที่เก็บข้อมูลส่วนกลางของกุญแจสาธารณะของผู้ใช้ ทางเลือกหนึ่งคือการเก็บกุญแจสาธารณะใน OpenLDAP - OpenSSH เวอร์ชันล่าสุดสามารถอ่านคีย์จาก LDAP ได้


2
ตอนนี้คีย์สาธารณะของ LDAP เป็น mainline OpenSSH หรือไม่ ฉันรู้แค่แผ่นปะ LPK (ซึ่งฉันสามารถรับรองได้ - มันใช้งานได้ดี) +1 สำหรับการเก็บคีย์ส่วนตัวด้วย
voretaq7

@ voretaq7 ฉันเดาว่าฉันได้ยินมาว่ามันถูกรวมเข้ากับการฉีดยา แต่ฉันยังไม่ได้ยืนยันตัวเอง เราแชร์โฮมไดเรกทอรีผ่าน NFS เพื่อดูแลการแจกจ่ายหลักของเรา
EEAA

+1 ดีฉันไม่รู้ ที่จะช่วยฉันปัญหามากมาย นั่นคือตอนนี้ในรายการสิ่งที่ฉันต้องดู
Tom H

1

ฉันรู้ว่านี่เป็นคำถามที่เก่ากว่าเล็กน้อย แต่ Google ให้ผลตอบแทนสูงเมื่อมองหาสิ่งนี้

สำหรับพวกเราที่กำลังมองหาทางออกนอกเหนือจาก LDAP ฉันเพิ่งพบโครงการ "SKM": https://sites.google.com/site/jeromeboismartel/code-s-corner/ssh-key-management-with-skimp


1

มีโซลูชันเชิงพาณิชย์และโอเพ่นซอร์สมากมายเช่น Userify [1] (ที่ทำงานของฉัน) Universal Key Manager [2], SSH Key Box [3] ฯลฯ ขึ้นอยู่กับความต้องการของคุณและถ้าคุณเป็น กำลังมองหาบางสิ่งที่รวมศูนย์การจัดการในขณะที่ทำการกระจายอำนาจ (เพื่อให้เซิร์ฟเวอร์ของคุณไม่พึ่งพาหน่วยงานกลางในการเข้าสู่ระบบ ... ในกรณีนี้คุณอาจไม่สามารถลงชื่อเข้าใช้เซิร์ฟเวอร์ใด ๆ ของคุณได้หากพูดว่า เซิร์ฟเวอร์ LDAP ไม่ทำงาน!)

  1. https://userify.com

  2. https://www.ssh.com/products/universal-ssh-key-manager/

  3. https://www.sshkeybox.com

ดูเพิ่มเติมการอภิปรายเอียงนี้:

https://www.slant.co/topics/8010/~managers-for-ssh-keys

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