การจัดการความปลอดภัยบน Ubuntu 22.04 ในกรณีที่ยังมีการใช้งาน root อยู่ ไม่ได้มีการตั้งค่าเป็น user อื่นตั้งแต่ติดตั้ง OS ซึ่งจะช่วยให้ปลอดภัยมากขึ้นจากการถูก brute force ด้วย user root ในที่นี้ให้เปลี่ยน username
เป็นชื่อผู้ใช้ใหม่ที่เราจะสร้าง
ก่อนดำเนินการควรทำการสำรองข้อมูล หรือ Snapshot ไว้ก่อน เนื่องการมีการตั้งค่าที่ส่งผลต่อการใช้งานกับระบบ
การสร้าง Account สำหรับใช้งานแทน root และให้สิทธิ์เท่ากับ root
- สร้างบัญชีผู้ใช้ใหม่
sudo adduser username
- เพิ่มบัญชีผู้ใช้ในกลุ่ม sudo ให้สิทธิ์ผู้ใช้งานใหม่โดยเพิ่มเข้ากลุ่ม
sudo
เพื่อให้สามารถรันคำสั่งด้วยสิทธิ์ root ได้
sudo usermod -aG sudo username
- เปลี่ยน Shell ของผู้ใช้เป็น
/bin/bash
ปรับให้ผู้ใช้งานใหม่ใช้ Shell/bin/bash
sudo chsh -s /bin/bash username
- ทดสอบการเข้าถึงสิทธิ์ root ล็อกอินด้วยบัญชีใหม่แล้วรันคำสั่งต่อไปนี้เพื่อทดสอบ
sudo -i
- เพิ่มความปลอดภัยด้วยการกำหนดเฉพาะคำสั่งที่สามารถใช้สิทธิ์ root ได้ แก้ไขไฟล์
/etc/sudoers
โดยใช้คำสั่งvisudo
sudo visudo
เพิ่มบรรทัดต่อไปนี้
username ALL=(ALL:ALL) ALL
หรือหากต้องการจำกัดคำสั่งที่สามารถรันได้
username ALL=(ALL:ALL) /usr/bin/apt-get, /usr/bin/systemctl
การปิดการใช้งาน root ไม่ให้ login
- ล็อกเอาท์ root หากคุณล็อกอินอยู่ใน root ให้ล็อกเอาท์ก่อน
exit
- ล็อกอินด้วยบัญชีผู้ใช้ที่สร้างใหม่ จากนั้นล็อกอินใหม่ด้วยบัญชีผู้ใช้ที่สร้างไว้แล้ว
- ล็อกการเข้าใช้งาน root ทำการล็อก
root
โดยตั้งค่า Shell ของ root เป็น/usr/sbin/nologin
sudo usermod -s /usr/sbin/nologin root
หรือสามารถใช้ passwd -l
เพื่อปิดการใช้งานรหัสผ่านของ root
sudo passwd -l root
การยกเลิกการเข้า ssh login ของ root
- แก้ไขไฟล์การตั้งค่า SSH เปิดไฟล์
/etc/ssh/sshd_config
sudo nano /etc/ssh/sshd_config
- ปิดการอนุญาตการล็อกอินด้วย root ค้นหาและแก้ไขบรรทัดนี้
PermitRootLogin no
- รีสตาร์ทบริการ SSH บันทึกไฟล์แล้วรีสตาร์ทบริการ SSH เพื่อใช้การตั้งค่าใหม่
sudo systemctl restart sshd
การกำหนดวันเวลา Time Stamp ในการแสดง History ของคำสั่ง Bash
- ตั้งค่าการแสดง Time Stamp ใน Bash History เพิ่มบรรทัดนี้ลงในไฟล์
.bashrc
ของผู้ใช้
nano ~/.bashrc
เพิ่มบรรทัดต่อไปนี้
export HISTTIMEFORMAT="%F %T "
- ทำให้การตั้งค่ามีผล โหลดการตั้งค่าใหม่
source ~/.bashrc
- ทดสอบรันคำสั่ง
history
เพื่อตรวจสอบว่ามีการแสดงผล Time Stamp
history
หมายเหตุ:
- คำสั่งและการตั้งค่าที่กล่าวถึงในคู่มือนี้อาจต้องการการยืนยันสิทธิ์ของผู้ดูแลระบบผ่านการใช้
sudo
หรือการเข้าถึงบัญชี root (ก่อนที่จะปิดการใช้งาน) - การปิด root login และการจำกัดการใช้สิทธิ์ root ช่วยลดความเสี่ยงที่อาจเกิดจากการโจมตีทางไซเบอร์ เช่น Brute Force Attack