เหตุใดจึงควรปิดใช้งานการเข้าถึงรูทสำหรับ ssh ฉันมักจะได้ยินว่าเป็นเพราะเหตุผลด้านความปลอดภัย แต่ฉันไม่เข้าใจ อะไรคือสิ่งที่แตกต่างจากการล็อกอินที่ไม่ใช่รูทsudo su -
? วิธีที่ต้องการในการจัดการงานที่ต้องการการอนุญาตพิเศษคืออะไร
ขอบคุณ
โทมัส
เหตุใดจึงควรปิดใช้งานการเข้าถึงรูทสำหรับ ssh ฉันมักจะได้ยินว่าเป็นเพราะเหตุผลด้านความปลอดภัย แต่ฉันไม่เข้าใจ อะไรคือสิ่งที่แตกต่างจากการล็อกอินที่ไม่ใช่รูทsudo su -
? วิธีที่ต้องการในการจัดการงานที่ต้องการการอนุญาตพิเศษคืออะไร
ขอบคุณ
โทมัส
คำตอบ:
Sudo เป็นวิธีที่ต้องการเมื่อคุณต้องการมอบหมายงานผู้ดูแลระบบเนื่องจากความสามารถในการตรวจสอบและความละเอียดที่หลากหลาย Sudo อนุญาตให้บันทึกคำสั่งทั้งหมดและอนุญาตให้ผู้ดูแลระบบตั้งค่าโปรไฟล์ sudo ที่แตกต่างกันสำหรับบุคคลหรือกลุ่ม
การเข้าถึง su หรือ root เป็นทั้งหมดหรือไม่มีอะไรเลย
sudo -s
sudo bash
นอกจากว่าคุณกำลังพูดถึงการ จำกัด ชุดคำสั่ง/etc/sudoers
ซึ่งฉันไม่เคยเห็นใช้งานในสภาพแวดล้อมการผลิตที่ใช้ sudo โต้ตอบ เมื่อเปิดใช้งาน sudo ซอฟต์แวร์ที่เป็นอันตราย (เช่นดำเนินการโดยการพิมพ์make
หรือpython setup.py
ในพื้นที่เก็บข้อมูลแบบสุ่มที่คุณเพิ่งโคลนจาก GitHub) มีสิทธิ์รูท เปรียบเทียบกับสถานการณ์ที่ปิดใช้งาน sudo และแทนที่จะใช้การเชื่อมต่อ SSH แยกต่างหากสำหรับการดำเนินการคำสั่งเป็นรูท
รูทเป็นบัญชีเดียวที่รับประกันว่าเปิดใช้งานและเปิดใช้งานบนเครื่องยูนิกซ์ทุกเครื่องดังนั้นจึงไม่มีเกมง่ายๆที่จะเลือกมันเพื่อพยายามบังคับใช้รหัสผ่าน หากไม่มีเครื่องมือภายนอก (เครื่องห่อหุ้มที่ฆ่าเครื่องสแกนที่เห็นได้ชัดอุปกรณ์ป้องกันการบุกรุก) เป็นเพียงเรื่องของเวลาก่อนที่รหัสผ่านจะถูกค้นพบ แม้ว่าจะมีเครื่องมือภายนอกที่ป้องกันพฤติกรรมแบบนี้ แต่ก็ยังเป็นความคิดที่ดีที่จะบังคับให้ผู้ใช้ที่เข้ามาลงชื่อเข้าใช้ในฐานะผู้ใช้ทั่วไปแล้ว su / sudo / pfexec จนถึง priv ที่ได้รับการปรับปรุง ใช่มันเป็นขั้นตอนพิเศษและนั่นหมายความว่าคุณจะต้องสร้างบัญชีผู้ใช้บนเครื่องที่แชร์ระหว่างผู้ใช้รูท แต่มันเป็นอุปสรรคอีกอย่างหนึ่งระหว่างผู้โจมตีและผู้ควบคุมกล่องที่ไม่ จำกัด
ความแตกต่างที่สำคัญคือผู้โจมตีต้องเดาชื่อผู้ใช้ด้วย หากคุณให้รูทเข้าสู่ระบบเขาจะต้องเดารหัสผ่าน
นอกจากนี้เขายังสามารถปลอมแปลงข้อมูลเข้าสู่ระบบของผู้ใช้ที่ได้รับคีย์ ssh หรือส่งข้อมูลโดยใช้วิธี man-in-the-middle และเขาอาจเข้าสู่ระบบโดยไม่ต้องพิมพ์รหัสผ่าน แต่ถ้าเขาเข้าสู่ระบบในฐานะผู้ใช้เขาจะต้อง sudo-ize คำสั่งและทำให้เขาถูกบังคับให้พิมพ์รหัสผ่านด้วยตนเอง หากเขาเข้าสู่ระบบในฐานะที่เป็นรูทเขาไม่จำเป็นต้องทำสิ่ง sudo-ize ดังนั้นจึงเป็นขั้นตอนความปลอดภัยน้อยลง
มีเครื่องนับแสนที่สแกนหา sshd'sและบังคับให้พวกมันดุร้าย "root" เป็นบัญชีที่ดีที่จะลองใช้ก่อนเพราะถ้าเกิดว่าผิดพลาดคุณจะเป็นเจ้าของเครื่องโดยสมบูรณ์ นอกจากนี้ยังเป็นบัญชีทั่วไปในระบบ * nix ทั้งหมดยกเว้นว่าคุณจะปิดใช้งานการเข้าสู่ระบบรูท มันเป็นวิธีปฏิบัติด้านความปลอดภัยที่ดีมากในการทำเช่นนี้
ข้อได้เปรียบหลักของสิ่งนี้คือช่วยให้สามารถควบคุมการเข้าถึงได้อย่างยืดหยุ่นมากขึ้น: หากผู้ใช้มีสิทธิ์รูทผ่าน sudo การให้สิทธิ์รูทหรือนำพวกเขาออกไปได้ง่ายตามความจำเป็น ในทางกลับกันถ้าคุณส่งรูต pw ให้คนอื่นคุณไม่สามารถถอดมันออกได้ (เว้นแต่คุณจะเป็น Men In Black ;-)) คุณสามารถเปลี่ยนรูต pw ได้ซึ่งจะส่งผลกระทบต่อทุกคน
ในบริบทนั้นการลงชื่อเข้าใช้รูทโดยตรงไม่จำเป็น b / c ไม่มีใครมีรูต pw
(คุณจะต้องใช้รูท pw สำหรับการเข้าถึงฉุกเฉินที่คอนโซลในโหมดผู้ใช้คนเดียว แต่ควรมีข้อกำหนดพิเศษสำหรับสิ่งนั้น)