Score:0

เมื่อใดควรปิดใช้งานบัญชีรูทบนเซิร์ฟเวอร์อูบุนตู

ธง jp

ฉันได้ตั้งค่า Ubuntu 20.xx เป็นเว็บเซิร์ฟเวอร์ในระบบคลาวด์ที่ให้บริการโดย Digital Ocean และต้องการติดตั้ง Node, Express, Mongo และอาจเป็นไปได้ว่า NginX ในหลายบทความมีการกล่าวถึงการปิดใช้งานผู้ใช้รูทเพื่อปรับปรุงความปลอดภัยและสร้างผู้ใช้ใหม่ที่มีสิทธิ์การเข้าถึงระดับผู้ดูแลระบบ ตามลำดับ ฉันสร้างผู้ใช้ใหม่แล้วใช้สิ่งนี้เพื่อตั้งค่าแอปพลิเคชันทั้งหมด แต่พบปัญหากับ nginx

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

อัพเดท1: ขอบคุณสำหรับความช่วยเหลือของคุณ ฉันได้อัปเดตคำถามและเพิ่มการติดตั้งระบบคลาวด์แล้ว

อัปเดต 2:

ขอบคุณสำหรับคำอธิบายโดยละเอียด ตามที่ฉันเข้าใจ:

  1. ผู้ใช้ Sudo มีสิทธิ์เช่นเดียวกับรูท
  2. ผู้ใช้ Sudo สามารถติดตามได้ว่าใครเป็นผู้ดำเนินการ (ความเกี่ยวข้องเมื่อมีผู้ใช้หลายคนกังวล)
  3. เว็บแอปพลิเคชัน (node, pm2, mongo) สามารถติดตั้งได้ด้วย บัญชีรูทและ/หรือบัญชีผู้ใช้ sudo เนื่องจากแอปพลิเคชันเหล่านี้ควรทำงานด้วยบัญชีผู้ใช้เริ่มต้นของตนเอง
  4. ปิดใช้งาน root ssh เพื่อป้องกันการโจมตีจากเดรัจฉาน
Score:3
ธง cn

บน ติดตั้งสต็อก ของเซิร์ฟเวอร์ Ubuntu บน Bare Metal หรือ VM ที่โฮสต์เอง ผู้ใช้รูทถูกปิดใช้งานแล้ว อย่าเปิดใช้งานรูท ใช้ Ubuntu ในแบบที่ออกแบบมาให้ใช้งาน

บน ติดตั้งระบบคลาวด์ ของ Ubuntu คุณไม่ได้ กำลังติดตั้ง; คอนเทนเนอร์/VM ที่เสร็จแล้วจะถูกส่งถึงคุณ ผู้ใช้ระบบคลาวด์มักจะมีพรอมต์รูทที่ใช้งานได้ เพื่อให้พวกเขาสามารถสร้างผู้ใช้ sudo ผู้ดูแลระบบ. คำแนะนำ: หลังจากที่คุณสร้างผู้ใช้เหล่านั้นและติดตั้งคีย์ SSH ให้ปิดใช้งานการเข้าสู่ระบบรูท (และการเข้าสู่ระบบด้วยรหัสผ่านทั้งหมด) เพื่อป้องกันระบบของคุณจากผู้โจมตี

หากคุณประสบปัญหากับ nginx โปรดเปิดคำถามใหม่เกี่ยวกับปัญหานั้นโดยเฉพาะ

Orange Juice Jones avatar
jp flag
ฉันใช้อิมเมจ Digital Ocean และเปิดใช้งานรูทแล้ว มีบทความที่อธิบายวิธีสร้างผู้ใช้ใหม่และปิดการใช้งานรูท - https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-20-04
Orange Juice Jones avatar
jp flag
คำถามคือควรใช้บัญชีใดในการติดตั้งและเรียกใช้ Node.Js Mongo และ PM2 ขอบคุณ
user10489 avatar
in flag
คำถามความคิดเห็นของคุณ (และต้นฉบับ) แสดงให้เห็นถึงการขาดความเข้าใจพื้นฐานว่าทำไมจึงควรปิดใช้งานรูทและสิ่งที่ sudo ทำแทน บัญชีใดที่ใช้ในการติดตั้งเป็นที่สงสัย บัญชีใดที่จะรันแอปพลิเคชันควรเป็นมูทหรือส่วนหนึ่งของสคริปต์สำหรับเริ่มระบบเพื่อเริ่มต้น
user535733 avatar
cn flag
คำถามของคุณไม่ได้ระบุชัดเจนว่านี่เป็นอินสแตนซ์ระบบคลาวด์ มีความแตกต่างบางประการระหว่างอินสแตนซ์ระบบคลาวด์และการติดตั้งแบบ Bare-Metal/VM แก้ไขที่อยู่ครั้งใหญ่
Orange Juice Jones avatar
jp flag
ขอบคุณ ฉันได้อัปเดตคำถามหลังจากความคิดเห็นของคุณ
Score:1
ธง cn

เมื่อใดจะปิดใช้งานบัญชีรูทบนเซิร์ฟเวอร์อูบุนตู

ฉันขอแนะนำไม่ให้ทำเช่นนั้น แต่ทำสิ่งต่าง ๆ เพื่อเพิ่มความปลอดภัยสูงสุด ถ้ารัฐบาลต้องการเซิร์ฟเวอร์ของคุณ พวกเขาจะใช้วิธีง่ายๆ เพื่อดูไฟล์ของคุณ เราแค่กังวลเกี่ยวกับแฮ็กเกอร์ที่นั่น

