เกินความปลอดภัยของเว็บเซิร์ฟเวอร์?


9

ฉันทำการค้นคว้าอย่างกว้างขวางเกี่ยวกับการรักษาความปลอดภัยของเว็บเซิร์ฟเวอร์ linux ด้านบนของสิ่งที่ถือว่าเป็น "พื้นฐาน" (ลบบริการที่ไม่ได้ใช้, การชุบแข็ง ssh, iptables, ฯลฯ ) ควรที่จะรวม anti-rootkits (Tripwire) และ anti-virus (ClamAV) หรือไม่? สิ่งเหล่านี้เกินความจริงสำหรับเว็บเซิร์ฟเวอร์หรือไม่ ฉันรู้ว่านี่เป็นคำถามที่คลุมเครือ แต่ฉันสงสัยในความคิดเห็นของผู้อื่น

สภาพแวดล้อมในอนาคตของฉัน: - Ubuntu 10.04 - fail2ban - nginx 0.8.x - php 5.3.x (suhosin, apc, memcached) - mongodb 1.6.x

แอปพลิเคชันที่เป็นไปได้: - บริการบนเว็บ - เว็บแอปที่มีผู้ใช้อัปโหลด (รูปภาพ, PDF, ฯลฯ ) - เว็บไซต์ทั่วไป (แบบฟอร์ม ฯลฯ )

หากคุณมีเคล็ดลับอื่น ๆ โปรดเพิ่ม!

ขอบคุณ

คำตอบ:


8

สำหรับเซิร์ฟเวอร์สาธารณะฉันจะบอกว่าการติดตั้งสิ่งที่คล้ายกับ tripwire นั้นไม่เกินความจริง

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

บนเซิร์ฟเวอร์ที่เผชิญกับสาธารณะฉันมี SSH ไม่อนุญาตให้มีการตรวจสอบรหัสผ่านเฉพาะการตรวจสอบคีย์สาธารณะ หาก SSH เป็นไปได้เฉพาะจาก LAN ภายในคุณอาจผ่อนคลายสิ่งนี้ได้

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


2
อย่าลืม LMD (การตรวจจับมัลแวร์ Linux), rfxn.com/projects/linux-malware-detect - นี่จะเป็นการสแกนหามัลแวร์ประเภทที่ติดไวรัสบนเว็บแอปพลิเคชัน (HTML, PHP, JavaScript การเปลี่ยนแปลงไฟล์) เพื่อใช้เว็บไซต์ของคุณ SEO การสแปมการฟิชชิ่งการติดเชื้อพีซีของผู้เข้าชม ฯลฯ
RichVel

3

ไม่คุณไม่ได้ไปไกลพอ

1) คุณต้องการไฟร์วอลล์เว็บแอปพลิเคชันเช่นmod_securityและตรวจสอบให้แน่ใจว่าได้กำหนดค่าให้บล็อกการโจมตีไม่ใช่แค่บันทึกพวกเขา

2) ล็อค PHP กับphpsecinfo

3) ล็อคบัญชี MySQL ของเว็บแอปพลิเคชันของคุณตรวจสอบให้แน่ใจว่าแอปพลิเคชันของคุณไม่มีFILEสิทธิ์ใช้งานเป็นแอพที่อันตรายที่สุดใน MySQL

4) ไฟร์วอลล์ปิด UDP ทั้งหมดและ TCP ทั้งหมดที่คุณไม่ต้องการ พิจารณาการใช้พอร์ตเคาะสำหรับ ssh การล้มเหลวในการแบนไม่ดีเท่ากับการพยายามเป็นศูนย์


1) ฉันรู้สึกว่า ModSecurity สามารถบรรจุด้วย Apache ได้เท่านั้น (ฉันใช้ nginx) แต่เห็นได้ชัดว่ามันสามารถทำงานแบบสแตนด์อโลน ฉันจะต้องตรวจสอบขอบคุณนี้! ฉันติดตาม calomel.org/nginx.html แล้วสำหรับคุณสมบัติบางประการ
แอรอน

4) ฉันใช้ iptables เพื่อบล็อกทราฟฟิกขาเข้าและขาออกทั้งหมดยกเว้นว่าจะเป็นพอร์ต ssh, https หรือ https (ขาเข้า, ขาออก) ของฉัน ฉันจะเปิดขึ้นเมื่อฉันไปตาม Port knocking เป็นส่วนเสริมที่น่าสนใจสำหรับ ssh! ขอบคุณอีกครั้ง!.
แอรอน

@Aaron ฉันไม่แน่ใจว่าทำไมคุณถึงใช้ nginx คุณสามารถใช้ apache + mod_security เป็นพร็อกซีที่มี httpd ที่แปลกและไร้รูปแบบที่คุณต้องการใช้
โกง

