อะไรคือวิธีที่ดีที่สุดในการติดตามผู้ที่ทำหน้าที่เป็นรูทในบันทึกเมื่อปิดใช้งานการเข้าสู่ระบบรูท (SSH) แต่ผู้ใช้สามารถเรียกใช้sudo -i
หรือsu -
กลายเป็นรูทได้ ฉันต้องการติดตามทุกคำสั่งด้วยชื่อผู้ใช้เดิมเช่นกัน RHEL 6 หรือ Linux rsyslog เป็นต้น
อะไรคือวิธีที่ดีที่สุดในการติดตามผู้ที่ทำหน้าที่เป็นรูทในบันทึกเมื่อปิดใช้งานการเข้าสู่ระบบรูท (SSH) แต่ผู้ใช้สามารถเรียกใช้sudo -i
หรือsu -
กลายเป็นรูทได้ ฉันต้องการติดตามทุกคำสั่งด้วยชื่อผู้ใช้เดิมเช่นกัน RHEL 6 หรือ Linux rsyslog เป็นต้น
คำตอบ:
วิธีการที่แข็งแกร่งที่สุดดูเหมือนจะเป็น auditd:
http://blog.ptsecurity.com/2010/11/requirement-10-track-and-monitor-all.html
Auditd จะดักการเรียกระบบทั้งหมดและตรวจสอบกับชุดของกฎ ดังนั้นใน/etc/audit/audit.rules
ไฟล์ของคุณคุณจะมีสิ่งต่อไปนี้:
# This file contains the auditctl rules that are loaded
# whenever the audit daemon is started via the initscripts.
# The rules are simply the parameters that would be passed
# to auditctl.
# First rule - delete all
-D
# Increase the buffers to survive stress events.
# Make this bigger for busy systems
-b 320
# Feel free to add below this line. See auditctl man page
-a always,exit -F euid=0 -F perm=wxa -k ROOT_ACTION
กฎสุดท้ายเป็นกฎที่ไม่ใช่ค่าเริ่มต้นเท่านั้น
ข้อเสียเปรียบหลักของวิธีนี้ (และเหตุผลที่ฉันพบคำถามนี้ในขณะที่มองหาทางเลือก) คือไฟล์บันทึกดิบนั้นค่อนข้างเป็นความลับและมีประโยชน์หลังจากเรียกใช้โปรแกรมสืบค้นในไฟล์บันทึกดิบเท่านั้น ausearch
ตัวอย่างแบบสอบถามสำหรับกฎนั้นจะเป็น:
ausearch -ts today -k ROOT_ACTION -f audit_me | aureport -i -f
โซลูชันสามัญสำนึกอาจจะสร้าง cron ที่จะค้นหาบันทึกการตรวจสอบดิบของคุณแล้วส่งออกไปยังโซลูชันการบันทึกของคุณ
ใน Red Hat distros คุณมักจะใช้/var/log/secure
บันทึกเพื่อระบุว่าใครกำลังเข้าสู่ระบบหรือใช้งานsudo
บนระบบ Fedora / CentOS / RHEL
$ sudo -Es
ผลการบันทึก:
ตัวอย่างซู1 ก.ย. 19:32:51 greeneggs sudo: saml: TTY = pts / 2; PWD = / home / saml; USER = root; COMMAND = / bin / ทุบตี
$ su -
ผลการบันทึก:
1 ก.ย. 19:34:49 greeneggs su: pam_unix (su-l: session): เปิดเซสชันสำหรับผู้ใช้รูทโดย saml (uid = 1,000)
หากคุณมีผู้ใช้งานที่ให้ความร่วมมือคุณสามารถตั้งค่ารูทเพื่อบันทึกทุกอย่างที่ผู้ใช้รูทเป็น syslog
http://linux.die.net/man/1/rootsh
rootsh rpms มีอยู่ใน EPEL
เวอร์ชั่นของ sudo บน RHEL6 นั้นยังสามารถบันทึก stdout ไปยังไฟล์สำหรับทุก ๆ sudo ดูในหน้า man sudo_plugins
วิธีการเหล่านี้ไม่สามารถกันกระสุนได้อย่างสมบูรณ์