การตั้งค่าการแจ้งเตือน / ตรวจจับการบุกรุกอัตโนมัติแบบใดที่ดีสำหรับการใช้งานที่บ้าน?


27

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

ฉันรู้วิธีค้นหาบันทึกและสิ่งต่าง ๆ แต่ส่วนใหญ่เป็นคู่มือที่ใช้เวลานาน ฉันกำลังมองหาบางสิ่งที่กึ่งอัตโนมัติ / เต็มไปด้วยความสามารถในการแยกบันทึกที่ดี

ฉันตระหนักถึงระบบ IDS สำหรับการตรวจสอบเครือข่ายเช่น Snort เป็นต้น แต่พวกเขามีความชำนาญเกินกว่าสำหรับผู้ใช้ตามบ้านทั่วไปและกระบวนการที่เจ็บปวดในการเริ่มต้นและทำงาน

ตัวเลือกที่ดีสำหรับฉันในฐานะผู้ใช้ตามบ้านคืออะไร?


คุณกำหนด 'passive' อย่างไร ในขณะที่บางสิ่งบางอย่างที่คุณทำงานเป็นครั้งคราวในขณะที่ตัวเองเพื่อดูว่าบางสิ่งบางอย่างที่เกิดขึ้นคาว?
Nanne

คำตอบ:


15

ที่เรียบง่ายและมีประสิทธิภาพในการแก้ปัญหาทั่วไปคือการใช้logcheck

sudo apt-get install logcheck
[edit /etc/logcheck/logcheck.conf to your liking]

logcheckจะสแกนบันทึกทั้งหมดเป็นระยะอย่างมีประสิทธิภาพ (เริ่มจากที่ที่มันปิดครั้งล่าสุด) กรองสิ่งที่เห็นเพื่อกำจัดสิ่งที่ถือว่าเป็นเรื่องปกติ

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

logcheckสามารถกำหนดค่าได้สูง (man logcheck) คุณสามารถกำหนดค่าทุกอย่างรวมถึง:

  • ความถี่ในการตรวจสอบ
  • ไฟล์บันทึกใดถูกตรวจสอบ
  • สิ่งที่ถือว่าปกติเทียบกับไม่
  • ที่จะส่งอีเมลแจ้งเตือน (เหตุการณ์ผิดปกติ) ไปที่

และอื่น ๆ. รูปแบบการเพิกเฉยของคุณ (ปกติ / ปกติ) อยู่ในหลายไฟล์ภายใต้/etc/logcheck/ignore.d.*และคุณสามารถปรับแต่งตามความต้องการของคุณ ส่วนใหญ่คุณอาจต้องการเพิ่มรูปแบบของคุณเองที่จะไม่สนใจ แพ็คเกจเริ่มต้นของ Ubuntu มาพร้อมกับไฟล์จำนวนมากที่มีรูปแบบการเพิกเฉยสำหรับบริการจำนวนมากอยู่แล้วดังนั้นจึงไม่มีอะไรเพิ่มอีกมากเว้นแต่ระบบของคุณจะผิดปกติในสิ่งที่มันทำงาน โปรไฟล์การข้ามไฟล์ที่ละเว้นที่กำหนดค่าไว้ล่วงหน้ามี 3 ชุด: ign.d.workstation , ign.d.serverและign.d.paranoidซึ่งคุณสามารถเลือกได้

แนวคิดหลักที่อยู่เบื้องหลังlogcheckคือบริการต่างๆที่ทำงานอยู่ในระบบได้บันทึกเหตุการณ์ที่ผิดปกติแล้ว เช่นsshdหรือpamมีการบันทึกการตรวจสอบความล้มเหลวแล้ว ดังนั้นส่วนประกอบหลักที่ขาดหายไปคือ:

  • กรองสิ่งที่ปกติ
  • แจ้งเตือนบริการ

ทั้งสองมีให้โดยlogcheckในแพคเกจที่สะดวก คุณสามารถรวมlogcheckกับการบันทึกอื่น ๆ ตัวอย่างเช่นiptablesสามารถกำหนดค่าให้syslogพยายามเชื่อมต่อเครือข่ายใด ๆ ที่ไม่ได้รับอนุญาตอย่างชัดเจนโดยการเพิ่มกฎ:

 iptables -A input -j LOG
 iptables -A input -j DROP

