เราควรลบรหัสผ่านรูทปิดการใช้งานการเข้าสู่ระบบจากระยะไกลและโดยทั่วไปต้องการให้ผู้ดูแลระบบใช้ sudo เพื่อดำเนินการดูแลระบบ?
เราควรลบรหัสผ่านรูทปิดการใช้งานการเข้าสู่ระบบจากระยะไกลและโดยทั่วไปต้องการให้ผู้ดูแลระบบใช้ sudo เพื่อดำเนินการดูแลระบบ?
คำตอบ:
เซิร์ฟเวอร์ของฉันทั้งหมดปิดใช้งานบัญชีรูท ( sp_pwdp
ตั้งค่าเป็น*
) นี่เป็นสิ่งจำเป็นsudo
สำหรับการเข้าถึงรูททั้งหมด [1] วัตถุประสงค์ของการทำเช่นนี้คือการตรวจสอบกิจกรรม superuser ทั้งหมดเพื่อให้ผู้คนสามารถเห็นสิ่งที่ทำกับระบบ
สำหรับตัวเลือกที่ไม่ยอมใครง่ายๆคุณสามารถsudo
เขียนลงในไฟล์บันทึก (ตรงข้ามกับsyslog
) และสร้างไฟล์ผนวกเท่านั้น (ใช้chattr
บน Linux หรือchflags
บน BSD) วิธีนี้ไม่มีใครสามารถแก้ไขการตรวจสอบในภายหลัง
[1] ฉันมีนโยบายที่จะไม่ใช้รูทเชลล์หรือทำเชลล์เพื่อหนีจากกระบวนการรูท (มันก็โอเคที่จะใช้sudo sh -c '...'
สำหรับการทำท่อหรือการเปลี่ยนเส้นทางแม้ว่า)
ฉันแนะนำอย่างเด่นชัดไม่ให้ปิดการใช้งานผู้ใช้รูท ปิดการใช้งานหรือ จำกัด การเข้าสู่ระบบราก (ผ่าน securetty และผ่าน sshd_config และผ่าน PAM และผ่านสิ่งที่มีคุณ) หากระบบของคุณอนุญาตให้มันสิทธิ์ root ขีด จำกัด หรือแยกบทบาทราก (คล้ายกับวิธีRSBACไม่ได้.) แต่โปรดกรุณาทำ ไม่ได้ปิดการใช้งานบัญชี root sulogin
โดยการลบรหัสผ่านมิฉะนั้นมันจะเป็นไปไม่ได้ในการเข้าสู่ระบบผ่านทาง sulogin
ถูกใช้โดย initscripts ทั้งหมดที่ฉันรู้ในกรณีที่เกิดข้อผิดพลาดร้ายแรงที่รายงานโดย fsck - และนั่นหมายความว่าคุณจะถูกล็อคออกจากระบบหากระบบไฟล์รูทเสียหาย
ในการชี้แจง: โดย "ปิดการใช้งานบัญชีรูทโดยการลบรหัสผ่าน" ฉันหมายถึงกลไกต่าง ๆ ที่ลงท้ายด้วย! หรือ * ในฟิลด์รหัสผ่านของ / etc / shadow หรือที่คล้ายกัน ฉันไม่ได้หมายความว่า "เปลี่ยนกลไกการเข้าสู่ระบบรูทดังนั้นคุณจะไม่ได้รับพร้อมท์ให้ใส่รหัสผ่าน"
su
หรือมีsudo
อยู่ในระบบของคุณให้กับผู้ใช้หมายถึงความเสี่ยงด้านความปลอดภัยที่คุณสามารถหลีกเลี่ยงได้หากคุณมีผู้ใช้รูทเฉพาะ นั่นคือตำแหน่งที่ได้รับการสนับสนุนจากผู้เขียนการกระจายความปลอดภัยของ Owl (และนักออกแบบพลังงานแสงอาทิตย์ในหมู่พวกเขา) - unix.stackexchange.com/questions/8581/…พยายามเสนอตำแหน่งของพวกเขาด้วยการอ้างอิง
fastboot
ตัวเลือกปลดล็อกบัญชีรูทและรีสตาร์ทเพื่อให้ทำงานfsck
ด้วยตนเองในที่สุด
ฉันเปิดใช้งานบัญชีรูทบนเซิร์ฟเวอร์ทั้งหมดของฉันแล้ว ผู้ดูแลระบบทั้งหมดมีผู้ใช้ของตนเองและต้องเข้าสู่ระบบนั้น จากนั้นสลับเป็นรูท (ปิดใช้งาน ssh root)
ให้ผู้ดูแลนับต่ำ เฉพาะผู้ที่ต้องการเข้าถึงรูทบนเซิร์ฟเวอร์นั้นเท่านั้นที่มีรหัสผ่าน
ฉันไม่ใช่แฟนของ sudo มันง่ายเกินไปที่จะทำ 'sudo bash' สำหรับรูทเชลล์ ฉันรู้ว่านี่สามารถปิดการใช้งาน แต่ทำไมต้องรำคาญ? เพียง จำกัด ผู้ใช้ที่สามารถทำงานของผู้ดูแลระบบและพูดคุยกับแต่ละคนได้ เรามีนโยบายที่จะไม่ปล่อยให้รูทเทอร์มินัลเปิดโดยไม่ต้องใส่ข้อมูล ดังนั้นจึงเข้าสู่ระบบ su ทำงานออกจากระบบ
หมายเหตุ: ฉันทำงานใน บริษัท ขนาดเล็ก (พนักงาน 50 คน) และเราได้ทำงานกับผู้ดูแลระบบ 2 ครั้ง (1 windows / 1 linux) วิธีการทำสิ่งนี้อาจไม่ดีที่สุดเมื่อคุณมีผู้ใช้จำนวนมากขึ้น ฉันเองก็ยังคงไม่ใช้ sudo มีวิธีอื่นในการบันทึกกิจกรรมรูท
การปิดใช้งานรหัสผ่านรูทนั้นเป็นความคิดที่ดี "เท็จ" วันที่คุณจะต้องการมันคุณจะต้องการมันจริงๆ (ตามการกำหนดค่าของคุณคุณอาจต้องใช้เพื่อเข้าสู่โหมดผู้ใช้คนเดียวเพื่อเป็นตัวอย่าง)
การปิดใช้งานการล็อกอินแบบรีโมตรูทอาจเกี่ยวข้อง แต่ถ้าคุณสามารถล็อกอินแบบโลคัล
และใช่ sudo ควรติดตั้งบนเซิร์ฟเวอร์ทุกเครื่องของคุณ มันมีประโยชน์และง่ายต่อการกำหนดค่า ทำไมคุณไม่ต้องการใช้
Disabling root remote login might be relevant but only if you are able to log on locally.
นี่เป็นเพียงความเท็จอย่างโจ๋งครึ่ม คุณสามารถเข้าสู่ระบบจากระยะไกลด้วยบัญชีใด ๆ การปิดใช้งานการล็อกอินแบบรีโมตรูทไม่ได้ จำกัด เฉพาะคุณในการเข้าถึงแบบโลคัล
ฉันเพิ่งปิดใช้งานการเข้าถึง SSH สำหรับรูทและต้องการผู้ใช้ (มักจะเป็นเพียงนักพัฒนา) เพื่อใช้คีย์ ssh มีการโจมตีพจนานุกรมมากเกินไปและการเปลี่ยนพอร์ต SSH ไม่ใช่ตัวเลือกสำหรับเรา
ด้วยวิธีนี้คุณไม่จำเป็นต้องไว้วางใจในความสามารถของทุกคนในการเขียนรหัสผ่านที่ดี เมื่ออยู่ภายในผู้ดูแลระบบจะมีสิทธิ์สำหรับ sudo
ฉันรู้ว่าหัวข้อนี้เก่ามาก แต่มีข้อบกพร่องที่สำคัญในตรรกะบทความเชื่อมโยงและฉันรู้สึก "rant'ie" - sudo ช่วยให้ทั้งรายการที่อนุญาตและขึ้นบัญชีดำ ไม่ใช่แค่ผิวดำตามที่ระบุในบทความที่เชื่อมโยง - สิ่งนี้ข้ามความคิดเรื่อง AAA (การรับรองความถูกต้องการอนุญาตและการตรวจสอบ) - su & sudo อนุญาตสำหรับการรับรองความถูกต้องและความรับผิดชอบ
สถานการณ์ที่ 1 ผู้ดูแลระบบแนะนำรหัสโกงบางส่วนให้กับระบบโดยเข้าสู่ระบบในขณะที่ root รหัสมีการเข้าถึงที่สมบูรณ์และผู้ดูแลระบบอาจไม่เคยรู้ว่าเกิดอะไรขึ้น อย่างน้อยด้วยการล็อกอินอย่างช้า ๆ (เช่น su / sudo) ผู้ดูแลระบบจะได้รับแจ้งให้ตรวจสอบหากรหัส rogue พยายามใช้สิทธิ์ที่ยกระดับ ...
สถานการณ์ที่ 2 ผู้ดูแลระบบที่หลอกลวงต้องการรับข้อมูล / ทำการเปลี่ยนแปลง พวกเขาเชื่อมต่อกับคอนโซล (การเข้าถึงฟิสิคัลคอนโซล, HP iLo / Similar หรือการเข้าถึงคอนโซล vGuest), ล็อกอินเป็นรูทและทำทุกสิ่งที่ต้องการ หากไม่มีบัญชีชื่อ / บัตรเข้าถึงที่ใช้ในการเข้าใช้คอนโซลอาจไม่มีหลักฐานการตรวจสอบมาก
คุณควรกำหนดให้ทุกคนใช้ sudo สำหรับทุกคำสั่งรูทเป็นนโยบาย ไม่มีเหตุผลที่จะเรียกใช้ "sudo bash" หรือสิ่งที่คล้ายกันมันเป็นเพียงเพื่อความสะดวกสบายเนื่องจากความไม่รู้หรือเพื่อปกปิดรอยเท้า
หากคุณปิดการใช้งานการเข้าสู่ระบบบัญชีผู้ใช้โดยตรงคุณจะไม่สามารถแก้ไขระบบเมื่อมีปัญหาร้ายแรง
หากคุณไม่สามารถโน้มน้าวให้ผู้ดูแลระบบของคุณลงชื่อเข้าใช้ด้วยตนเองและเรียกใช้ sudo สำหรับทุกคำสั่งที่เรียกใช้ในฐานะรูทและไม่แบ่งออกเป็นเชลล์คุณมีปัญหาร้ายแรงที่ไม่มีวิธีแก้ปัญหาทางเทคนิค
ผู้เขียนของ Distribuion ที่ปลอดภัยของ Owl (และผู้ออกแบบพลังงานแสงอาทิตย์) มีมุมมองที่ตรงข้ามอย่างเป็นธรรม ดูเช่นคำตอบ/unix/8581/which-is-the-safest-way-to-get-root-privileges-sudo-su-or-login/8660#8660สำหรับ การนำเสนอของการเรียกร้องของพวกเขา ปัญหาของการตรวจสอบการกระทำ superuser (คนที่ทำอะไร) จะได้รับการแก้ไขในมุมมองของพวกเขา (โดยพื้นฐานแล้วการแก้ปัญหาคือมีผู้ใช้รูทหลายคนที่มีชื่อต่างกัน)