ฉันจะปิดการใช้งานการเข้าสู่ระบบรูทใน Ubuntu ได้อย่างไร


27

เมื่อไม่นานมานี้ฉันได้ให้รหัสผ่านรูทดังนั้นฉันจึงสามารถเข้าสู่ระบบในฐานะรูทและทำสิ่งต่าง ๆ ได้ ตอนนี้ฉันต้องการปิดใช้งานการเข้าสู่ระบบรูทเพื่อเพิ่มความปลอดภัยเนื่องจากฉันจะเปิดเผยบริการของฉันกับอินเทอร์เน็ต ฉันเห็นหลายวิธีในการทำเช่นนี้ ( sudo passwd -l rootเล่นซอ/etc/shadowและอื่น ๆ ) แต่ไม่มีที่ไหนเลยที่บอกว่าวิธีที่ดีที่สุด / เหมาะสมที่สุดในการทำคืออะไร ฉันทำไปแล้วsudo passwd -l rootแต่ฉันเห็นคำแนะนำที่บอกว่าสิ่งนี้อาจส่งผลต่อสคริปต์เริ่มต้นและไม่ปลอดภัยเท่าที่ดูเนื่องจากยังคงขอรหัสผ่านหากคุณพยายามเข้าสู่ระบบแทนที่จะแบนการปฏิเสธการเข้าถึง ดังนั้นวิธีที่จะบรรลุเป้าหมายนั้นคืออะไร?

แก้ไข: เพื่อชี้แจงนี้มีไว้สำหรับการเข้าสู่ระบบในท้องถิ่นเป็นราก ฉันได้ปิดการใช้งานการเข้าสู่ระบบจากระยะไกลผ่าน SSH แล้ว แม้ว่าการพยายามเข้าสู่ระบบในฐานะรูทบน SSH ยังคงถามรหัสผ่านของรูท (ซึ่งมักจะล้มเหลว) มันแย่ใช่ไหม


1
การปิดใช้งานการเข้าถึงโลคัลสำหรับรูทมีประโยชน์ด้านความปลอดภัยเกือบเป็นศูนย์ ผู้ใช้ที่มีทางกายภาพเข้าถึงสามารถเองการกล่องของคุณในรูปแบบนับไม่ถ้วน
jscott

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

ดูการอัปเดตคำตอบของฉันด้านล่าง ฉันคิดว่าตอนนี้ฉันเข้าใจสิ่งที่คุณถาม
jscott

@jscott ขณะที่ปิดใช้งานรูทอาจไม่ให้ประโยชน์ด้านความปลอดภัยต่อการบุกรุก แต่ไม่ได้ล็อกอินเนื่องจากรูทให้สวิตช์ความปลอดภัยจากการทำลาย sys ด้วยrmคำสั่งที่วางผิดตำแหน่งหรือเช่นนั้น สิ่งที่ฉันเรียนรู้วิธีที่ยาก ใช่หนึ่งไม่สามารถเข้าสู่ระบบในฐานะ root แต่การปิดใช้งานมันทำให้รู้สึกจากมุมมองของผู้ดูแลระบบ sys
codechimp

ดูเหมือนว่ายอดเยี่ยมสำหรับ VPS หรือโฮสติ้งไม่มีเกมง่ายๆจริงๆ
jjxtra

คำตอบ:


33

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

ปิดใช้งานsshการเข้าถึงรูทโดยการแก้ไข/etc/ssh/sshd_configเพื่อให้มี:

PermitRootLogin no

เล่นซอกับ/etc/shadow, chsh -s /bin/false rootทุกคนสามารถยกเลิกได้กับแผ่นซีดีบูตง่าย / thumbdrive

อัปเดตตามความคิดเห็นของคุณ:

จากhelp.ubuntu.com : "โดยค่าเริ่มต้นรหัสผ่านบัญชีรูทจะถูกล็อคใน Ubuntu " โปรดดูหัวข้อ "ปิดใช้งานบัญชีรูทของคุณอีกครั้ง" โดยเฉพาะ ในการรีเซ็ตสถานะของบัญชีรูทเป็นค่าติดตั้งเริ่มต้นให้ใช้คำสั่งต่อไปนี้:

sudo usermod -p '!' root

ไม่มีระบบที่ปลอดภัยเมื่อผู้โจมตีเข้าสู่ระบบนั้นได้ เมื่อคุณสามารถแก้ไข / etc / shadow คุณจะหยุดอะไรจากการแก้ไข / etc / ssh / sshd_config
สเวน

@SvenW: แน่นอน นั่นคือเหตุผลที่ฉันถกเถียงถึงประโยชน์, ความปลอดภัย, แม้กระทั่งการ "ปิดใช้งาน" ราก จำกัด การเข้าถึงรูทใช่ ปิดใช้งานบัญชีไม่
jscott

4
sudo service ssh เริ่มต้นใหม่ ....... หลังจากทำสิ่งนี้แล้ว
Naweed Chougle

ไฟล์ความช่วยเหลือที่อ้างอิงตอนนี้ให้คำสั่งต่อไปนี้: sudo passwd -dl root
MrG

21

