Log semua aktivitas root dengan nama pengguna asli yang su / sudoed ke root

11

Apa metode yang disukai untuk melacak siapa yang bertindak sebagai root di log ketika login root dinonaktifkan (SSH) tetapi pengguna dapat menjalankan sudo -iatau su -menjadi root? Saya ingin mengikuti setiap perintah dengan nama pengguna asli juga. RHEL 6 atau rsyslog Linux apa pun, dll.

Gregg Leventhal
sumber

Jawaban:

7

Metode yang paling kuat tampaknya adalah auditd:

http://blog.ptsecurity.com/2010/11/requirement-10-track-and-monitor-all.html

Auditd pada dasarnya memotong semua panggilan sistem dan memeriksanya terhadap seperangkat aturan Anda. Jadi dalam /etc/audit/audit.rulesfile Anda, Anda akan memiliki sesuatu seperti berikut:

# 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

Aturan terakhir menjadi satu-satunya aturan non-default.

Kelemahan utama dengan pendekatan ini (dan alasan saya menemukan pertanyaan ini ketika mencari alternatif) adalah bahwa file log mentah cukup samar dan hanya membantu setelah menjalankan program kueri pada file log mentah: ausearch

Contoh kueri untuk aturan itu adalah:

ausearch -ts today -k ROOT_ACTION -f audit_me | aureport -i -f

Solusi akal sehat mungkin akan membuat cron yang akan menanyakan log audit mentah Anda dan kemudian mengirimkannya ke solusi logging Anda.

freb
sumber
Jika Anda mencari sesuatu yang menggantikan auditd dan melakukan korelasi peristiwa mentah untuk Anda, periksa: github.com/slackhq/go-audit
freb
3

Pada distro Red Hat Anda biasanya menggunakan /var/log/securelog untuk mengidentifikasi siapa yang telah masuk atau memanfaatkan sudosistem Fedora / CentOS / RHEL.

Contohnya

contoh sudo
$ sudo -Es

hasil log:

1 Sep 19:32:51 greeneggs sudo: saml: TTY = pts / 2; PWD = / home / saml; USER = root; PERINTAH = / bin / bash

contoh su
$ su -

hasil log:

1 Sep 19:34:49 greeneggs su: pam_unix (su-l: session): sesi dibuka untuk root pengguna oleh saml (uid = 1000)

slm
sumber
3

Jika Anda memiliki pengguna yang bekerja sama, Anda dapat mengatur rootsh untuk mencatat semua jenis pengguna root untuk syslog.

http://linux.die.net/man/1/rootsh

rootsh rpms tersedia dalam EPEL.

Versi sudo di RHEL6 juga mampu mencatat stdout ke file untuk setiap sesi sudo. Lihatlah halaman manual sudo_plugins.

Tidak satu pun dari pendekatan ini yang sepenuhnya anti peluru.

Fred Anjing Ajaib Ajaib
sumber