การใช้sudo
ผู้ใช้เพื่อเข้าถึงเซิร์ฟเวอร์และดำเนินการคำสั่งที่ระดับรูทเป็นวิธีปฏิบัติที่พบบ่อยมากในหมู่ผู้ดูแลระบบ Linux และ Unix การใช้งานของsudo
ผู้ใช้มักจะถูกเชื่อมโยงกันด้วยการปิดการใช้งานการเข้าถึงรูทโดยตรงไปยังเซิร์ฟเวอร์ของตนเพื่อป้องกันการเข้าถึงโดยไม่ได้รับอนุญาต
ในบทช่วยสอนนี้เราจะกล่าวถึงขั้นตอนพื้นฐานสำหรับการปิดใช้งานการเข้าถึงรูตโดยตรงสร้างผู้ใช้ sudo และตั้งค่ากลุ่ม sudo บน CentOS, Debian และ FreeBSD
ข้อกำหนดเบื้องต้น
- เซิร์ฟเวอร์ Linux ที่เพิ่งติดตั้งพร้อมการกระจายที่คุณต้องการ
- เท็กซ์เอดิเตอร์ติดตั้งบนเซิร์ฟเวอร์ไม่ว่าจะเป็น nano, vi, vim, emacs
ขั้นตอนที่ 1: การติดตั้ง sudo
Debian
apt-get install sudo -y
CentOS
yum install sudo -y
FreeBSD
cd /usr/ports/security/sudo/ && make install clean
หรือ
pkg install sudo
ขั้นตอนที่ 2: การเพิ่มผู้ใช้ sudo
sudo
ผู้ใช้เป็นบัญชีผู้ใช้ปกติบนเครื่อง Linux หรือ Unix
Debian
adduser mynewusername
CentOS
adduser mynewusername
FreeBSD
adduser mynewusername
ขั้นตอนที่ 3: การเพิ่มผู้ใช้ใหม่ในกลุ่มล้อ(ตัวเลือก)
กลุ่มล้อเป็นกลุ่มผู้ใช้ที่ จำกัด จำนวนของผู้ที่สามารถที่su
จะรูต การเพิ่มsudo
ผู้ใช้ของคุณในwheel
กลุ่มเป็นทางเลือกทั้งหมด แต่แนะนำให้เลือก
หมายเหตุ:ใน Debian ที่กลุ่มที่มักจะพบแทนsudo
wheel
อย่างไรก็ตามคุณสามารถเพิ่มwheel
กลุ่มด้วยตนเองโดยใช้groupadd
คำสั่ง สำหรับจุดประสงค์ของบทช่วยสอนนี้เราจะใช้sudo
กลุ่มสำหรับ Debian
ความแตกต่างระหว่างและwheel
sudo
ใน CentOS และ Debian ผู้ใช้ที่อยู่ในwheel
กลุ่มสามารถดำเนินการsu
และขึ้นสู่โดยตรงroot
ได้ ในขณะเดียวกันsudo
ผู้ใช้จะต้องใช้sudo su
ก่อน โดยพื้นฐานแล้วไม่มีความแตกต่างที่แท้จริงยกเว้นไวยากรณ์ที่ใช้ในการรูทและผู้ใช้ที่อยู่ในทั้งสองกลุ่มสามารถใช้sudo
คำสั่งได้
Debian
usermod -aG sudo mynewusername
CentOS
usermod -aG wheel mynewusername
FreeBSD
pw group mod wheel -m mynewusername
ขั้นตอนที่ 4: ตรวจสอบให้แน่ใจว่าsudoers
ไฟล์ของคุณได้รับการติดตั้งอย่างถูกต้อง
มันเป็นสิ่งสำคัญเพื่อให้แน่ใจว่าsudoers
ไฟล์ที่อยู่ใน/etc/sudoers
การตั้งค่าอย่างถูกต้องเพื่อให้sudo users
สามารถใช้sudo
คำสั่งได้อย่างมีประสิทธิภาพ เพื่อให้บรรลุผลนั้นเราจะดูเนื้อหา/etc/sudoers
และแก้ไขตามความเหมาะสม
Debian
vim /etc/sudoers
หรือ
visudo
CentOS
vim /etc/sudoers
หรือ
visudo
FreeBSD
vim /etc/sudoers
หรือ
visudo
หมายเหตุ:visudo
คำสั่งจะเปิด/etc/sudoers
ใช้โปรแกรมแก้ไขข้อความที่ต้องการของระบบ(ปกติ vi หรือเป็นกลุ่ม)
เริ่มตรวจสอบและแก้ไขด้านล่างบรรทัดนี้:
# Allow members of group sudo to execute any command
ส่วนนี้/etc/sudoers
มักมีลักษณะเช่นนี้:
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
ในบางระบบคุณอาจไม่พบ%wheel
แทน%sudo
; ในกรณีนี้จะเป็นบรรทัดที่คุณจะเริ่มแก้ไข
หากบรรทัดที่ขึ้นต้นด้วย%sudo
Debian หรือ%wheel
CentOS และ FreeBSD ไม่ได้ถูกใส่เครื่องหมายความคิดเห็นไว้(นำหน้าด้วย #)หมายความว่า sudo ได้ตั้งค่าไว้แล้วและเปิดใช้งานแล้ว จากนั้นคุณสามารถย้ายไปยังขั้นตอนถัดไป
ขั้นตอนที่ 5: การอนุญาตให้ผู้ใช้ที่เป็นของทั้งwheel
หรือsudo
กลุ่มเพื่อรันsudo
คำสั่ง
เป็นไปได้ที่จะอนุญาตให้ผู้ใช้ที่อยู่ในกลุ่มผู้ใช้ทั้งสองไม่สามารถเรียกใช้งานsudo
คำสั่งได้โดยการเพิ่มพวกเขาลง/etc/sudoers
ไปดังนี้:
anotherusername ALL=(ALL) ALL
ขั้นตอนที่ 6: การรีสตาร์ทเซิร์ฟเวอร์ SSHD
ในการใช้การเปลี่ยนแปลงที่คุณทำ/etc/sudoers
คุณต้องรีสตาร์ทเซิร์ฟเวอร์ SSHD ดังนี้:
Debian
/etc/init.d/sshd restart
CentOS 6
/etc/init.d/sshd restart
CentOS 7
systemctl restart sshd.service
FreeBSD
/etc/rc.d/sshd start
ขั้นตอนที่ 7: ทดสอบ
หลังจากคุณรีสตาร์ทเซิร์ฟเวอร์ SSH แล้วให้ออกจากระบบแล้วลงชื่อเข้าใช้ใหม่ในฐานะของคุณsudo user
จากนั้นพยายามเรียกใช้คำสั่งทดสอบบางคำสั่งดังนี้:
sudo uptime
sudo whoami
ใด ๆ ของคำสั่งดังต่อไปนี้จะช่วยให้ที่จะกลายเป็นsudo user
root
sudo su -
sudo -i
sudo -S
หมายเหตุ:
whoami
คำสั่งจะกลับเมื่อคู่กับroot
sudo
- คุณจะได้รับแจ้งให้ป้อนรหัสผ่านของผู้ใช้เมื่อดำเนินการ
sudo
คำสั่งเว้นแต่คุณจะสั่งให้ระบบแจ้งให้ไม่ใส่sudo users
รหัสผ่าน โปรดทราบว่าไม่ใช่วิธีปฏิบัติที่แนะนำ
ทางเลือก: อนุญาตsudo
โดยไม่ต้องป้อนรหัสผ่านของผู้ใช้
ดังที่อธิบายไว้ก่อนหน้านี้นี่ไม่ใช่วิธีปฏิบัติที่แนะนำและรวมอยู่ในบทช่วยสอนนี้เพื่อจุดประสงค์ในการสาธิตเท่านั้น
ในการอนุญาตให้คุณsudo user
รันsudo
คำสั่งโดยไม่ได้รับพร้อมต์สำหรับรหัสผ่านให้ต่อท้ายบรรทัดการเข้าถึง/etc/sudoers
ด้วยNOPASSWD: ALL
ดังนี้:
%sudo ALL=(ALL:ALL) ALL NOPASSWD: ALL
หมายเหตุ:คุณต้องรีสตาร์ทเซิร์ฟเวอร์ SSHD ของคุณเพื่อใช้การเปลี่ยนแปลง
ขั้นตอนที่ 8: ปิดใช้งานการเข้าถึงรูตโดยตรง
ตอนนี้คุณได้ยืนยันแล้วว่าคุณสามารถใช้งานได้sudo user
โดยไม่มีปัญหาตอนนี้ถึงเวลาสำหรับขั้นตอนที่แปดและขั้นสุดท้ายแล้วปิดการใช้งานการเข้าถึงรูทโดยตรง
ขั้นแรกให้เปิด/etc/ssh/sshd_config
โดยใช้โปรแกรมแก้ไขข้อความที่คุณชื่นชอบและค้นหาบรรทัดที่มีสตริงต่อไปนี้ มันอาจจะนำหน้าด้วย#
ตัวละคร
PermitRootLogin
ไม่ว่าจะใส่คำนำหน้าหรือค่าของตัวเลือกใน/etc/ssh/sshd_config
คุณจะต้องเปลี่ยนบรรทัดดังต่อไปนี้:
PermitRootLogin no
ในที่สุดรีสตาร์ทเซิร์ฟเวอร์ SSHD ของคุณ
หมายเหตุ:อย่าลืมที่จะทดสอบการเปลี่ยนแปลงของคุณโดยพยายามที่จะ SSH root
ลงในเซิร์ฟเวอร์ของคุณเป็น หากคุณไม่สามารถทำได้แสดงว่าคุณได้ทำตามขั้นตอนที่จำเป็นทั้งหมดแล้ว
นี่เป็นการสรุปบทเรียนของเรา