ทันทีหลังจากกฎอนุญาตทั้งหมด

ฉันคิดว่าlogcheckนั้นมีประโยชน์มากกว่าlogwatch (แนะนำในคำตอบอื่น ๆ ) เพราะมันมาพร้อมกับกฎจำนวนมากเพื่อไม่สนใจสิ่งที่ถือว่าเป็นกิจกรรมปกติ ผลลัพธ์คืออัตราส่วนสัญญาณ / เสียงรบกวนที่สูงขึ้นมากในการแจ้งเตือนอีเมล YMMV

ข้อดีอีกอย่างของlogcheckก็คือมันเป็นมุมฉากกับบริการใด ๆ ที่บันทึกดังนั้นจึงไม่มีฟังก์ชั่นซ้ำซ้อน เมื่อใดก็ตามที่คุณเพิ่มบริการใหม่ที่ใช้syslogในการบันทึกเหตุการณ์ผิดปกติหรือไม่เป็นไฟล์ใด ๆ ภายใต้/var/logคุณเริ่มได้รับการแจ้งเตือนโดยอัตโนมัติ

ทำอย่างไร:

เนื่องจากlogcheckมีการกำหนดค่าไว้ล่วงหน้ามาแล้วสองบรรทัดที่ด้านบนสุดของคำตอบนี้จะครอบคลุมทุกสิ่งที่คุณต้องเริ่มต้น เพียงติดตั้งและไปที่ไฟล์กำหนดค่าด้านบน: /etc/logcheck/logcheck.confเพื่อเปลี่ยนที่อยู่อีเมลของคุณเพื่อให้logcheckอีเมลแจ้งเตือนคุณ

นี่คือการอ้างอิงที่เป็นมิตรจะผ่านขั้นตอนที่สองในรายละเอียดเพิ่มเติม เนื่องจาก Ubuntu ใช้ Debian คำแนะนำเหล่านี้จึงควรใช้กับ Ubuntu ได้เช่นกัน นี่คือการอ้างอิงที่ดีอีก

เมื่อคุณติดตั้งแล้วกระบวนการปรับปรุงอย่างต่อเนื่องจะเริ่มต้นขึ้น เมื่อเวลาผ่านไปคุณปรับแต่งกฎของคุณเพื่อเพิกเฉยต่อสิ่งที่คุณรู้แล้วและรู้สึกว่าไม่ควรกังวล กระบวนการปรับแต่งนี้ง่ายพอ ๆ กับการเพิ่มบรรทัดข้อความในไฟล์ในโปรแกรมแก้ไขข้อความที่คุณโปรดปราน

แต่ละบรรทัดในไฟล์ละเว้นเป็นนิพจน์ทั่วไปที่ขยายเพิ่ม (ดูman 7 regex) แต่คุณอาจใช้สตริงแบบง่ายตราบใดที่ตรงกับบรรทัดบันทึกที่คุณต้องการละเว้น เพียงจำไว้ว่าตัวละครที่ชอบ*, ?'+' [], ()เป็นพิเศษในการแสดงออกปกติดังนั้นหากพวกเขาเป็นจริงปรากฏในสายบันทึกคุณจะต้องหลบหนีพวกเขาด้วยเครื่องหมายทับขวา\ในละเว้นไฟล์

กล่าวอีกนัยหนึ่ง: หากคุณได้รับการแจ้งเตือนที่คุณไม่ต้องการให้ดูที่บรรทัดบันทึกข้อมูลที่ส่งถึงคุณทางอีเมลและเพิ่มรูปแบบที่ตรงกับมันเป็นหนึ่งบรรทัดในไฟล์ที่คุณไม่สนใจ ฉันแนะนำให้ใช้ /etc/logcheck/ignore.d.<yourloglevel>/my-ignoresเป็นไฟล์ละเว้นส่วนตัวของคุณ ในกรณีที่<yourloglevel>เป็นหนึ่งparanoid, serverหรือ workstation(ตามที่คุณได้เลือกไว้แล้วในไฟล์ config หลัก/etc/logcheck/logcheck.conf) ดูตัวอย่างในไฟล์ละเว้นอื่น ๆ เพื่อดูวิธีคิดข้อความที่เปลี่ยนแปลงตลอดเวลาเช่น process-IDs หรือ time-stamps มีตัวอย่างที่มีอยู่มากมายให้เรียนรู้จาก

