แนวทางปฏิบัติที่ดีที่สุดสำหรับเว็บเซิร์ฟเวอร์: โครงสร้างไดเรกทอรีและความปลอดภัย


15

ฉันต้องการใช้เซิร์ฟเวอร์ Ubuntu เป็นเว็บเซิร์ฟเวอร์ แต่ฉันต้องการให้แน่ใจว่าฉันปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดสำหรับการตั้งค่า ฉันต้องการให้แน่ใจว่าฉันตั้งค่าไดเรกทอรีในตำแหน่งที่ดีที่สุดและเข้าใจวิธีการกำหนดค่าความปลอดภัยที่เหมาะสมในโฟลเดอร์นั้น ฉันต้องการให้ FTP ไปยังเซิร์ฟเวอร์และส่งไฟล์ไปยังเว็บโฟลเดอร์ดังนั้นฉันจึงต้องการให้แน่ใจว่าผู้ใช้ PureFTPd ของฉันสามารถจัดการไฟล์ / ไดเรกทอรีภายในเว็บโฟลเดอร์ได้


ฉันพบคำตอบนี้บน serverfault.com และพบว่ามีประโยชน์มาก ความคิดเห็นมากมายเป็นเกร็ดความรู้ที่ดีสำหรับการจัดการกับหัวข้อนี้
MystaMax

คำตอบ:


5

สิ่งที่ฉันทำบนเซิร์ฟเวอร์ของฉันเพื่อให้ผู้ใช้ของฉันสามารถทำสิ่งที่ตรงไปตรงมา/var/wwwคือ:

sudo chgrp -R www-data /var/www
sudo usermod -aG www-data $(whoami)
sudo chmod -R 775 /var/www/*
sudo chmod 2775 /var/www

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


นี้จะเป็นวิธีการที่ดี แต่ถ้าคุณสร้างที่แตกต่างกันจากกลุ่มwww-dataซึ่งเป็นกลุ่มที่เว็บเซิร์ฟเวอร์ของตัวเองอยู่แล้วทำงานภายใต้ ดังนั้นการประนีประนอมใด ๆ ของสคริปต์เซิร์ฟเวอร์เว็บหมายความว่าไฟล์ภายใต้/var/wwwสามารถเปลี่ยนแปลงได้ เพียงแค่เปลี่ยนwww-dataเป็นสิ่งที่ชอบweb-users(และสร้างกลุ่มนั้นก่อนด้วยsudo addgroup web-users)
Kees Cook

2

นี่เป็นคำถามทั่วไป

เห็นได้ชัดว่าคุณไม่ต้องการเรียกใช้เว็บเซิร์ฟเวอร์ในฐานะรูท อย่างไรก็ตามการติดตั้ง Ubuntu นั้นทำอย่างถูกวิธีแล้ว

นอกจากนี้บนเว็บไซต์ของ Apache คือบางส่วนเคล็ดลับวิธีการอย่างถูกกำหนดค่าไดเรกทอรีของคุณ

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


ฉันซาบซึ้งกับข้อมูลฉันรู้ว่ามันเป็นเรื่องปกติฉันหวังว่าอาจจะมีวิธีปฏิบัติที่ดีที่สุดในการตั้งค่าต่างๆ
JPrescottSanders

0

เมื่อฉันมีเซิร์ฟเวอร์ Ubuntu เพียงผู้ใช้หลายคนที่ใช้เซิร์ฟเวอร์เป็นเว็บเซิร์ฟเวอร์ฉันจะคัดลอก/var/wwwไดเรกทอรีเพราะสำหรับฉัน - /var/wwwเป็นที่ที่คุณวางไฟล์เว็บไว้ทั่วโลก ฉันอัปเดต/etc/skelไดเรกทอรีและเพิ่มpublicและprivateโฟลเดอร์ด้วย symlink www -> publicและอัปเดต DocumentRoots โฮสต์เสมือนของฉันทั้งหมดเพื่อให้ชี้ไปที่/home/<user>/publicเสมือนของฉันที่จะชี้ไปที่

ฉันไม่เห็น/var/wwwว่าเป็นที่สำหรับวางโฟลเดอร์และไฟล์หลายระดับผู้ใช้ นั่นคือสิ่งที่/home/ไดเรกทอรีออกแบบมา! มันทำให้เส้นทางและโครงสร้างไดเรกทอรีสะอาด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.