2

คุณสามารถติดตั้งAIDEได้อย่างปลอดภัยบนเว็บเซิร์ฟเวอร์ - การเพิ่มและลบลูกค้าจะไม่เปลี่ยนแปลงไฟล์การกำหนดค่ามากเกินไปและคุณอาจกรองการพูดคุยปกติได้อย่างง่ายดาย

แต่สิ่งที่คู่มือเซิร์ฟเวอร์รักษาความปลอดภัยจำนวนมากไม่ได้กล่าวถึงคือคุณควรเปิด noexec บน / tmp พาร์ติชันของคุณใน / etc / fstab หากคุณเสนอการโฮสต์ต่อสาธารณะหลาย ๆ คนที่ดีจะติดตั้งเว็บแอปพลิเคชันที่ไม่ปลอดภัยโดยที่คุณไม่รู้ (และไม่มีความรู้ในการอัปเดตแอปพลิเคชันของตน) และคุณก็ไล่ล่าบั๊กเหล่านี้ตลอดไป หากคุณแน่ใจว่าที่เดียวที่ผู้โจมตีสามารถบันทึกซอฟต์แวร์ได้คือโฮมไดเร็กตอรี่ของลูกค้าและไดเรกทอรี / tmp ดังนั้นผู้โจมตีจะเสี่ยงต่อการแสดงให้คุณเห็นว่าพวกเขาอยู่ที่ไหนหากพวกเขาไม่สามารถใช้ไดเรกทอรี / tmp ได้ พวกเขาไม่ชอบทำเช่นนั้น

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


2

"ยินดีต้อนรับบนเรือ! บนเครื่องบินของสายการบินใหม่ของเราคุณสามารถเพลิดเพลินไปกับร้านอาหารโรงยิมยิมซาวน่าและสระว่ายน้ำตอนนี้คาดเข็มขัดนิรภัยกัปตันของเรากำลังพยายามที่จะรับอากาศทั้งหมดนี้"

  1. mod_security เป็นความเจ็บปวดสำหรับคุณและเซิร์ฟเวอร์ ทรัพยากรมันหิวและกฎของมันต้องการการบำรุงรักษาอย่างจริงจังและมันจะเป็นงานที่ไม่รู้จบ และไม่มันใช้งานไม่ได้แบบสแตนด์อโลนหรือใช้กับ Nginx หากคุณรู้สึกว่าคุณต้องการจริงๆให้ตั้งค่าพร็อกซีเซิร์ฟเวอร์แยกต่างหาก (Apache, mod_proxy, mod_security) นอกจากนี้ยังทำงานเป็น DMZ เซิร์ฟเวอร์จริงของคุณสามารถปิดไปสู่โลกภายนอกได้อย่างสมบูรณ์และหากมีการละเมิดพร็อกซีก็จะไม่มีอะไรเกิดขึ้น

  2. ClamAV นั้นหนักมากเช่นกันหากทำงานเป็น daemon จะดีกว่าถ้าหากเรียกใช้ clamscan เป็นระยะในช่วงเวลาที่ไม่ทำงานจาก Cron

  3. Tripwire มากเกินไป IMHO แต่สิ่งที่สามารถตามรูทคิทจะเป็นประโยชน์มีสคริปต์มากมาย (rkhunter, chkrootkit)

  4. ฉันเชื่อว่าอย่างน้อย 90% ของรูทคิทและอื่น ๆ ไปยังเซิร์ฟเวอร์ผ่านการอัปโหลดจากเครื่องที่ใช้ Windows ไม่มีวิธีที่ดีในการป้องกันสิ่งนี้ยกเว้นอาจบังคับให้ผู้ใช้ไม่เคยใช้ Windows โทรจันส่วนใหญ่ค้นหาข้อมูลประจำตัว FTP ดังนั้นอย่าใช้ FTP


เป็นการดีที่จะรู้ ... พิจารณาจากฉันไม่มีความตั้งใจที่จะใช้เส้นทางอะแพชฉันจะยึดติดกับความปลอดภัยที่ฉันสามารถหาได้ใน nginx ฉันอาจจะจบลงด้วยการใช้เส้นทางหอย / rkhunter เช่นกัน ขอบคุณสำหรับเคล็ดลับ!
แอรอน

0

การใช้การป้องกันฟอร์มแคปต์ชาในเอ็นจิน CMS ที่เป็นที่นิยม (Wordpress, Jomlaa, Drupal) ถือเป็นแนวทางปฏิบัติด้านความปลอดภัยหรือไม่? ถ้าใช่คุณสามารถใช้สิ่งเหล่านี้:


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