เคล็ดลับสุดท้าย: logcheckมาพร้อมกับยูทิลิตี้ที่มีประโยชน์เล็กน้อยที่เรียกว่าlogcheck-testซึ่งมีประโยชน์มากสำหรับการทดสอบกฎใหม่ man logcheck-testสำหรับรายละเอียด


สวัสดีฉันชอบความคิดที่อยู่เบื้องหลัง logcheck ... คุณช่วยชี้ฉันไปที่คำแนะนำเชิงลึกสำหรับสิ่งนั้นได้หรือไม่? ขอบคุณ :)
irenicus09

1
@ irenicus09: เพิ่งเพิ่มส่วน howto ด้วยลิงค์ตัวเลือกสำหรับการอ้างอิง
arielf

ขอแสดงความยินดีกับการได้รับรางวัลนักเขียนตอบรับที่ดีมาก ขอบคุณ :)
irenicus09

3

หากคุณไม่มีระบบจำนวนมากในเครือข่ายของคุณการตั้งค่า IDS เช่น Snort อาจเกินความจำเป็น (โดยเฉพาะหากคุณไม่มีบริการเครือข่ายในเครื่องของคุณ) ฉันขอแนะนำให้เริ่มต้นด้วยการกำหนดค่า logwatch เพื่อส่งรายงานว่าเกิดอะไรขึ้นกับระบบของคุณ เมื่อคุณทำเสร็จแล้วให้กำหนดค่า syslog ของคุณเพื่อให้ได้ข้อมูลที่เกี่ยวข้องมากที่สุด


สวัสดีฉันชอบคำตอบของคุณ ... แต่คุณสามารถแบ่งปันรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการทำเช่นนั้นได้ไหม การส่งข้อความถึงการกำหนดค่าสามารถทำได้ค่อนข้างยุ่งยากโดยเฉพาะอย่างยิ่งสำหรับผู้ใช้ที่ไม่มีประสบการณ์ แต่ฉันจะขอบคุณถ้าคุณสามารถชี้ให้ฉันไปที่คำแนะนำเชิงลึกสำหรับที่ ขอบคุณ
irenicus09

@ irenicus09 ฉันคิดว่ามันน่าจะเพียงพอ: วิธีการตั้งค่า Logwatch บนระบบที่ใช้ Ubuntu
AndrewX192

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

1

การตรวจจับการบุกรุกเป็นสิ่งจำเป็นอย่างแน่นอนเมื่อคุณเรียกใช้บริการ (ftp, web, nfs, ssh ฯลฯ ) ในเครือข่ายของคุณ นี่เป็นเพราะพวกเขามีการเปิดเผยบนอินเทอร์เน็ตและเนื่องจาก:

  • พลาดการกำหนดค่า
  • ช่องโหว่ของซอฟต์แวร์

พวกเขาต้องการการตรวจสอบรายวันโดยผู้ดูแลระบบเครือข่ายที่มีประสบการณ์ หากคุณใช้บริการนี้คุณอาจมีความรู้ขั้นต่ำถึงวิธีหลีกเลี่ยงปัญหานี้แล้ว

หากคุณไม่ได้เรียกใช้บริการใด ๆ แล้วไฟร์วอลล์เราเตอร์อินเทอร์เน็ตของคุณได้ปิดกั้นการเชื่อมต่อขาเข้าใด ๆ บนพอร์ต ในการสแกนเราเตอร์เครือข่ายของคุณ

  • เพียงไปที่https://www.grc.com/x/ne.dll?bh0bkyd2
  • คลิก "ดำเนินการต่อ"
  • เลือก "พอร์ตทั้งหมด" เพื่อตรวจสอบพอร์ตที่เปิดอยู่

หากคุณเป็นคนสีเขียวคุณก็เป็นคนดี

สุดท้าย แต่ไม่ท้ายสุดเราเตอร์ของคุณอาจมีระบบตรวจจับการบุกรุกในตัว (เนื่องจาก 99% ของเราเตอร์ทั้งหมดใช้เซิร์ฟเวอร์ลินุกซ์ที่มีแถบด้านล่าง) สำหรับสิ่งนี้คุณต้องตรวจสอบคู่มือของผู้ผลิตเราเตอร์ของคุณ


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