สมมติว่าฉันติดตั้ง Ubuntu ใหม่ฉันควรทำอย่างไรเพื่อรักษาความปลอดภัยไว้เพื่อใช้เป็นเซิร์ฟเวอร์แอปพลิเคชัน Rails
สมมติว่าฉันติดตั้ง Ubuntu ใหม่ฉันควรทำอย่างไรเพื่อรักษาความปลอดภัยไว้เพื่อใช้เป็นเซิร์ฟเวอร์แอปพลิเคชัน Rails
คำตอบ:
ฉันไม่สามารถนึกถึงการปรับแต่งเฉพาะของ Ubuntu ได้ แต่นี่เป็นข้อแนะนำบางประการที่ใช้กับการแจกแจงทั้งหมด:
แน่นอนว่ารายการนี้ยังไม่สมบูรณ์และคุณจะไม่ปลอดภัยอย่างสมบูรณ์ แต่ครอบคลุมการหาประโยชน์ทั้งหมดที่ฉันได้เห็นในชีวิตจริง
นอกจากนี้การหาประโยชน์ที่ฉันได้เห็นมักเกี่ยวข้องกับรหัสผู้ใช้ที่ไม่ปลอดภัยไม่ใช่การกำหนดค่าที่ไม่ปลอดภัย การกำหนดค่าเริ่มต้นในขั้นต่ำการกระจายเซิร์ฟเวอร์มักจะค่อนข้างปลอดภัย
สิ่งหนึ่งที่รวดเร็วที่ฉันทำในช่วงต้นคือการติดตั้งDenyHosts มันจะตรวจสอบ / var / log / secure เป็นประจำค้นหาการล็อกอินที่ล้มเหลวและหลังจากความล้มเหลวสองสามครั้งให้ปิดกั้น IP ฉันตั้งค่าให้บล็อกหลังจากไม่มีผู้ใช้คนแรกในความพยายามครั้งที่สองที่รูทและหลังจากพยายามสองสามครั้งสำหรับผู้ใช้จริง (ในกรณีที่คุณเลอะ แต่คุณควรใช้รหัสสาธารณะ SSH เพื่อเข้าสู่ระบบ)
Ubuntu ขึ้นอยู่กับ Debian และฉันได้พบคู่มือการรักษาความปลอดภัย Debianนั้นมีประโยชน์อย่างมากในการแจกแจงแบบ Debian ในการนำคุณเข้าสู่ระบบของคุณอย่างสมบูรณ์และตรวจสอบทุกส่วน โดยทั่วไปแล้วมันเป็นคำตอบที่ครอบคลุมและครอบคลุมสำหรับคำถามของคุณ
ฉันมักจะติดตั้ง RKHunter ซึ่งสแกนหารูทคิทและทำการตรวจสอบความสมบูรณ์ของไบนารีระบบที่สำคัญต่างๆ มันอยู่ใน repo มาตรฐานและจะทำงานทุกวันจาก cron มันไม่สมบูรณ์แบบปลอดภัย แต่เป็นไอเท็มที่ใช้ความพยายามต่ำและมันก็มีมาตรการป้องกัน
ติดตั้ง logcheck แต่ปรับแต่งเพื่อให้คุณไม่เคยได้รับข้อความจากเหตุการณ์ปกติมิฉะนั้นคุณจะไม่สนใจอีเมล
ตรวจสอบว่ากระบวนการใดบ้างที่กำลังรับฟังโดยใช้ netstat และตรวจสอบให้แน่ใจว่าไม่มีอะไรทำงานที่ไม่จำเป็นต้องเรียกใช้ daemons จำนวนมากสามารถกำหนดค่าเพื่อฟังบน IP ภายใน (หรือ localhost) แทนการเชื่อมต่อทั้งหมด
ทำในสิ่งที่สามารถแนะนำ ...
Nmap โฮสต์และปิดใช้งานบริการที่ไม่จำเป็นทั้งหมด ใช้ iptables หากจำเป็น
หากคุณไปที่ใดก็ได้ใกล้กับอินเทอร์เน็ตด้วยเซิร์ฟเวอร์ให้ติดตั้งระบบตรวจจับการบุกรุกเช่น snort
ใช้พาร์ติชันแยกต่างหากสำหรับไดเรกทอรีต่าง ๆ เช่น/tmp
หรือ/var
และประกอบเข้าด้วยnosuid
กันnodev
และnoexec
ถ้าเป็นไปได้
เรียนรู้การใช้ไฟร์วอลล์และแนวคิดของการล็อคกล่องอย่างถูกต้อง การเปลี่ยนพอร์ตเริ่มต้นเป็นสิ่งที่ไร้ประโยชน์ แอปพลิเคชันที่เหมาะสมและการกำหนดค่าไฟร์วอลล์มีความสำคัญมากกว่า
ทั้งสองอยู่ใน repos Ubuntu:
มีเอกสารที่ยอดเยี่ยมและง่ายต่อการเรียนรู้ไวยากรณ์ ฉันสามารถตั้งค่าเกตเวย์ / ไฟร์วอลล์ภายในยี่สิบนาที เหตุผลเดียวที่ฉันย้ายออกจากนี้คือมันดูเหมือนจะไม่ได้รับการบำรุงรักษา (รุ่นล่าสุด 2 ปีที่แล้ว) ไม่ได้หมายความว่ามันใช้งานไม่ได้ แต่ ...
เป็นอีกคนหนึ่ง ไวยากรณ์เหมือน iptables เพิ่มเติม แต่มีแนวคิดเดียวกัน บำรุงรักษาชุมชนมากกว่า FireHOL แต่ใช้เวลานานในการรับ
คือสิ่งที่ฉันใช้อยู่ในปัจจุบัน มันมีเอกสารมากมายและรูปแบบการกำหนดค่าเป็นตาราง ฉันใช้เวลาประมาณหนึ่งชั่วโมงครึ่งในการทำความเข้าใจไฟล์ทั้งหมดที่จำเป็น (6) เพื่อให้การกำหนดค่าไฟร์วอลล์ / เกตเวย์ทำงานอยู่ มันค่อนข้างทรงพลัง เคล็ดลับ: หน้า man สำหรับไฟล์ config ต่าง ๆ นั้นมีประโยชน์จริง ๆ !
การกำหนดค่าโหลดไฟร์วอลล์เหล่านี้ทั้งหมดจากไฟล์กำหนดค่า มีประสิทธิภาพมากใช้งานง่ายกว่า iptables ตรงขึ้นและ (ในความคิดของฉัน) ใช้และจัดการได้ง่ายกว่า ufw
ฉันสองคำแนะนำสำหรับการใช้คีย์ SSH
ตั้งค่า IDS
เรียนรู้เกี่ยวกับ AppArmor มัน จำกัด การเข้าถึงไฟล์ของ executables เฉพาะไดเรกทอรีและไฟล์ที่ระบุ คล้ายกับ SELinux ในโลก RHEL มันได้รับการติดตั้งและเปิดใช้งานด้วย 'โปรไฟล์' ที่กำหนดค่าไว้ล่วงหน้าสำหรับโปรแกรมที่ใช้งานเป็นจำนวนมาก
เช่นเดียวกับคำแนะนำอื่น ๆ ที่นี่ฉันจะพูดถึงสามที่เห็นได้ชัด แต่อาจคุ้มค่าที่จะกล่าวถึงความสมบูรณ์: