การรักษาความปลอดภัยเซิร์ฟเวอร์ Ubuntu ใหม่ [ปิด]


37

สมมติว่าฉันติดตั้ง Ubuntu ใหม่ฉันควรทำอย่างไรเพื่อรักษาความปลอดภัยไว้เพื่อใช้เป็นเซิร์ฟเวอร์แอปพลิเคชัน Rails


มีคำถามที่คล้ายกันที่นี่อาจช่วยได้; serverfault.com/questions/11659
hayalci

คำตอบ:


25

ฉันไม่สามารถนึกถึงการปรับแต่งเฉพาะของ Ubuntu ได้ แต่นี่เป็นข้อแนะนำบางประการที่ใช้กับการแจกแจงทั้งหมด:

  1. ถอนการติดตั้งแพ็คเกจที่ไม่จำเป็นทั้งหมด
  2. ใช้การพิสูจน์ตัวตนแบบพับลิกคีย์เท่านั้นใน SSH
  3. ปิดใช้งานการเข้าสู่ระบบผ่าน SSH (ไม่ได้ใช้กับ Ubuntu)
  4. ใช้การตั้งค่าการผลิตสำหรับ PHP (แนะนำ php.ini)
  5. กำหนดค่า MySQL ให้ใช้ซ็อกเก็ตเท่านั้น

แน่นอนว่ารายการนี้ยังไม่สมบูรณ์และคุณจะไม่ปลอดภัยอย่างสมบูรณ์ แต่ครอบคลุมการหาประโยชน์ทั้งหมดที่ฉันได้เห็นในชีวิตจริง

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


1
เปลี่ยนพอร์ตสำหรับบริการเช่น MySQL (ไร้ประโยชน์หากกำหนดค่าให้ใช้ซ็อกเก็ตเท่านั้น), FTP (แม้ว่าคุณจะปลอดภัยแล้วคุณไม่ควรใช้ FTP เลย), SSH และทุกประเภท
Josh Hunt

3
"ถอนการติดตั้งแพ็คเกจที่ไม่จำเป็นทั้งหมด". ตกลง. ค่อนข้างคลุมเครือ แพ็คเกจ 'ไม่จำเป็น' คืออะไร
ลุค

2
@Luke: สิ่งที่คุณไม่ได้ใช้นั้นไม่จำเป็น บริการที่ทำงานเฉพาะเจาะจงมากขึ้นซึ่งคุณไม่ต้องการให้มีความเสี่ยงที่ไม่จำเป็น
Andrioid

@ ลุค: cat / etc / services ควรให้ความคิดกับคุณ
jeshurun

17

สิ่งหนึ่งที่รวดเร็วที่ฉันทำในช่วงต้นคือการติดตั้งDenyHosts มันจะตรวจสอบ / var / log / secure เป็นประจำค้นหาการล็อกอินที่ล้มเหลวและหลังจากความล้มเหลวสองสามครั้งให้ปิดกั้น IP ฉันตั้งค่าให้บล็อกหลังจากไม่มีผู้ใช้คนแรกในความพยายามครั้งที่สองที่รูทและหลังจากพยายามสองสามครั้งสำหรับผู้ใช้จริง (ในกรณีที่คุณเลอะ แต่คุณควรใช้รหัสสาธารณะ SSH เพื่อเข้าสู่ระบบ)


3
ในขณะที่คุณเชื่อมโยงไปยังหน้าแรกของ sourceforge - denyhosts ยังมีอยู่ในพื้นที่เก็บข้อมูล (จักรวาล) ผ่าน "sudo aptitude install denyhosts"
Olaf

จุดที่ดี @olaf เซิร์ฟเวอร์ส่วนใหญ่ที่ฉันติดตั้งไว้คือ RHEL ซึ่งอยู่ใน repo ของ DAG ด้วย
Alister Bulman

+1 สำหรับ denyhosts
wimvds

2
ดูเหมือนว่า DenyHosts จะตรวจจับและบล็อกการโจมตีแบบ SSH Brute Force เท่านั้น ทางเลือกที่ดีกว่าคือ fail2ban (มีให้ใน repos ด้วย) ซึ่งคอยตรวจสอบสิ่งต่าง ๆ รวมถึง apache log ท่ามกลางสิ่งอื่น ๆ ตรวจสอบวิกิชุมชนที่help.ubuntu.com/community/Fail2ban
jeshurun

10

Ubuntu ขึ้นอยู่กับ Debian และฉันได้พบคู่มือการรักษาความปลอดภัย Debianนั้นมีประโยชน์อย่างมากในการแจกแจงแบบ Debian ในการนำคุณเข้าสู่ระบบของคุณอย่างสมบูรณ์และตรวจสอบทุกส่วน โดยทั่วไปแล้วมันเป็นคำตอบที่ครอบคลุมและครอบคลุมสำหรับคำถามของคุณ


คุณมีลิงค์สำหรับสิ่งนั้นหรือไม่?
Flame

1
ขออภัยคิดว่าลิงก์อยู่ในโพสต์ มันอยู่ที่: debian.org/doc/manuals/securing-debian-howto
Mike McQuaid

5

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


4

ติดตั้ง logcheck แต่ปรับแต่งเพื่อให้คุณไม่เคยได้รับข้อความจากเหตุการณ์ปกติมิฉะนั้นคุณจะไม่สนใจอีเมล

ตรวจสอบว่ากระบวนการใดบ้างที่กำลังรับฟังโดยใช้ netstat และตรวจสอบให้แน่ใจว่าไม่มีอะไรทำงานที่ไม่จำเป็นต้องเรียกใช้ daemons จำนวนมากสามารถกำหนดค่าเพื่อฟังบน IP ภายใน (หรือ localhost) แทนการเชื่อมต่อทั้งหมด


3

ทำในสิ่งที่สามารถแนะนำ ...

Nmap โฮสต์และปิดใช้งานบริการที่ไม่จำเป็นทั้งหมด ใช้ iptables หากจำเป็น


2
บนเซิร์ฟเวอร์ใด ๆ ที่สามารถเข้าถึงได้ผ่านอินเทอร์เน็ต iptables จำเป็นเสมอ ;-)
Christopher Cashell

3

หากคุณไปที่ใดก็ได้ใกล้กับอินเทอร์เน็ตด้วยเซิร์ฟเวอร์ให้ติดตั้งระบบตรวจจับการบุกรุกเช่น snort


3

ใช้พาร์ติชันแยกต่างหากสำหรับไดเรกทอรีต่าง ๆ เช่น/tmpหรือ/varและประกอบเข้าด้วยnosuidกันnodevและnoexecถ้าเป็นไปได้


3

คำแนะนำไฟร์วอลล์บางอย่าง

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

ทั้งสองอยู่ใน repos Ubuntu:

FireHOL

มีเอกสารที่ยอดเยี่ยมและง่ายต่อการเรียนรู้ไวยากรณ์ ฉันสามารถตั้งค่าเกตเวย์ / ไฟร์วอลล์ภายในยี่สิบนาที เหตุผลเดียวที่ฉันย้ายออกจากนี้คือมันดูเหมือนจะไม่ได้รับการบำรุงรักษา (รุ่นล่าสุด 2 ปีที่แล้ว) ไม่ได้หมายความว่ามันใช้งานไม่ได้ แต่ ...

Ferm

เป็นอีกคนหนึ่ง ไวยากรณ์เหมือน iptables เพิ่มเติม แต่มีแนวคิดเดียวกัน บำรุงรักษาชุมชนมากกว่า FireHOL แต่ใช้เวลานานในการรับ

Shorewall

คือสิ่งที่ฉันใช้อยู่ในปัจจุบัน มันมีเอกสารมากมายและรูปแบบการกำหนดค่าเป็นตาราง ฉันใช้เวลาประมาณหนึ่งชั่วโมงครึ่งในการทำความเข้าใจไฟล์ทั้งหมดที่จำเป็น (6) เพื่อให้การกำหนดค่าไฟร์วอลล์ / เกตเวย์ทำงานอยู่ มันค่อนข้างทรงพลัง เคล็ดลับ: หน้า man สำหรับไฟล์ config ต่าง ๆ นั้นมีประโยชน์จริง ๆ !

การกำหนดค่าโหลดไฟร์วอลล์เหล่านี้ทั้งหมดจากไฟล์กำหนดค่า มีประสิทธิภาพมากใช้งานง่ายกว่า iptables ตรงขึ้นและ (ในความคิดของฉัน) ใช้และจัดการได้ง่ายกว่า ufw

อื่น ๆ :

  • ฉันสองคำแนะนำสำหรับการใช้คีย์ SSH

  • ตั้งค่า IDS

  • เรียนรู้เกี่ยวกับ AppArmor มัน จำกัด การเข้าถึงไฟล์ของ executables เฉพาะไดเรกทอรีและไฟล์ที่ระบุ คล้ายกับ SELinux ในโลก RHEL มันได้รับการติดตั้งและเปิดใช้งานด้วย 'โปรไฟล์' ที่กำหนดค่าไว้ล่วงหน้าสำหรับโปรแกรมที่ใช้งานเป็นจำนวนมาก


2

เช่นเดียวกับคำแนะนำอื่น ๆ ที่นี่ฉันจะพูดถึงสามที่เห็นได้ชัด แต่อาจคุ้มค่าที่จะกล่าวถึงความสมบูรณ์:

  1. หากคุณไม่คิดว่าคุณต้องการไฟร์วอลล์ให้คิดอีกครั้ง ufw นั้นเรียบง่าย แต่ออกแบบมาสำหรับ Ubuntu และขึ้นอยู่กับ iptables
  2. อัปเดตแพ็คเกจ: อย่างน้อยที่สุดจะใช้แพตช์ความปลอดภัยทั้งหมด
  3. จัดทำเอกสารสิ่งที่คุณทำเพื่อรักษาความปลอดภัยเซิร์ฟเวอร์และสาเหตุ รวมกระบวนการกำหนดค่า (อัตโนมัติ) เพื่อตรวจสอบบันทึกทดสอบการกำหนดค่าและรายงานการปรับปรุงความปลอดภัยที่จำเป็น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.