ที่เรียบง่ายและมีประสิทธิภาพในการแก้ปัญหาทั่วไปคือการใช้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
สำหรับรายละเอียด