Donc, la question ici est de savoir comment déterminer quel processus utilisateur ou système démonte ou monte un point de montage particulier. Le montage et le démontage d'un point de montage peuvent être surveillés à l'aide de auditd. auditd est un composant de l'espace utilisateur du système d'audit Linux. Cela signifie que les utilisateurs du système pourront exécuter auditd pour configurer des règles et des alertes pour la fonctionnalité d'audit avec le système Linux.
L'une des meilleures choses à propos d'auditd est qu'il est étroitement intégré au noyau, il nous donne donc le pouvoir de surveiller presque tout ce que nous voulons, vraiment. Par défaut, aucune règle n'est configurée. Nous devons écrire nos règles dans le /etc/audit/rules.d/audit.rules fichier de configuration qui sera lu et les actions d'audit correspondantes seront appliquées.
Installer auditd
1. Les packages auditd font partie des systèmes d'installation RHEL/CentOS 7 par défaut. Nous pouvons le vérifier avec la commande suivante :
# rpm -qa | grep audit audit-libs-2.8.1-3.el7.x86_64 audit-libs-python-2.8.1-3.el7.x86_64 audit-2.8.1-3.el7.x86_64
2. Si le package ne fait pas partie de notre système, nous pouvons continuer et l'installer :
# yum install audit
3. Assurez-vous que le démon d'audit est en cours d'exécution. Nous allons utiliser la commande suivante :
# systemctl status auditd ● auditd.service - Security Auditing Service Loaded: loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2018-06-17 06:56:06 UTC; 2min 37s ago Docs: man:auditd(8) https://github.com/linux-audit/audit-documentation Process: 657 ExecStartPost=/sbin/augenrules --load (code=exited, status=0/SUCCESS) Process: 652 ExecStart=/sbin/auditd (code=exited, status=0/SUCCESS) Main PID: 653 (auditd) Tasks: 2 CGroup: /system.slice/auditd.service └─653 /sbin/auditd
Dans le cas de CentOS/RHEL 6, vous pouvez utiliser la commande service pour vérifier l'état du service auditd :
# service auditd status
Configuration des règles auditd pour surveiller le montage/démontage des systèmes de fichiers
Configurons maintenant les règles auditd requises pour surveiller le montage/démontage des systèmes de fichiers.
1. Ajoutez la règle suivante dans le fichier /etc/audit/rules.d/audit.rules audit mount et umount operations. Notez que le nom de umount SYCALL est umount2.
# vi /etc/audit/rules.d/audit.rules -a always,exit -F arch=b64 -S mount,umount2 -k mount_umountSur CentOS/RHEL 6, le fichier de configuration est /etc/audit/audit.rules au lieu de /etc/audit/rules.d/audit.rules.
Ici,
-a – Ajoute la règle à la fin de la liste avec action.
toujours,quitter – sont les actions spécifiées avec l'option -a.
-S – représente le SYSCALL (Dans uor cas mount et umount2)
arch=b64 – spécifie la règle pour l'architecture 64 bits.
2. Redémarrez le service auditd avec la commande "service" :
# service auditd restart Stopping logging: [ OK ] Redirecting start to /bin/systemctl start auditd.service
Vérifier
1. Prenons le point de montage /data comme exemple et voyons si nous obtenons des journaux d'audit générés lors du montage/démontage de ce point de montage.
# df -hP /data Filesystem Size Used Avail Use% Mounted on /dev/xvdf 976M 2.6M 907M 1% /data
2. Démontez ce point de montage manuellement.
# umount /data
Surveillez /var/log/audit/audit.log, recherchez des messages similaires à ceux ci-dessous. Le uid= et gid= sections ainsi que le pid= partie des journaux d'audit peut aider à déterminer le processus ou l'utilisateur qui émet la commande :
# tailf /var/log/audit/audit.log ... type=SYSCALL msg=audit(1529223527.639:881): arch=c000003e syscall=166 success=yes exit=0 a0=55a5863d3880 a1=0 a2=1 a3=7ffe52c22320 items=1 ppid=2930 pid=3335 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=2 comm="umount" exe="/usr/bin/umount" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="mount_umount" type=CWD msg=audit(1529223527.639:881): cwd="/root"
Passer par /var/log/audit/audit.log peut être écrasant si vous avez beaucoup de choses auditées sur votre serveur. Au lieu de cela, vous pouvez utiliser la commande "ausearch" avec la clé définie dans la règle pour filtrer les journaux uniquement liés au montage et au démontage. Par exemple :
# ausearch -k mount_umount ---- time->Sun Jun 17 08:18:47 2018 type=PROCTITLE msg=audit(1529223527.639:881): proctitle=756D6F756E74002F64617461 type=PATH msg=audit(1529223527.639:881): item=0 name="/data" inode=2 dev=ca:50 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:unlabeled_t:s0 objtype=NORMAL cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0 type=CWD msg=audit(1529223527.639:881): cwd="/root" type=SYSCALL msg=audit(1529223527.639:881): arch=c000003e syscall=166 success=yes exit=0 a0=55a5863d3880 a1=0 a2=1 a3=7ffe52c22320 items=1 ppid=2930 pid=3335 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=2 comm="umount" exe="/usr/bin/umount" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="mount_umount"Comment surveiller les modifications des fichiers /etc/shadow et /etc/passwd avec Auditd ?
Comment utiliser auditd pour surveiller la suppression d'un fichier sous Linux
Comprendre l'audit système avec auditd