ค้นหาเว็บไซต์

วิธีค้นหาบันทึกการตรวจสอบโดยใช้เครื่องมือ '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 และการจัดการบันทึก โปรดอ่านบทความที่เกี่ยวข้องต่อไปนี้

  1. Petiti – เครื่องมือวิเคราะห์บันทึกโอเพ่นซอร์สสำหรับ Linux SysAdmins
  2. ตรวจสอบบันทึกเซิร์ฟเวอร์แบบเรียลไทม์ด้วยเครื่องมือ “Log.io” บน RHEL/CentOS 7/6
  3. วิธีการตั้งค่าและจัดการการหมุนบันทึกโดยใช้ Logrotate ใน Linux
  4. lnav – ดูและวิเคราะห์บันทึก Apache จาก Linux Terminal

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

ในบทความถัดไป เราจะอธิบายวิธีสร้างรายงานจากไฟล์บันทึกการตรวจสอบโดยใช้ aureport ใน RHEL/CentOS/Fedora