ฉันถือว่าคุณอ้างถึงการเข้าสู่ระบบจากระยะไกลผ่าน ssh เพิ่มบรรทัดต่อไปนี้/etc/ssh/sshd_config:

PermitRootLogin no

และเริ่มบริการ ssh

sudo service ssh restart

สิ่งนี้ควรทำงานและคุณสามารถรักษาบัญชีรูทของคุณตามเดิม (หรือลองปิดใช้งานถ้าคุณรู้สึกว่าจำเป็น)


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

4

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

นี่คือการป้องกันไม่ให้ใครบางคนจากการทดสอบชื่อผู้ใช้กองเพื่อลองและหาที่ถูกต้องในระบบของคุณ อย่างไรก็ตามจากมุมมองด้านความปลอดภัยหากคุณปิดใช้งานรูทบน SSH ฉันจะตั้งโปรแกรมตรวจจับแบบ bruteforce (เช่น fail2ban) และตั้งค่าเพื่อให้ถ้ามีคนพยายามเข้าสู่ระบบในฐานะรูทมันบล็อกพวกเขาจาก พยายามโจมตีเพิ่มเติมใด ๆ


คำตอบที่ดีขอบคุณ! ฉันได้ติดตั้ง fail2ban แล้วฉันจะตั้งค่าให้บล็อกเมื่อพยายามครั้งแรกที่เข้าสู่ระบบในฐานะ root แม้ว่าคำแนะนำที่ดี
เบ็นไฮเมอร์ส

2

การแทนที่รหัสผ่านที่เข้ารหัสด้วย * ใน / etc / shadow (ฟิลด์ที่สองหลังจาก ':') เป็นวิธีที่ดีที่สุด IMHO นอกจากนี้ปิดใช้งานการเข้าสู่ระบบรูทสำหรับ ssh (ด้วยวิธีนี้เป็นไปไม่ได้ที่จะเข้าสู่ระบบผ่านทาง ssh ในฐานะรูท) และอาจ จำกัด การเข้าใช้งาน ssh ในการเข้าสู่ระบบใบรับรองซึ่งมีความปลอดภัยมากกว่าการลงชื่อเข้าใช้ด้วยรหัสผ่าน

ในกรณีส่วนใหญ่ SSH ควรเป็นบริการเดียวที่เข้าถึงได้จากภายนอกซึ่งอาจอนุญาตให้เข้าสู่ระบบรูทดังนั้นประตูนี้จะถูกล็อค

เพื่อ จำกัด สิ่งนี้เพิ่มเติมคุณสามารถติดตั้งบางอย่างเช่น fail2ban ซึ่งจะห้ามที่อยู่ IP ในช่วงระยะเวลาหนึ่งหลังจากพยายามลงชื่อเข้าใช้ไม่สำเร็จจำนวนหนึ่ง


ฉันรู้สึกว่า '*' เหมือนกับ '!' ตามคำตอบที่ยอมรับดังนั้นฉันจะโหวตคำตอบนี้ด้วย
เบ็นไฮเมอร์ส

1

JR และคณะ

AllowUsers ของคุณพาฉันไปที่https://help.ubuntu.com/community/SSH/OpenSSH/Configuring

sudo vi / etc / ssh / sshd_config

PermitRootLogin ใช่ (เปลี่ยนเป็นไม่ใช่)

(เพิ่มบรรทัดที่ด้านล่างของไฟล์) DenyUsers user1 user2

บันทึกและออกจากนั้น

sudo service ssh เริ่มต้นใหม่

แก้ไขปัญหาของฉัน ขอบคุณทุกคน.


0

หากคุณต้องการปิดใช้งานการล็อกอินรูทโลคัลคุณสามารถลองแก้ไข / etc / passwd และแทนที่ / bin / bash โดย / bin / false อย่างไรก็ตามเนื่องจากฉันไม่ได้ทดสอบฉันจะบอกว่าเปิดเซสชันรูทไว้ที่ด้านข้างทดสอบและหากมีผลข้างเคียงแปลก ๆ ให้เปลี่ยนกลับ


0

เรื่องความปลอดภัย

IMHO มีเพียงคุณเท่านั้นที่สามารถทำได้ความปลอดภัยที่ฉลาดถอดปลั๊กออกจากเครือข่ายและเชื่อมมันเข้าไปในกล่องเหล็กคาร์ไบด์เหล็กกันกระสุนหนา 3 นิ้ว

คิดแบบนี้ - ถ้าคนสามารถแฮ็คกระทรวงกลาโหม, ซีไอเอ, เอฟบีไอและซิตี้แบงก์ - พวกเราที่เหลือแค่มนุษย์ธรรมดาไม่สามารถทำได้ดีกว่านี้มากนัก

เรื่องความปลอดภัย SSH

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

น่าเสียดายที่คนอื่นพูดหลายครั้งก่อนเมื่อมีคนเข้าถึงกล่องได้การเดิมพันทั้งหมดจะปิด!

แลกเปลี่ยนใบรับรองสำหรับเข้าสู่ระบบ ssh? hmmmm . . . ฟังดูเข้าท่า. คุณจะทำอย่างไรมันได้หรือไม่?

จิม (JR)

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