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

Comment surveiller les modifications des fichiers /etc/shadow et /etc/passwd avec Auditd ?

L'audit du système est une tâche très importante qui devrait faire partie de chaque serveur. Cela nous permet de vérifier les moindres détails liés à ce qui se passe exactement dans le système. La plupart des administrateurs système connaissent peut-être les fonctionnalités d'audit de base telles que la recherche dans le fichier /var/log/secure pour les tentatives de connexion, mais lorsqu'il s'agit d'audit de bas niveau, c'est là que le travail doit être fait.

Certains des cas où l'audit du système est utile sont :

  • Surveillance de l'accès aux fichiers :Nous voulons avoir un rapport sur les fichiers ou répertoires de votre serveur qui ont été consultés ou modifiés, à quelle heure et par quel utilisateur. Il s'agit d'un aspect important, en particulier si nous voulons détecter l'accès à des fichiers importants au sein de nos serveurs ou si nous voulons savoir qui a effectué le changement qui a eu un impact sur l'environnement de production.
  • Surveillance des appels système :Chaque commande que nous tapons à l'arrière fait un appel système au noyau.

Surveiller /etc/shadow et /etc/passwd pour les modifications

1. Pour surveiller les fichiers /etc/shadow et /etc/passwd, ajoutez ci-dessous 2 règles dans le fichier de règles auditd /etc/audit/rules.d/audit.rule.

# vi /etc/audit/rules.d/audit.rule
-w /etc/shadow -p wa -k shadow
-w /etc/passwd -p wa -k passwd
Sur CentOS/RHEL 6, le fichier de configuration est /etc/audit/audit.rules au lieu de /etc/audit/rules.d/audit.rules.

La commande ci-dessus représente ce qui suit :

-w path-to-file -p permissions -k keyname

où l'autorisation est l'une des suivantes :
r – lecture du fichier
w – écrire dans le fichier
x – exécuter le fichier
a – modification de l'attribut du fichier (propriété/autorisations)

2. Redémarrez le service auditd après avoir défini les 2 règles ci-dessus.

# service auditd restart
Remarque :N'utilisez pas la commande « systemctl » pour gérer le service auditd dans CentOS/RHEL. Utilisez plutôt la commande héritée "service". La raison de cette limitation est que le démon d'audit doit enregistrer toutes les modifications apportées à la piste d'audit, y compris le démarrage et l'arrêt du démon d'audit lui-même. Systemctl utilise dbus pour parler au système qui cache qui a émis la commande et ressemble à root.

3. Utilisez la commande "auditctl -l" pour vérifier les règles que vous avez définies.

# auditctl -l
-w /etc/shadow -p wa -k shadow
-w /etc/passwd -p wa -k passwd

Vérifier

Le fichier journal /var/log/audit/audit.log enregistre tous les messages de journal liés auditd. Vous pouvez consulter ce fichier journal pour voir si les fichiers shadow et passwd ont été modifiés par quelqu'un. Ce fichier peut être long et le système peut générer de nombreux journaux dans ce fichier. Pour filtrer les règles qui nous intéressent, nous pouvons utiliser la commande "ausearch" avec la clé que nous avons spécifiée lors de la définition des règles. Par exemple :

# ausearch -k shadow
----
time->Sat Jun 16 06:23:07 2018
type=PROCTITLE msg=audit(1529130187.897:595): proctitle=7061737377640074657374
type=PATH msg=audit(1529130187.897:595): item=4 name="/etc/shadow" inode=551699 dev=ca:01 mode=0100664 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:shadow_t:s0 objtype=CREATE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1529130187.897:595): item=3 name="/etc/shadow" inode=636309 dev=ca:01 mode=0100664 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:shadow_t:s0 objtype=DELETE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1529130187.897:595): item=2 name="/etc/nshadow" inode=551699 dev=ca:01 mode=0100664 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:shadow_t:s0 objtype=DELETE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1529130187.897:595): item=1 name="/etc/" inode=132 dev=ca:01 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:etc_t:s0 objtype=PARENT cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1529130187.897:595): item=0 name="/etc/" inode=132 dev=ca:01 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:etc_t:s0 objtype=PARENT cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=CWD msg=audit(1529130187.897:595):  cwd="/root"
type=SYSCALL msg=audit(1529130187.897:595): arch=c000003e syscall=82 success=yes exit=0 a0=7f443258a332 a1=7f443258a2bc a2=7f443a3517b8 a3=0 items=5 ppid=4320 pid=4486 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=3 comm="passwd" exe="/usr/bin/passwd" subj=unconfined_u:unconfined_r:passwd_t:s0-s0:c0.c1023 key="shadow"

De même, pour le fichier /etc/passwd, nous pouvons filtrer les journaux en utilisant :

# ausearch -k passwd
time->Sat Jun 16 06:22:56 2018
type=PROCTITLE msg=audit(1529130176.633:589): proctitle=757365726164640074657374
type=PATH msg=audit(1529130176.633:589): item=4 name="/etc/passwd" inode=638208 dev=ca:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:passwd_file_t:s0 objtype=CREATE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1529130176.633:589): item=3 name="/etc/passwd" inode=636309 dev=ca:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:passwd_file_t:s0 objtype=DELETE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1529130176.633:589): item=2 name="/etc/passwd+" inode=638208 dev=ca:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:passwd_file_t:s0 objtype=DELETE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1529130176.633:589): item=1 name="/etc/" inode=132 dev=ca:01 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:etc_t:s0 objtype=PARENT cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1529130176.633:589): item=0 name="/etc/" inode=132 dev=ca:01 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:etc_t:s0 objtype=PARENT cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=CWD msg=audit(1529130176.633:589):  cwd="/root"
type=SYSCALL msg=audit(1529130176.633:589): arch=c000003e syscall=82 success=yes exit=0 a0=7ffc0729ae70 a1=55f815c79ce0 a2=7ffc0729ade0 a3=55f815ce21a0 items=5 ppid=4320 pid=4481 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=3 comm="useradd" exe="/usr/sbin/useradd" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="passwd"
Comprendre l'audit système avec auditd


Cent OS
  1. Les modifications manuelles apportées à /etc/hosts ou /etc/sysconfig/network-scripts/ifcfg-* sont perdues

  2. Comment désactiver "sudo su" pour les utilisateurs dans le fichier de configuration sudoers

  3. CentOS / RHEL :Comment récupérer à partir d'un fichier /etc/passwd supprimé

  4. Installer les binaires dans /bin, /sbin, /usr/bin et /usr/sbin, interactions avec --prefix et DESTDIR

  5. Trier avec séparateur de champs

La bonne façon de modifier les fichiers /etc/passwd et /etc/group sous Linux

CentOS / RHEL 7 :Comment récupérer à partir d'une entrée root supprimée dans les fichiers /etc/shadow et/ou /etc/passwd

Comprendre les fichiers /proc/mounts, /etc/mtab et /proc/partitions

Quelle est la connexion entre les répertoires /etc/init.d et /etc/rcX.d sous Linux ?

Différence entre /etc/hosts et /etc/resolv.conf

Comment configurer /etc/issues pour afficher l'adresse IP pour eth0