คำแนะนำเหล่านี้อยู่นอกส่วนหัวของฉันและไม่ได้ตั้งใจให้ครอบคลุม
ลองใช้ Bastille มันเป็นชุดของสคริปต์ที่ใช้แนวทางปฏิบัติที่ดีที่สุดใน Linux
อย่าส่งข้อมูลการตรวจสอบสิทธิ์ผ่านโปรโตคอลธรรมดา ตัวอย่างเช่นปิดการใช้งาน FTP หากคุณส่งข้อมูลการตรวจสอบสิทธิ์ผ่าน Apache ให้ใช้ SSL
ปิดการใช้งานและลบซอฟต์แวร์ที่ไม่จำเป็นรวมถึงส่วนต่อประสาน GUI
ตรวจสอบไฟล์ใด ๆ ด้วยบิต SUID ที่ตั้งค่าและลบ (สิ่งนี้จะจำกัดความสามารถที่ไม่ใช่รูทอย่างรุนแรงเข้าใจความหมายของการเปลี่ยนแปลงแต่ละอย่าง)
ตรวจสอบไดเรกทอรีสาธารณะที่เขียนได้และลบบิตที่เขียนได้ (ปล่อย / tmp เพียงอย่างเดียว)
หลีกเลี่ยงการรัน daemon ใด ๆ ในฐานะรูท
วิจัยซอฟต์แวร์หลายผู้ใช้ทั้งหมดที่ฟังซ็อกเก็ตอย่างละเอียดเพื่อความปลอดภัย
การหลีกเลี่ยงการเพิ่มผู้ใช้ในระบบเป็นหนึ่งในแนวทางที่ดีที่สุด ระบบผู้ใช้หลายคนต้องการความใส่ใจในรายละเอียด
บังคับใช้มาตรฐานรหัสผ่าน ตัวอย่างเช่น: อักขระขั้นต่ำ 10 ตัวอักขระที่ไม่ใช่ตัวอักษรและตัวเลขโดยใช้ตัวอักษรและตัวเลข นี่คือการทำให้เดรัจฉานบังคับให้ยากขึ้นในกรณีของการประนีประนอมไฟล์รหัสผ่าน บังคับใช้สิ่งนี้ผ่านระบบ
ล็อคผู้ใช้หลังจากพยายามรับรองความถูกต้องล้มเหลว 5 ครั้งด้วยการล็อคขั้นต่ำ 10 นาที รักษาประวัติรหัสผ่านเพื่อให้ผู้ใช้ไม่สามารถใช้รหัสผ่าน 5 ที่ผ่านมา
หากคุณมีสภาพแวดล้อมที่ใหญ่กว่าการใช้การแยกเครือข่ายด้วยซับเน็ตหลายเครือข่ายเพื่อแยกความเสี่ยงเป็นข้อกำหนดที่แน่นอน หากสภาพแวดล้อมขนาดเล็กแนะนำให้ใช้ไฟร์วอลล์บนระบบภายในเพื่อ จำกัด การเปิดรับแสง ตัวอย่างเช่นอนุญาต SSH กับ IP ของคุณเท่านั้น tcpwrappers สามารถใช้กับเลเยอร์พิเศษได้อีกด้วย (/etc/hosts.allow, /etc/hosts.deny)
และแน่นอนทำให้ซอฟต์แวร์ทั้งหมดทันสมัย โดยเฉพาะอย่างยิ่งหันหน้าไปทางสาธารณะ
ด้วย SSH:
- ปิดใช้งานโปรโตคอล SSH 1
- อนุญาตการตรวจสอบสิทธิ์รูท
without-password
เท่านั้น (คีย์แพร์เท่านั้น)
ด้วย Apache:
- ปิดการใช้งานโมดูลใด ๆ ที่ไม่จำเป็น
- ปิดใช้งาน. htaccess และไดเรกทอรีสาธารณะ
- ปิดใช้งาน FollowSymlink และตัวเลือกที่ไม่จำเป็น
- อย่าติดตั้ง PHP หากคุณไม่ต้องการ
ด้วย MySQL:
- ปิดการใช้งานผู้ใช้เริ่มต้น
- อย่าใช้โฮสต์สัญลักษณ์แทน
- อย่าลืมตั้งค่าโฮสต์ที่ไม่ซ้ำกันสำหรับผู้ใช้ทุกคน
- อย่าฟัง tcp เว้นแต่จำเป็น (หลีกเลี่ยงไม่ได้อย่างผิดปกติ)
- จำกัด สิทธิ์ผู้ใช้แอปพลิเคชันให้มากที่สุด (SELECT, INSERT, UPDATE, DELETE เหมาะสำหรับการเขียนและ SELECT เพื่ออ่าน)
ฉันขอแนะนำให้ทำการค้นคว้า php.ini การปรับแต่งเพื่อความปลอดภัยโดยเฉพาะ เป็นซอฟต์แวร์ที่มีความเสี่ยงตามค่าเริ่มต้น
Bastille