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

4 วิธีในการปิดการใช้งานบัญชีรูทใน Linux


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

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

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

ในบทความนี้ เราจะอธิบายสี่วิธีในการปิดใช้งานการเข้าสู่ระบบบัญชีผู้ใช้รูทใน Linux

โปรดทราบ: ก่อนที่คุณจะบล็อกการเข้าถึงบัญชี root ตรวจสอบให้แน่ใจว่าคุณได้สร้างบัญชีผู้ดูแลระบบที่สามารถใช้คำสั่ง sudo เพื่อรับรูทได้ สิทธิ์ของผู้ใช้ด้วยคำสั่ง useradd และให้รหัสผ่านที่คาดเดายากแก่บัญชีผู้ใช้นี้ ธง -m หมายถึงการสร้างโฮมไดเร็กตอรี่ของผู้ใช้และ -c อนุญาตให้ระบุความคิดเห็น:

useradd -m -c "Admin User" admin
passwd admin

จากนั้น เพิ่มผู้ใช้นี้ในกลุ่มผู้ดูแลระบบที่เหมาะสมโดยใช้คำสั่ง usermod โดยที่สวิตช์ -a หมายถึงเพิ่มบัญชีผู้ใช้ต่อท้าย และ -G ระบุกลุ่มที่จะเพิ่มผู้ใช้ ใน (วงล้อหรือ sudo ขึ้นอยู่กับการกระจาย Linux ของคุณ):

usermod -aG wheel admin    #CentOS/RHEL
usermod -aG sudo admin     #Debian/Ubuntu 

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

su admin

1. เปลี่ยนเชลล์ของผู้ใช้รูท

วิธีที่ง่ายที่สุดในการปิดใช้งานการเข้าสู่ระบบของผู้ใช้รูทคือเปลี่ยนเชลล์จาก /bin/bash หรือ /bin/bash (หรือเชลล์อื่น ๆ ที่อนุญาตให้ผู้ใช้เข้าสู่ระบบ) เป็น /sbin/nologin ในไฟล์ /etc/passwd ซึ่งคุณสามารถเปิดเพื่อแก้ไขโดยใช้โปรแกรมแก้ไขบรรทัดคำสั่งที่คุณชื่นชอบดังที่แสดง

  
sudo vim /etc/passwd

เปลี่ยนบรรทัด:

root:x:0:0:root:/root:/bin/bash
to
root:x:0:0:root:/root:/sbin/nologin

บันทึกไฟล์และปิด

จากนี้ไป เมื่อผู้ใช้ root เข้าสู่ระบบ เขา/เธอจะได้รับข้อความ “บัญชีนี้ไม่สามารถใช้ได้ในขณะนี้ ” นี่เป็นข้อความเริ่มต้น แต่คุณสามารถ เปลี่ยนและตั้งค่าข้อความที่กำหนดเองในไฟล์ /etc/nologin.txt

วิธีการนี้จะมีผลเฉพาะกับโปรแกรมที่ต้องใช้เชลล์สำหรับการเข้าสู่ระบบของผู้ใช้ ไม่เช่นนั้นไคลเอ็นต์ sudo, ftp และ อีเมล จะสามารถเข้าถึงบัญชีรูทได้

2. ปิดการใช้งานการเข้าสู่ระบบรูทผ่านอุปกรณ์คอนโซล (TTY)

วิธีที่สองใช้โมดูล PAM ชื่อ pam_securetty ซึ่งอนุญาตการเข้าถึงรูทเฉพาะในกรณีที่ผู้ใช้เข้าสู่ระบบด้วย TTY “ปลอดภัย” เนื่องจาก กำหนดโดยรายการใน /etc/securetty

ไฟล์ด้านบนช่วยให้คุณสามารถระบุอุปกรณ์ TTY ที่ผู้ใช้รูทได้รับอนุญาตให้เข้าสู่ระบบ การล้างไฟล์นี้จะป้องกันการเข้าสู่ระบบรูทบนอุปกรณ์ใดๆ ที่เชื่อมต่อกับระบบคอมพิวเตอร์

หากต้องการสร้างไฟล์เปล่า ให้เรียกใช้

sudo mv /etc/securetty /etc/securetty.orig
sudo touch /etc/securetty
sudo chmod 600 /etc/securetty