ฉันมีอินสแตนซ์บน RamNode ที่ฉันใช้สำหรับเว็บไซต์ของฉัน เมื่อฉันเรียนรู้วิธีตั้งค่าเซิร์ฟเวอร์ Ubuntu แบบอัตโนมัติเป็นครั้งแรก ฉันค้นพบสิ่งสำคัญหลายอย่าง เร็วที่สุดเท่าที่คุณตั้งค่าเซิร์ฟเวอร์ จะมีคนพยายามแฮ็กเข้า!

  1. สร้างรหัสผ่านรูทที่แข็งแกร่ง ควรมีความยาวอย่างน้อย 32 อักขระ อย่าทำคีย์ซ้ำติดกัน ใช้ปุ่มอักขระทั้งหมดบนแป้นพิมพ์ในการเลือกแบบสุ่ม ยกเว้นปุ่ม backtick ' ใช้อักขระพิเศษ เช่น $%& และอย่าใช้คำหรือวลีใดๆ ฉันเก็บข้อมูลการเข้าสู่ระบบในลักษณะนี้ในไฟล์ข้อความบนคอมพิวเตอร์หลักของฉัน: ssh [email protected] 6^g0)6)nS3@sGh^7*9L:pR%bS@3d9

  2. ทันทีที่คุณสร้างเซิร์ฟเวอร์ ให้ทำดังนี้ ufw อนุญาต ssh ufw เปิดใช้งาน การปรับปรุงที่เหมาะสม รายการ apt -- อัพเกรดได้ เหมาะอัพเกรด

ตอนนี้คุณได้ล็อกทุกคนที่พยายามเจาะเข้าไปในรูทของคุณและอัปเดตไฟล์ Ubuntu ของคุณแล้ว ไม่มีการเปิดพอร์ตอื่นเพื่อให้เข้าถึงได้นอกจาก ssh

ฉันยังใช้ ipv4 เท่านั้น ดังนั้นฉันจึงปิดการเข้าถึง ipv6 ผ่านไฟล์ sshd_config, ไฟล์ /etc/default/ufw และไฟล์ /etc/default/grub

หากต้องการดูว่าใครกำลังโจมตีคุณให้ใช้คำสั่งนี้: สถานะ sshd ของบริการ คุณอาจแปลกใจที่เห็นพวกเขาเริ่มพยายามเจาะเข้าเซิร์ฟเวอร์ของคุณเร็วแค่ไหน โดนจีนถล่มแทบไม่ทัน CCP ขโมยข้อมูลจากทุกที่ที่สามารถทำได้มานานหลายทศวรรษ แต่นั่นเป็นอีกเรื่องหนึ่ง

Score:1
ธง in

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

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

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

เมื่อแอปพลิเคชัน (เช่น NginX, mysql, mogodb เป็นต้น) ได้รับการกำหนดค่าให้เริ่มต้นเมื่อบูต โดยทั่วไปสคริปต์การบูต systemd (หรือ initd) จะเริ่มต้นแอปพลิเคชันในฐานะผู้ใช้แอปพลิเคชันพิเศษ ผู้ใช้นี้ถูกสร้างขึ้นเมื่อติดตั้งแอปพลิเคชัน คุณไม่ควรเริ่มต้นแอปพลิเคชันด้วยมือ แต่อนุญาตให้สคริปต์ระบบที่ติดตั้งเริ่มต้น (เช่น systemctl start ...) เพื่อให้รันด้วยสิทธิ์ที่ถูกต้องในสภาพแวดล้อมที่ถูกต้อง ปรัชญาการออกแบบที่อยู่เบื้องหลังสิ่งนี้คือ แอปพลิเคชันถูกแยกออกจากผู้ใช้ของตนเอง และปัญหาด้านความปลอดภัยของแอปพลิเคชัน (หวังว่า) จะติดอยู่ในรหัสผู้ใช้นั้น แอปพลิเคชันส่วนใหญ่ไม่ควรเรียกใช้ในฐานะรูทโดยตรง

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

Orange Juice Jones avatar
jp flag
ขอบคุณสำหรับคำอธิบาย ฉันได้อัปเดตคำถามตามความเข้าใจของฉันแล้ว คุณมีความคิดเห็นเกี่ยวกับเรื่องนี้หรือไม่
user10489 avatar
in flag
เกือบ. บัญชี sudo ไม่เหมือนกับรูท บัญชีที่มีการเข้าถึง sudo มีสิทธิ์ของบัญชีปกติยกเว้นว่าจะสามารถเรียกใช้ sudo เพื่อกลายเป็นรูทได้ ไม่ใช่ว่าบัญชี sudo และบัญชีรูทนั้นเหมือนกัน แต่บัญชี sudo สามารถเรียกใช้สิ่งต่าง ๆ ในฐานะรูทโดยใช้ sudo
Orange Juice Jones avatar
jp flag
เมื่อผู้ใช้ใหม่ถูกสร้างขึ้น (sudo หรือไม่ใช่ sudo) ไดเร็กทอรีจะถูกสร้างขึ้นในไดเร็กทอรีหลักด้วยชื่อผู้ใช้ เมื่อเว็บแอปพลิเคชันถูกติดตั้งโดยใช้บัญชีใหม่นี้ ไดเร็กทอรีใหม่นี้จะเกี่ยวข้องกับการติดตั้งหรือไม่ หรือเก็บเฉพาะข้อมูลสำหรับผู้ใช้เท่านั้น
user10489 avatar
in flag
ขึ้นอยู่กับการติดตั้ง ตัวอย่างเช่น หากคุณติดตั้งซอฟต์แวร์โดยใช้ `sudo apt install` ซอฟต์แวร์จะไม่ใช้สิ่งใดจากไดเร็กทอรีของผู้ใช้

โพสต์คำตอบ

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