GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare il sistema di auditing in Linux:configurare, controllare i log e generare report

Prima di iniziare a discutere del sistema di auditing, vorrei porre alcune domande. Come si controllano i comandi eseguiti dall'utente? Come si controlla se è stato effettuato l'accesso a un file o a una directory? Come si registrano vari eventi relativi alla sicurezza? Come si monitorano le chiamate di sistema, l'accesso alla rete ecc... e infine come si genera un rapporto da esso? Bene, il sistema di auditing Linux è la risposta a tutte le domande precedenti.

Il sistema di auditing Linux consente a un amministratore di configurare regole di audit per monitorare le chiamate di sistema, l'accesso alla rete, i file ecc... e generare un rapporto di riepilogo, che può essere successivamente analizzato e indagato per attività sospette. A partire dalla versione 2.6, il kernel Linux viene fornito con auditd demone e all'avvio legge le regole preconfigurate da /etc/audit/audit.rules . L'amministratore può utilizzare auditctl comando per controllare il sistema di audit, creare regole ecc... Gli altri due comandi importanti sono:

  • ausearch – comando che consente di interrogare i log di controllo in base ai criteri indicati.
  • aureport – comando utilizzato per generare report.

I file di configurazione dell'audit si trovano in /etc/audit e accede a /var/log/audit.

  • /etc/audit/audit.rules – file in cui vengono create e caricate le regole permanenti durante auditd demone è avviato.
  • /etc/audit/audit.conf – file di configurazione dell'audit
  • /etc/audit/rules.d/ – cartella che contiene file di regole personalizzate.

Di seguito è riportato l'elenco delle informazioni che l'audit registrerà:

  • Data e ora, tipo ed esito dell'evento
  • UID, GID che ha attivato l'evento
  • Etichette di sensibilità di soggetto e oggetto
  • Accesso a tutti i sistemi di autenticazione come SSH, Kerberos ecc...
  • Controlli dell'integrità dei file
  • Importa ed esporta informazioni.
  • Includi o escludi eventi in base all'identità dell'utente, all'oggetto e ad altri attributi.
  • Tentativi di modificare i file e i registri di configurazione dell'audit.

Come configurare auditd in CentOS e Ubuntu?

Su CentOS:

# yum install audit

Su Ubuntu:

# apt-get install auditd
::::::::::
Setting up auditd (1:2.4.5-1ubuntu2) ...
update-rc.d: warning: start and stop actions are no longer supported; falling ba ck to defaults
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for systemd (229-4ubuntu6) ...
Processing triggers for ureadahead (0.100.0-19) ...

Una volta installato il pacchetto, il auditd demone verrà avviato automaticamente. In caso contrario, puoi avviarlo utilizzando i seguenti comandi:

# /etc/init.d/auditd start

Elenca le regole di audit attive:

# auditctl -l
 No rules

Come creare regole di audit?

Creiamo una regola per monitorare il file /etc/passwd

# auditctl -w /etc/passwd -p war -k audit-passwd

Il comando precedente crea un controllo sul file /etc/passwd .

  • con /etc/passwd – crea un controllo per il file /etc/passwd
  • -p guerra – imposta il filtro di autorizzazione – w per la scrittura, r per la lettura, a per la modifica dell'attributo ed e per l'esecuzione.
  • k audit-passwd – qui audit-passwd è una chiave per identificare la regola in modo univoco dai log.

Fondamentalmente, il comando precedente tiene traccia di /etc/passwd per chiunque tenti di scrivere, leggere o modificare gli attributi del file.

Ora la regola è stata creata, accediamo come utente non privilegiato e proviamo ad accedere a /etc/passwd file.

$ grep "someinformation" /etc/passwd
$ vim /etc/passwd

I due comandi precedenti sono stati eseguiti da un utente locale chiamato "ubuntu" e ci si aspetta che questi eventi vengano registrati in /var/log/audit/audit.log file.

Come trovare chi ha cambiato o effettuato l'accesso a /etc/passwd?

Useremo ausearch comando:

# ausearch -f /etc/passwd -i
type=PROCTITLE msg=audit(08/05/2016 11:56:10.088:72) : proctitle=grep --color=auto henry /etc/passwd
 type=PATH msg=audit(08/05/2016 11:56:10.088:72) : item=0 name=/etc/passwd inode=56913 dev=fd:01 mode=file,644 ouid=root ogid=root rdev=00:00 nametype=NORMAL
 type=CWD msg=audit(08/05/2016 11:56:10.088:72) : cwd=/home/ubuntu
 type=SYSCALL msg=audit(08/05/2016 11:56:10.088:72) : arch=x86_64 syscall=openat success=yes exit=3 a0=0xffffffffffffff9c a1=0x7ffebf6cb887 a2=O_RDONLY|O_NOCT
 TY a3=0x0 items=1 ppid=14098 pid=14992 auid=ubuntu uid=ubuntu gid=ubuntu euid=ubuntu suid=ubuntu fsuid=ubuntu egid=ubuntu sgid=ubuntu fsgid=ubuntu tty=pts0 s
 es=1302 comm=grep exe=/bin/grep key=audit-passwd
 ----
 type=PROCTITLE msg=audit(08/05/2016 11:56:12.028:74) : proctitle=vim /etc/passwd
 type=PATH msg=audit(08/05/2016 11:56:12.028:74) : item=0 name=/etc/passwd inode=56913 dev=fd:01 mode=file,644 ouid=root ogid=root rdev=00:00 nametype=NORMAL
 type=CWD msg=audit(08/05/2016 11:56:12.028:74) : cwd=/home/ubuntu
 type=SYSCALL msg=audit(08/05/2016 11:56:12.028:74) : arch=x86_64 syscall=open success=yes exit=3 a0=0x556072132500 a1=O_RDONLY a2=0x0 a3=0x556072347f50 items
 =1 ppid=14098 pid=14993 auid=ubuntu uid=ubuntu gid=ubuntu euid=ubuntu suid=ubuntu fsuid=ubuntu egid=ubuntu sgid=ubuntu fsgid=ubuntu tty=pts0 ses=1302 comm=vi
 m exe=/usr/bin/vim.basic key=audit-passwd

