วิธีการปิด root บน Linux Ubuntu 22.04

การจัดการความปลอดภัยบน Ubuntu 22.04 ในกรณีที่ยังมีการใช้งาน root อยู่ ไม่ได้มีการตั้งค่าเป็น user อื่นตั้งแต่ติดตั้ง OS ซึ่งจะช่วยให้ปลอดภัยมากขึ้นจากการถูก brute force ด้วย user root ในที่นี้ให้เปลี่ยน username เป็นชื่อผู้ใช้ใหม่ที่เราจะสร้าง

ก่อนดำเนินการควรทำการสำรองข้อมูล หรือ Snapshot ไว้ก่อน เนื่องการมีการตั้งค่าที่ส่งผลต่อการใช้งานกับระบบ

การสร้าง Account สำหรับใช้งานแทน root และให้สิทธิ์เท่ากับ root

  1. สร้างบัญชีผู้ใช้ใหม่
sudo adduser username
  1. เพิ่มบัญชีผู้ใช้ในกลุ่ม sudo ให้สิทธิ์ผู้ใช้งานใหม่โดยเพิ่มเข้ากลุ่ม sudo เพื่อให้สามารถรันคำสั่งด้วยสิทธิ์ root ได้
sudo usermod -aG sudo username
  1. เปลี่ยน Shell ของผู้ใช้เป็น /bin/bash ปรับให้ผู้ใช้งานใหม่ใช้ Shell /bin/bash
sudo chsh -s /bin/bash username
  1. ทดสอบการเข้าถึงสิทธิ์ root ล็อกอินด้วยบัญชีใหม่แล้วรันคำสั่งต่อไปนี้เพื่อทดสอบ
sudo -i
  1. เพิ่มความปลอดภัยด้วยการกำหนดเฉพาะคำสั่งที่สามารถใช้สิทธิ์ root ได้ แก้ไขไฟล์ /etc/sudoers โดยใช้คำสั่ง visudo
sudo visudo

เพิ่มบรรทัดต่อไปนี้

username ALL=(ALL:ALL) ALL

หรือหากต้องการจำกัดคำสั่งที่สามารถรันได้

username ALL=(ALL:ALL) /usr/bin/apt-get, /usr/bin/systemctl

การปิดการใช้งาน root ไม่ให้ login

  1. ล็อกเอาท์ root หากคุณล็อกอินอยู่ใน root ให้ล็อกเอาท์ก่อน
exit
  1. ล็อกอินด้วยบัญชีผู้ใช้ที่สร้างใหม่ จากนั้นล็อกอินใหม่ด้วยบัญชีผู้ใช้ที่สร้างไว้แล้ว
  2. ล็อกการเข้าใช้งาน root ทำการล็อก root โดยตั้งค่า Shell ของ root เป็น /usr/sbin/nologin
sudo usermod -s /usr/sbin/nologin root

หรือสามารถใช้ passwd -l เพื่อปิดการใช้งานรหัสผ่านของ root

sudo passwd -l root

การยกเลิกการเข้า ssh login ของ root

  1. แก้ไขไฟล์การตั้งค่า SSH เปิดไฟล์ /etc/ssh/sshd_config
sudo nano /etc/ssh/sshd_config
  1. ปิดการอนุญาตการล็อกอินด้วย root ค้นหาและแก้ไขบรรทัดนี้
PermitRootLogin no
  1. รีสตาร์ทบริการ SSH บันทึกไฟล์แล้วรีสตาร์ทบริการ SSH เพื่อใช้การตั้งค่าใหม่
sudo systemctl restart sshd

การกำหนดวันเวลา Time Stamp ในการแสดง History ของคำสั่ง Bash

  1. ตั้งค่าการแสดง Time Stamp ใน Bash History เพิ่มบรรทัดนี้ลงในไฟล์ .bashrc ของผู้ใช้
nano ~/.bashrc

เพิ่มบรรทัดต่อไปนี้

export HISTTIMEFORMAT="%F %T "
  1. ทำให้การตั้งค่ามีผล โหลดการตั้งค่าใหม่
source ~/.bashrc
  1. ทดสอบรันคำสั่ง history เพื่อตรวจสอบว่ามีการแสดงผล Time Stamp
history

หมายเหตุ:

  • คำสั่งและการตั้งค่าที่กล่าวถึงในคู่มือนี้อาจต้องการการยืนยันสิทธิ์ของผู้ดูแลระบบผ่านการใช้ sudo หรือการเข้าถึงบัญชี root (ก่อนที่จะปิดการใช้งาน)
  • การปิด root login และการจำกัดการใช้สิทธิ์ root ช่วยลดความเสี่ยงที่อาจเกิดจากการโจมตีทางไซเบอร์ เช่น Brute Force Attack