Linux çekirdeği "denetim" alt sistemi ihtiyacınız olanı yapabilir.
örneğin, bu komutları çalıştırırsanız:
auditctl -a exit,always -F arch=b64 -S execve
auditctl -a exit,always -F arch=b32 -S execve
Ardından her yürütme olayı günlüğe kaydedilir ve bununla ilgili birçok bilgi sağlanır.
örneğin bu benim koştuğum çıktı tail /var/log/audit/audit.log
exit=0 a0=7f0e4a21e987 a1=7f0e4a21e6b0 a2=7f0e4a21e808 a3=8 items=2 ppid=906 pid=928 auid=500 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="tail" exe="/usr/bin/tail" subj=kernel key=(null)
type=EXECVE msg=audit(1543671660.203:64): argc=2 a0="tail" a1="/var/log/audit/audit.log"
type=CWD msg=audit(1543671660.203:64): cwd="/home/sweh"
type=PATH msg=audit(1543671660.203:64): item=0 name="/usr/bin/tail" inode=266003 dev=fd:03 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=unlabeled objtype=NORMAL cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1543671660.203:64): item=1 name="/lib64/ld-linux-x86-64.so.2" inode=273793 dev=fd:03 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=unlabeled objtype=NORMAL cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PROCTITLE msg=audit(1543671660.203:64): proctitle=7461696C002F7661722F6C6F672F61756469742F61756469742E6C6F67
Görülebilecek bazı ilginç değerler var; "uid" sıfır olsa bile "auid", giriş kimliğim 500'dür (çünkü altında çalışıyorum su
). Bu nedenle, kullanıcı hesapları değiştirmiş olsa da su
veya sudo
yine de "denetim kimliğini" takip edebiliriz
Şimdi bu auditctl
komutlar yeniden başlatıldığında kaybolacak. Bunları bir yapılandırma dosyasına koyabilirsiniz (örneğin, /etc/audit/rules.d/
dizinde, CentOS 7'de). Tam konum işletim sistemi sürümünüze bağlı olacaktır. auditctl
Manuel sayfa burada yardımcı olmalıdır.
Yine de ... bu çok sayıda günlük iletisinin oluşturulmasına neden olur . Diskte yeterli boş alan olduğundan emin olun!
Gerekirse kurallar belirli bir kullanıcı veya belirli bir komutla sınırlandırılabilir.
Ve ayrıca dikkat edin; bir kullanıcı parolayı komut yürütmesine (örneğin mysql --user=username --password=passwd
) koyarsa, bu günlüğe kaydedilir.
auditd
Programın yanı sıra komut satırı argümanlarını kaydetmenin bir yolu var mı ? serverfault.com/questions/765179/…