วิธีค้นหาบันทึกการตรวจสอบโดยใช้เครื่องมือ 'ausearch' บน CentOS/RHEL
ในบทความล่าสุดของเรา เราได้อธิบายวิธีการตรวจสอบระบบ RHEL หรือ CentOS โดยใช้ยูทิลิตี้ auditd ระบบการตรวจสอบ (auditd) เป็นระบบการบันทึกที่ครอบคลุมและไม่ได้ใช้ syslog สำหรับเรื่องนั้น นอกจากนี้ยังมาพร้อมกับชุดเครื่องมือสำหรับจัดการระบบตรวจสอบเคอร์เนลตลอดจนการค้นหาและจัดทำรายงานจากข้อมูลในไฟล์บันทึก
ในบทช่วยสอนนี้ เราจะอธิบายวิธีการใช้เครื่องมือ ausearch เพื่อดึงข้อมูลจากไฟล์บันทึก auditd บนการกระจาย Linux ที่ใช้ RHEL และ CentOS
อ่านเพิ่มเติม: 4 เครื่องมือตรวจสอบและจัดการบันทึกโอเพ่นซอร์สที่ดีสำหรับ Linux
ดังที่เราได้กล่าวไว้ก่อนหน้านี้ ระบบการตรวจสอบมีภูตการตรวจสอบ พื้นที่ผู้ใช้ (auditd) ซึ่งรวบรวมข้อมูลที่เกี่ยวข้องกับความปลอดภัยตามกฎที่กำหนดค่าไว้ล่วงหน้า จากเคอร์เนลและ สร้างรายการในไฟล์บันทึก
การตรวจค้นคืออะไร?
ausearch เป็นเครื่องมือบรรทัดคำสั่งง่ายๆ ที่ใช้เพื่อค้นหาไฟล์บันทึกการตรวจสอบ daemon ตามเหตุการณ์และเกณฑ์การค้นหาที่แตกต่างกัน เช่น ตัวระบุเหตุการณ์ ตัวระบุคีย์ สถาปัตยกรรม CPU ชื่อคำสั่ง ชื่อโฮสต์ ชื่อกลุ่ม หรือ ID กลุ่ม , syscall, ข้อความ และอื่นๆ นอกจากนี้ยังยอมรับข้อมูลดิบจาก stdin
ตามค่าเริ่มต้น ausearch จะค้นหาไฟล์ /var/log/audit/audit.log ซึ่งคุณสามารถดูได้เช่นเดียวกับไฟล์ข้อความอื่นๆ
cat /var/log/audit/audit.log
OR
cat /var/log/audit/audit.log | less
จากภาพหน้าจอด้านบน คุณสามารถดูข้อมูลจำนวนมากจากไฟล์บันทึก ทำให้ยากต่อการได้รับข้อมูลเฉพาะที่น่าสนใจ
ดังนั้น คุณจำเป็นต้องมี ausearch ซึ่งช่วยให้สามารถค้นหาข้อมูลได้อย่างมีประสิทธิภาพและมีประสิทธิภาพมากขึ้นโดยใช้ไวยากรณ์ต่อไปนี้
ausearch [options]
ตรวจสอบบันทึกกระบวนการที่รันอยู่ในไฟล์บันทึก Auditd
ธง -p
ใช้เพื่อส่งรหัสกระบวนการ
ausearch -p 2317
ตรวจสอบความพยายามเข้าสู่ระบบที่ล้มเหลวในไฟล์บันทึก Auditd
ที่นี่ คุณต้องใช้ตัวเลือก -m
เพื่อระบุข้อความที่ต้องการ และใช้ -sv
เพื่อกำหนดค่าความสำเร็จ
ausearch -m USER_LOGIN -sv no
ค้นหากิจกรรมของผู้ใช้ในไฟล์บันทึก Auditd
-ua ใช้เพื่อส่ง ชื่อผู้ใช้
ausearch -ua tecmint
OR
ausearch -ua tecmint -i # enable interpreting of numeric entities into text.
หากต้องการสอบถามการกระทำที่ผู้ใช้บางรายทำในช่วงเวลาที่กำหนด ให้ใช้ -ts
สำหรับวันที่/เวลาเริ่มต้น และ -te
เพื่อระบุวันที่/เวลาสิ้นสุดดังนี้ ( โปรดทราบว่าคุณสามารถใช้คำต่างๆ เช่น ตอนนี้, ล่าสุด, วันนี้, เมื่อวาน, สัปดาห์นี้, สัปดาห์ที่แล้ว, เดือนนี้, ปีนี้ รวมถึงจุดตรวจแทนรูปแบบเวลาจริง)
ausearch -ua tecmint -ts yesterday -te now -i
ตัวอย่างเพิ่มเติมเกี่ยวกับการค้นหาการดำเนินการโดยผู้ใช้ที่กำหนดบนระบบ
ausearch -ua 1000 -ts this-week -i
ausearch -ua tecmint -m USER_LOGIN -sv no -i
ค้นหาการแก้ไขบัญชีผู้ใช้ กลุ่ม และบทบาทในบันทึกการตรวจสอบ
หากคุณต้องการตรวจสอบการเปลี่ยนแปลงระบบทั้งหมดที่เกี่ยวข้องกับบัญชีผู้ใช้ กลุ่ม และบทบาท ระบุประเภทข้อความที่คั่นด้วยเครื่องหมายจุลภาคต่างๆ ตามคำสั่งด้านล่าง (ดูแลรายการคั่นด้วยเครื่องหมายจุลภาค โดยไม่เว้นช่องว่างระหว่างเครื่องหมายจุลภาคกับรายการถัดไป)
ausearch -m ADD_USER,DEL_USER,USER_CHAUTHTOK,ADD_GROUP,DEL_GROUP,CHGRP_ID,ROLE_ASSIGN,ROLE_REMOVE -i
ค้นหาไฟล์บันทึกการตรวจสอบโดยใช้ค่าคีย์
พิจารณากฎการตรวจสอบด้านล่างซึ่งจะบันทึกความพยายามในการเข้าถึงหรือแก้ไขฐานข้อมูลบัญชีผู้ใช้ /etc/passwd
auditctl -w /etc/passwd -p rwa -k passwd_changes
ตอนนี้ให้ลองเปิดไฟล์ด้านบนเพื่อแก้ไขและปิดดังนี้
vi /etc/passwd
เพียงเพราะคุณรู้ว่ามีการบันทึกรายการบันทึกเกี่ยวกับเรื่องนี้ คุณอาจดูส่วนสุดท้ายของไฟล์บันทึกด้วยคำสั่ง tail ได้ดังนี้:
tail /var/log/audit/audit.log
จะเกิดอะไรขึ้นหากมีการบันทึกเหตุการณ์อื่นๆ หลายเหตุการณ์เมื่อเร็วๆ นี้ การค้นหาข้อมูลเฉพาะเจาะจงคงเป็นเรื่องยาก แต่เมื่อใช้ ausearch คุณสามารถส่งแฟล็ก -k
ด้วยค่าคีย์ที่คุณระบุ ในกฎการตรวจสอบเพื่อดูข้อความบันทึกทั้งหมดที่เกี่ยวข้องกับเหตุการณ์ที่เกี่ยวข้องกับการเข้าถึงหรือแก้ไขไฟล์ /etc/passwd
นอกจากนี้ยังจะแสดงการเปลี่ยนแปลงการกำหนดค่าที่เกิดขึ้นซึ่งกำหนดกฎการตรวจสอบด้วย
ausearch -k passwd_changes | less
สำหรับข้อมูลเพิ่มเติมและตัวเลือกการใช้งาน โปรดอ่านหน้า ausearch man:
man ausearch
หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบระบบ Linux และการจัดการบันทึก โปรดอ่านบทความที่เกี่ยวข้องต่อไปนี้
- Petiti – เครื่องมือวิเคราะห์บันทึกโอเพ่นซอร์สสำหรับ Linux SysAdmins
- ตรวจสอบบันทึกเซิร์ฟเวอร์แบบเรียลไทม์ด้วยเครื่องมือ “Log.io” บน RHEL/CentOS 7/6
- วิธีการตั้งค่าและจัดการการหมุนบันทึกโดยใช้ Logrotate ใน Linux
- lnav – ดูและวิเคราะห์บันทึก Apache จาก Linux Terminal
ในบทช่วยสอนนี้ เราได้อธิบายวิธีใช้ ausearch เพื่อดึงข้อมูลจากไฟล์บันทึกการตรวจสอบบน RHEL และ CentOS หากคุณมีคำถามหรือความคิดที่จะแบ่งปัน ใช้ส่วนความคิดเห็นเพื่อติดต่อเรา
ในบทความถัดไป เราจะอธิบายวิธีสร้างรายงานจากไฟล์บันทึกการตรวจสอบโดยใช้ aureport ใน RHEL/CentOS/Fedora