GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment utiliser auditd pour surveiller la suppression d'un fichier sous Linux

Vous avez donc une situation où un certain fichier est fréquemment supprimé et vous devez rechercher qui supprime le fichier. Il peut s'agir d'une utilisation ou d'un processus système qui peut supprimer un fichier. Le service auditd peut être un outil parfait pour enquêter sur ces problèmes de suppression de fichiers. Le message décrit les étapes pour installer et configurer auditd pour surveiller la suppression d'un fichier du fichier /var/tmp/test_file.

Red Hat Enterprise Linux fournit une fonctionnalité de règles d'audit pour consigner les activités de fichier effectuées par les utilisateurs ou les processus. Ceci peut être réalisé en configurant des règles d'audit.

Installer auditd

1. La plupart du temps, vous trouverez auditd déjà installé sur les distributions basées sur redhat. Sinon, installez-le en utilisant yum :

# yum install audit

2. Ensuite, assurez-vous que le service est démarré au démarrage et démarrez le service.

# systemctl enable auditd
# systemctl start auditd

Il est conseillé d'utiliser la commande "service" au lieu de systemctl dans CentOS/RHEL 7 lors du redémarrage du service auditd. Si vous utilisez la commande systemctl, vous pouvez rencontrer l'erreur ci-dessous :

# systemctl restart auditd
Failed to restart auditd.service: Operation refused, unit auditd.service may be requested by dependency only (it is configured to refuse manual start/stop).
See system logs and 'systemctl status auditd.service' for details.

3. Vérifiez l'état du service :

# systemctl status auditd
● auditd.service - Security Auditing Service
   Loaded: loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-06-16 03:29:19 UTC; 8s ago
     Docs: man:auditd(8)
           https://github.com/linux-audit/audit-documentation
  Process: 1951 ExecStartPost=/sbin/augenrules --load (code=exited, status=0/SUCCESS)
  Process: 1946 ExecStart=/sbin/auditd (code=exited, status=0/SUCCESS)
 Main PID: 1947 (auditd)
    Tasks: 2
   CGroup: /system.slice/auditd.service
           └─1947 /sbin/auditd

Configuration des règles d'audit

1. Pour configurer les règles d'audit, ajoutez la ligne suivante dans le fichier /etc/audit/rules.d/audit.rules :

# vi /etc/audit/rules.d/audit.rules
-a always,exit -F arch=b32 -S unlink -S unlinkat -S rename -S renameat  -S rmdir -k delete
-a always,exit -F arch=b64 -S unlink -S unlinkat -S rename -S renameat  -S rmdir -k delete
Sur CentOS/RHEL 6, le fichier de configuration est /etc/audit/audit.rules au lieu de /etc/audit/rules.d/audit.rules.

Les règles ci-dessus surveillent tous les fichiers du système pour les modifications telles que dissocier, renommer, supprimer, etc. En option, vous pouvez spécifier un chemin complet du répertoire à surveiller, par exemple, si vous souhaitez surveiller la suppression de fichiers uniquement dans un fichier spécifique système, vous pouvez spécifier le point de montage en ajoutant le champ suivant à la règle d'audit :

-F dir=[directory or mount point]

Ainsi, les règles définies ci-dessus deviendront désormais une règle unique, comme indiqué ci-dessous :

# vi /etc/audit/rules.d/audit.rules
-a always,exit -F dir=/var/tmp -S unlink -S unlinkat -S rename -S renameat  -S rmdir -k delete_var

Veuillez noter que j'ai également modifié la clé dans les règles.

2. Vous devez redémarrer le service auditd pour que les règles deviennent effectives.

# service auditd restart

3. Utilisez la commande "auditctl -l" pour afficher les règles auditd actuellement actives.

# auditctl -l
-a always,exit -S rename,rmdir,unlink,unlinkat,renameat -F dir=/var/tmp -F key=delete_var

Vérifier les journaux d'audit pour la suppression de fichiers

1. Vous pouvez maintenant essayer de supprimer le fichier "/var/tmp/test_file" pour voir si la règle auditd que nous venons de créer enregistre cet événement dans le fichier journal.

2. Cela enregistrera les opérations de suppression de fichiers dans le fichier /var/log/audit/audit.log , cependant nous pouvons utiliser la commande ausearch avec la clé spécifiée dans la règle d'audit (-k) pour consulter les événements :

# ausearch -k delete_var
...
----
time->Sat Jun 16 04:02:25 2018
type=PROCTITLE msg=audit(1529121745.550:323): proctitle=726D002D69002F7661722F746D702F746573745F66696C65
type=PATH msg=audit(1529121745.550:323): item=1 name="/var/tmp/test_file" inode=16934921 dev=ca:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 obj=unconfined_u:object_r:user_tmp_t:s0 objtype=DELETE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1529121745.550:323): item=0 name="/var/tmp/" inode=16819564 dev=ca:01 mode=041777 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:tmp_t:s0 objtype=PARENT cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=CWD msg=audit(1529121745.550:323):  cwd="/root"
type=SYSCALL msg=audit(1529121745.550:323): arch=c000003e syscall=263 success=yes exit=0 a0=ffffffffffffff9c a1=9930c0 a2=0 a3=7ffe9f8f2b20 items=2 ppid=2358 pid=2606 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=2 comm="rm" exe="/usr/bin/rm" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="delete_var"

Comme vous pouvez le voir dans le journal ci-dessus, l'utilisateur root(uid=0) a supprimé(exe="/usr/bin/rm") le fichier /var/tmp/test_file.


Cent OS
  1. Comment utiliser la commande md5sum sous Linux

  2. Comment utiliser la commande touch sous Linux

  3. Comment utiliser la commande Tar sous Linux

  4. Comment utiliser auditd pour surveiller un SYSCALL spécifique

  5. Un fichier est censé disparaître - Comment surveiller la suppression d'un fichier sous Linux

Comment créer et utiliser un fichier d'échange sous Linux

Comment utiliser AppImage sur Linux (Guide du débutant)

Comment utiliser la commande SCP sous Linux

Comment utiliser la commande lsof sous Linux

Comment utiliser gzip sous Linux ?

Comment utiliser la commande shred Linux