L'output del registro sopra indica che l'utente ha chiamato ubuntu avuto accesso al file /etc/passwd usando i comandi grep e vim . Per impostazione predefinita, l'output del registro utilizzerà UID e GID, ma l'opzione '-i ' mapperà l'uid e il gid ai nomi corrispondenti (nome utente leggibile dall'uomo e nome del gruppo).

Come creare un orologio per monitorare le modifiche di un particolare utente?

#auditctl -w /usr/local/test -p wa -F uid=1001 -k audit-temp

Cerca nel registro gli eventi:

#ausearch -ua 1001 -i

Il comando precedente elencherà tutti gli eventi attivati ​​dall'ID utente 1001 .

Creazione di regole permanenti

Nota :le regole create utilizzando auditctl sono temporanei e rimarranno attivi fino all'auditd demone viene riavviato. I comandi seguenti spiegano questo scenario.

# auditctl -l
 -w /etc/passwd -p rwa -k audit-passwd
 -a always,exit -S all -F dir=/etc -F perm=wa -F uid=1001 -F key=audit-temp
 -a always,exit -S all -F dir=/usr/local/test -F perm=wa -F uid=1001 -F key=audit

Il comando precedente stampa l'elenco delle regole attive. Ora proviamo a riavviare auditd demone.

# /etc/init.d/auditd restart
 [ ok ] Restarting auditd (via systemctl): auditd.service.

Controlla di nuovo le regole attive.

# auditctl -l
 No rules

Dopo il auditd daemon viene riavviato, tutte le regole che sono state create usando auditctl il comando verrà rimosso (perché erano temporanei). Se hai sperimentato con auditctl comando e desideri creare quelle regole in modo permanente, quindi puoi modificare /etc/audit/audit.rules file o crea un nuovo file di regole in /etc/audit/rules.d/ cartella.

# echo "-D" > /etc/audit/rules.d/new.rules
# auditctl -l >> /etc/audit/rules.d/new.rules

Il primo comando aggiunge l'azione di eliminazione della regola prima di aggiungere il nuovo set di regole.

Come generare un rapporto di audit?

Rapporto di riepilogo:

# aureport
Summary Report
======================
Range of time in logs: 08/05/2016 11:45:39.464 - 08/08/2016 06:14:14.328
Selected time for report: 08/05/2016 11:45:39 - 08/08/2016 06:14:14.328
Number of changes in configuration: 7
Number of changes to accounts, groups, or roles: 5
Number of logins: 1
Number of failed logins: 6
Number of authentications: 8
Number of failed authentications: 6
Number of users: 3
Number of terminals: 8
Number of host names: 2
Number of executables: 37
Number of commands: 39
Number of files: 13
Number of AVC's: 0
Number of MAC events: 0
Number of failed syscalls: 12
Number of anomaly events: 0
Number of responses to anomaly events: 0
Number of crypto events: 0
Number of integrity events: 0
Number of virt events: 0
Number of keys: 2
Number of process IDs: 214
Number of events: 1337

Il comando precedente stamperà il rapporto di riepilogo di tutti gli eventi registrati.

Stampa un rapporto di riepilogo di tutti i tentativi di accesso non riusciti

# aureport --login --summary -i
Login Summary Report
============================
total auid
============================
6 henry
1 ubuntu

Genera un rapporto di riepilogo degli eventi dei file eseguibili:

# aureport -x --summary

Genera un rapporto di tutti i file di controllo che vengono interrogati e dell'intervallo di tempo degli eventi che includono

# aureport -t
Log Time Range Report
=====================
/var/log/audit/audit.log: 08/05/2016 11:45:39.464 - 08/08/2016 06:17:01.068

Genera un rapporto di tutti gli eventi registrati nell'intervallo di date:

# aureport --start 08/05/2016 00:00:00 --end 08/07/2016 00:00:00

Genera rapporto da ausearch uscita

# ausearch -k audit-temp | aureport -f -i

Come eliminare tutte le regole di audit?

# auditctl -D

Nota :Il comando sopra eliminerà tutte le regole attive in auditd in esecuzione demone. Tuttavia, le regole permanenti nel file /etc/audit/audit.rules verranno caricate ogni volta che auditd è avviato.

È tutto auditd può fare? No! Il sistema di audit Linux è in grado di fare di più e ciò che è elencato qui è solo una piccola parte di questo potente sistema. Dai un'occhiata alle pagine man di auditd , controllo di controllo , ausearch e aureport per ulteriori informazioni.


Linux
  1. Come monitorare i file /etc/shadow e /etc/passwd per le modifiche con Auditd?

  2. CentOS / RHEL:come recuperare dal file /etc/passwd cancellato

  3. Come montare e smontare un file system in Linux

  4. Quando dovrei usare /dev/shm/ e quando dovrei usare /tmp/?

  5. Nel mio file /etc/hosts/ su Linux/OSX, come creo un sottodominio con caratteri jolly?

Come generare e utilizzare la chiave SSH nel sistema Linux?

Come installare e utilizzare YouTube-DL su sistema Linux

Come installare e configurare AnyDesk su sistema Linux

Come installare e configurare Django su sistema Linux

Come installare e configurare PrestaShop su sistema Linux

Come installare e configurare Elasticsearch su sistema Linux