วิธีการนี้มีข้อจำกัดบางประการ โดยมีผลเฉพาะกับโปรแกรมต่างๆ เช่น การเข้าสู่ระบบ ตัวจัดการการแสดงผล (เช่น gdm, kdm และ xdm) และบริการเครือข่ายอื่นๆ ที่ เปิดตัว TTY โปรแกรมต่างๆ เช่น su, sudo, ssh และเครื่องมือ openssh อื่นๆ ที่เกี่ยวข้องจะสามารถเข้าถึงบัญชีรูทได้

3. ปิดการใช้งานการเข้าสู่ระบบรูท SSH

วิธีทั่วไปในการเข้าถึงเซิร์ฟเวอร์ระยะไกลหรือ VPS คือผ่าน SSH และหากต้องการบล็อกการเข้าสู่ระบบของผู้ใช้รูทภายใต้เซิร์ฟเวอร์ดังกล่าว คุณจะต้องแก้ไขไฟล์ /etc/ssh/sshd_config

sudo vim /etc/ssh/sshd_config

จากนั้นยกเลิกการใส่เครื่องหมายข้อคิดเห็น (หากมีการแสดงความคิดเห็น) คำสั่ง PermitRootLogin และตั้งค่าเป็น no ดังที่แสดงในภาพหน้าจอ

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

sudo systemctl restart sshd 
OR
sudo service sshd restart 

ดังที่คุณอาจทราบแล้วว่าวิธีนี้มีผลกับชุดเครื่องมือ openssh เท่านั้น โปรแกรมเช่น ssh, scp, sftp จะถูกบล็อกไม่ให้เข้าถึงบัญชีรูท

4. จำกัดการเข้าถึงรูทไปยังบริการผ่าน PAM

โมดูลการตรวจสอบสิทธิ์แบบเสียบได้ (เรียกสั้นๆ ว่า PAM) เป็นวิธีการตรวจสอบสิทธิ์แบบรวมศูนย์ เสียบได้ แบบแยกส่วน และยืดหยุ่นบนระบบ Linux PAM ผ่านโมดูล /lib/security/pam_listfile.so ช่วยให้มีความยืดหยุ่นอย่างมากในการจำกัดสิทธิ์ของบัญชีเฉพาะ

โมดูลด้านบนสามารถใช้เพื่ออ้างอิงรายชื่อผู้ใช้ที่ไม่ได้รับอนุญาตให้เข้าสู่ระบบผ่านบริการเป้าหมายบางอย่าง เช่น เข้าสู่ระบบ ssh และโปรแกรมที่รับรู้ PAM

ในกรณีนี้ เราต้องการปิดการใช้งานการเข้าถึงของผู้ใช้รูทในระบบ โดยการจำกัดการเข้าถึงการเข้าสู่ระบบและบริการ sshd ขั้นแรกให้เปิดและแก้ไขไฟล์สำหรับบริการเป้าหมายในไดเร็กทอรี /etc/pam.d/ ดังที่แสดง


sudo vim /etc/pam.d/login
OR
sudo vim /etc/pam.d/sshd

ถัดไป เพิ่มการกำหนดค่าด้านล่างในทั้งสองไฟล์

auth    required       pam_listfile.so \
        onerr=succeed  item=user  sense=deny  file=/etc/ssh/deniedusers

เมื่อเสร็จแล้ว ให้บันทึกและปิดแต่ละไฟล์ จากนั้นสร้างไฟล์ธรรมดา /etc/ssh/deniedusers ซึ่งควรมีหนึ่งรายการต่อบรรทัดและโลกไม่สามารถอ่านได้

เพิ่มชื่อรูทเข้าไป จากนั้นบันทึกและปิด

sudo vim /etc/ssh/deniedusers

ตั้งค่าการอนุญาตที่จำเป็นสำหรับสิ่งนี้ด้วย

sudo chmod 600 /etc/ssh/deniedusers

วิธีการนี้มีผลกับโปรแกรมและบริการที่ทราบ PAM เท่านั้น คุณสามารถบล็อกการเข้าถึงรูทของระบบผ่านทาง ftp และไคลเอนต์อีเมลและอื่น ๆ

สำหรับข้อมูลเพิ่มเติม โปรดดูที่หน้าคู่มือที่เกี่ยวข้อง

man pam_securetty
man sshd_config
man pam

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