ค้นหาเว็บไซต์

วิธีป้องกันรหัสผ่านโหมดผู้ใช้คนเดียวใน CentOS 7


ในบทความก่อนหน้านี้ของเรา เราได้อธิบายวิธีการบูตเข้าสู่โหมดผู้ใช้คนเดียวบน CentOS 7 หรือที่เรียกว่า “โหมดการบำรุงรักษา ” โดยที่ Linux เริ่มบริการเพียงไม่กี่อย่างสำหรับฟังก์ชันพื้นฐานเพื่อให้อนุญาต ผู้ใช้รายเดียว (โดยทั่วไปคือผู้ใช้ขั้นสูง) ทำงานด้านการดูแลระบบบางอย่าง เช่น การใช้ fsck เพื่อซ่อมแซมระบบไฟล์ที่เสียหาย

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

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

ใน CentOS/RHEL 7 การช่วยเหลือ และ เป้าหมายฉุกเฉิน (ซึ่งเป็น โหมดผู้ใช้คนเดียว) จะเป็นรหัสผ่าน ได้รับการคุ้มครองตามค่าเริ่มต้น

ตัวอย่างเช่น เมื่อคุณพยายามเปลี่ยน เป้าหมาย (ระดับการวิ่ง) ผ่าน systemd เป็น rescue.target (เช่น emergency.target) คุณจะถูกถามถึงรหัสผ่านรูทดังที่แสดงในภาพหน้าจอต่อไปนี้

systemctl isolate rescue.target
OR
systemctl isolate emergency.target

อย่างไรก็ตาม หากผู้บุกรุกสามารถเข้าถึงเซิร์ฟเวอร์ได้ เขาหรือเธอสามารถเลือกเคอร์เนลเพื่อบูตจากรายการเมนูด้วงได้โดยกดปุ่ม e เพื่อแก้ไขตัวเลือกการบูตครั้งแรก

บนบรรทัดเคอร์เนลที่ขึ้นต้นด้วย “linux16“ เขา/เธอสามารถเปลี่ยนอาร์กิวเมนต์ ro เป็น “rw init=/sysroot/bin/sh ” และบูตเข้าสู่โหมดผู้ใช้คนเดียวบน CentOS 7 โดยที่ระบบไม่ขอรหัสผ่านรูท แม้ว่าบรรทัด SINGLE=/sbin/sushell จะถูกเปลี่ยนเป็น SINGLE=/sbin/sulogin ในไฟล์ /etc/sysconfig/init

ดังนั้น วิธีเดียวที่จะใช้รหัสผ่านป้องกันโหมดผู้ใช้คนเดียวใน CentOS 7 คือการป้องกัน GRUB ด้วยรหัสผ่านโดยใช้คำแนะนำต่อไปนี้

วิธีป้องกันรหัสผ่านด้วงใน CentOS 7

ขั้นแรกให้สร้างรหัสผ่านที่เข้ารหัสที่รัดกุมโดยใช้ยูทิลิตี grub2-setpassword ตามที่แสดง

grub2-setpassword

แฮชสำหรับรหัสผ่านถูกจัดเก็บไว้ใน /boot/grub2/user.cfg และผู้ใช้ เช่น ”root ” ถูกกำหนดไว้ใน / boot/grub2/grub.cfg คุณสามารถดูรหัสผ่านโดยใช้คำสั่ง cat ดังที่แสดง

cat /boot/grub2/user.cfg

ตอนนี้ให้เปิดไฟล์ /boot/grub2/grub.cfg และค้นหารายการบูตที่คุณต้องการป้องกันด้วยรหัสผ่าน โดยเริ่มต้นด้วย menuentry เมื่อพบรายการแล้ว ให้ลบพารามิเตอร์ --unrestricted ออกจากรายการ

บันทึกไฟล์และปิด ตอนนี้ให้ลอง รีบูต ระบบ CentOS 7 และแก้ไขรายการบูตโดยกดปุ่ม e คุณจะถูกขอให้ระบุข้อมูลรับรองดังที่แสดง

แค่นั้นแหละ. คุณได้ป้องกันรหัสผ่านเมนู CentOS 7 GRUB สำเร็จแล้ว