09. Audit et journalisation sur Ubuntu Server : un guide complet

Introduction : pourquoi l'audit et la journalisation sont importants

L'audit et la journalisation sur Ubuntu Server sont essentiels pour maintenir la sécurité, la fiabilité et la responsabilité de votre serveur Ubuntu. Ils donnent un aperçu des activités du système, aident à détecter les anomalies et sont essentiels pour se conformer à des exigences réglementaires comme le RGPD, HIPAA ou PCI-DSS.

Cependant, de nombreux systèmes n'activent pas l'audit en raison de préoccupations concernant la consommation d'espace disque ou du manque d'outils pour analyser efficacement les données. Dans cet article, nous répondrons à ces préoccupations et vous guiderons dans la mise en œuvre de l'audit et de la journalisation de manière pratique et évolutive.

Sujets abordés :

  • Utilisation réelle et défis de l'audit.
  • Utilisation d' auditd pour suivre et enregistrer les événements système.
  • Planification de l'espace disque pour les journaux d'audit.
  • Outils pour analyser les journaux d'audit et les journaux système.
  • Configuration de la rotation des journaux avec logrotate.
  • Pratiques avancées de surveillance et d'audit

Article précédent :

01. Introduction à Ubuntu Server – SysOSX: AI & Cloud

02. Comment configurer votre premier serveur Ubuntu : guide du débutant – SysOSX: AI & Cloud

03. Maîtriser la ligne de commande Linux pour Ubuntu Server – SysOSX: AI & Cloud

04. Gestion des utilisateurs et des autorisations sur Ubuntu Server : un guide complet – SysOSX: AI & Cloud

05. Bases des réseaux pour Ubuntu Server : un guide complet – SysOSX: AI & Cloud

06. Installer et gérer des logiciels sur Ubuntu Server : un guide complet – SysOSX: AI & Cloud

07.Corriger et mettre à jour Ubuntu Server : un guide complet – SysOSX: AI & Cloud

08. Sécuriser votre serveur Ubuntu : étapes pratiques de durcissement et de protection – SysOSX: AI & Cloud



1. Utilisation réelle de l'audit système

Pourquoi de nombreux systèmes ignorent l'audit

Bien que l'audit soit puissant, de nombreux administrateurs évitent de l'activer pour les raisons suivantes :

  • Consommation d'espace disque : les journaux d'audit peuvent croître rapidement, en particulier sur les systèmes très sollicités, et consommer beaucoup d'espace disque.
  • Surcharge de performance : l'activation d'audits détaillés peut ajouter une légère surcharge aux performances du système.
  • Complexité : les journaux d'audit sont verbeux et nécessitent des outils spécialisés pour l'analyse.

Comment planifier l'audit

Planification de l'espace disque

Pour planifier efficacement l'audit :

  1. Estimer la croissance des journaux : surveillez les taux de croissance des journaux en activant temporairement l'audit et en mesurant la taille des journaux sur une semaine. sudo du -sh /var/log/audit/ Utilisez ces données pour calculer les besoins de stockage quotidiens, hebdomadaires et mensuels.
  2. Réserver un stockage dédié : stockez les journaux d'audit sur une partition ou un disque distinct pour éviter que les journaux ne remplissent le système de fichiers racine. Par exemple :
    • Créez une partition pour les journaux : /var/log/audit.
    • Utilisez des outils comme lvcreate (Logical Volume Manager) pour étendre dynamiquement le stockage si nécessaire.
  3. Activer la compression : utilisez logrotate pour compresser les anciens journaux d'audit, réduisant ainsi considérablement les besoins de stockage.
  4. Politiques de conservation : définissez des politiques de conservation en fonction des besoins de votre organisation. Par exemple :
    • Conserver les journaux pendant 30 jours pour le dépannage.
    • Archiver les journaux plus anciens sur un stockage externe à des fins de conformité.

Considérations de performance

L'impact d'Auditd sur les performances est minime pour la plupart des systèmes. Cependant, pour les serveurs à fort trafic (par exemple, les serveurs web ou de bases de données), surveillez l'utilisation du processeur et des E/S après avoir activé l'audit. Si nécessaire :

  • Limitez la portée des règles d'audit aux fichiers ou répertoires critiques au lieu de surveiller l'ensemble du système.
  • Utilisez des techniques d'échantillonnage pour réduire la fréquence des journaux.

2. Utilisation d' auditd pour suivre et enregistrer les événements système

L'outil auditd reste l'une des solutions les plus robustes pour l'audit système. Voici d'autres considérations pour une utilisation réelle.

Règles d'audit avancées

Au lieu d'auditer chaque fichier, concentrez-vous sur les domaines critiques :

  • Fichiers de configuration système :
 sudo auditctl -w /etc/ssh/sshd_config -p wa -k ssh_config_changes
  • Répertoires sensibles :
sudo auditctl -w /var/www/html -p rwxa -k web_access
  • Activité des utilisateurs :
    Surveiller des utilisateurs ou des groupes spécifiques :
sudo auditctl -a always,exit -F uid=1001 -F arch=b64 -S execve -k user_commands

Outils pour analyser les journaux d'audit

Les journaux d'audit peuvent être accablants, mais plusieurs outils peuvent aider à traiter et à analyser les données :

  1. Aureport : génère des rapports récapitulatifs à partir des journaux d'audit. sudo aureport --summary
  2. Auditbeat : un outil léger d'Elastic pour envoyer les journaux d'audit vers une pile ELK centralisée pour la visualisation et l'analyse.
    • Installer Auditbeat : sudo apt install auditbeat
    • Configurez-le pour envoyer les journaux à Elasticsearch ou Logstash.
  3. Splunk : un outil commercial d'analyse des journaux avec des fonctions avancées de recherche et de reporting.

3. Planification de l'espace disque pour les journaux d'audit

Exemple de plan d'espace disque

Supposons :

  • Les journaux d'audit quotidiens consomment 500 Mo.
  • Les journaux sont pivotés chaque semaine et compressés à 20 % de leur taille d'origine.

Calcul de l'espace disque :

  • Journaux non compressés pendant 7 jours : 500 MB×7=3.5 GB500MB×7=3.5GB
  • Journaux compressés pendant 30 jours : 500 MB×30×0.2=3 GB500MB×30×0.2=3GB
  • Espace de stockage total requis : 3.5 GB+3 GB=6.5 GB3.5GB+3GB=6.5GB

Prévoyez au moins 10 Go pour absorber les pics inattendus.


4. Configuration de la rotation des journaux avec logrotate

La rotation des journaux est essentielle pour gérer la taille des journaux. Voici des configurations avancées pour les journaux d'audit et les journaux système.

Rotation des journaux d'audit

Les journaux d'audit sont gérés automatiquement par le auditd démon. Pour personnaliser la rotation :

  • Modifiez le /etc/audit/auditd.conf fichier :
max_log_file = 50   # Maximum size in MB for audit.log
max_log_file_action = rotate  # Rotate logs when size exceeds limit
  • Tester la configuration :
sudo service auditd restart

Rotation des autres journaux

Pour les journaux autres que les journaux d'audit, utilisez logrotate :

  • Exemple pour /var/log/syslog :
/var/log/syslog {
    weekly
    rotate 4
    compress
    missingok
    notifempty
    create 0640 root root
}

5. Pratiques avancées de surveillance et d'audit

Surveillance des journaux en temps réel

La surveillance en temps réel est essentielle pour détecter les événements critiques. Voici des outils et des techniques :

  1. Logwatch : résume les journaux quotidiens et les envoie par courriel aux administrateurs. sudo apt install logwatch Configurez-le dans /etc/logwatch/conf/logwatch.conf.
  2. Gestion centralisée des journaux :
    • Rsyslog : transfère les journaux vers un serveur central. sudo apt install rsyslog Configurez /etc/rsyslog.conf pour envoyer les journaux vers un serveur distant.
    • Graylog : fournit une interface web pour l'analyse des journaux.
    • ELK Stack : Elasticsearch, Logstash et Kibana pour une gestion des journaux évolutive.

Surveillance axée sur la sécurité

  • Fail2ban : surveille les journaux pour détecter les tentatives de connexion échouées et bannit les adresses IP.
sudo apt install fail2ban
  • Tripwire : détecte les modifications de fichiers pour la détection d'intrusions.
sudo apt install tripwire

Intégration des alertes

Configurez des alertes pour les événements critiques avec des outils comme :

  • Nagios : surveille l'état du serveur et les journaux pour détecter les anomalies.
  • Prometheus with Grafana : suit les métriques et les journaux en temps réel.

Emplacements des fichiers journaux

Il existe de nombreux fichiers journaux différents, qui servent tous des objectifs différents. Lorsque vous cherchez un journal sur un sujet, vous devez d'abord identifier le fichier le plus pertinent. Voici une liste des emplacements courants des fichiers journaux.

Journaux système

Les journaux système concernent exactement cela — le système Ubuntu — par opposition aux applications supplémentaires ajoutées par l'utilisateur. Ces journaux peuvent contenir des informations sur les autorisations, les démons système et les messages système.

Journal d'autorisation

Emplacement : /var/log/auth.log

Suit les systèmes d'autorisation, comme les invites de mot de passe, la sudo commande et les connexions distantes.

Journal des démons

Emplacement : /var/log/daemon.log

Les démons sont des programmes qui s'exécutent en arrière-plan, généralement sans interaction de l'utilisateur. Par exemple, le serveur d'affichage, les sessions SSH, les services d'impression, le Bluetooth, et plus encore.

Journal de débogage

Emplacement : /var/log/debug

Fournit des informations de débogage du système Ubuntu et des applications.

Journal du noyau

Emplacement : /var/log/kern.log

Journaux du noyau Linux.

Journal système

Emplacement : /var/log/syslog

Contient plus d'informations sur votre système. Si vous ne trouvez rien dans les autres journaux, c'est probablement ici.

Journaux d'applications

Certaines applications créent également des journaux dans /var/log. Voici quelques exemples.

Journaux Apache

Emplacement : /var/log/apache2/ (sous-répertoire)

Apache crée plusieurs fichiers journaux dans le /var/log/apache2/ sous-répertoire. Le access.log fichier enregistre toutes les requêtes adressées au serveur pour accéder aux fichiers. error.log enregistre toutes les erreurs générées par le serveur.

Journaux du serveur X11

Emplacement : /var/log/Xorg.0.log

Le serveur X11 crée un fichier journal distinct pour chacun de vos écrans. Les numéros d'écran commencent à zéro, donc votre premier écran (écran 0) consignera dans Xorg.0.log. L'écran suivant (écran 1) consignerait dans Xorg.1.log, et ainsi de suite.

Journaux non lisibles par l'humain

Tous les fichiers journaux ne sont pas conçus pour être lus par des humains. Certains ont été conçus pour être analysés par des applications. Voici quelques exemples.

Journal des échecs de connexion

Emplacement : /var/log/faillog

Contient des informations sur les échecs de connexion. Vous pouvez le consulter avec la faillog commande.

Journal des dernières connexions

Emplacement : /var/log/lastlog

Contient des informations sur les dernières connexions. Vous pouvez le consulter avec la lastlog commande.

Journal des connexions

Emplacement : /var/log/wtmp

Contient des informations de connexion utilisées par d'autres utilitaires pour savoir qui est connecté. Pour voir les utilisateurs actuellement connectés, utilisez la who commande.


Conclusion

L'audit et la journalisation sont essentiels pour maintenir un serveur Ubuntu sûr et fiable. En planifiant soigneusement l'espace disque, en utilisant des outils pour analyser les journaux et en mettant en œuvre des pratiques de surveillance avancées, vous pouvez surmonter les défis courants et mieux comprendre les activités du système.

Que vous gériez des exigences de conformité ou que vous sécurisiez votre serveur de manière proactive, les techniques et les outils abordés dans cet article vous aideront à construire une stratégie de journalisation et d'audit évolutive et efficace.

À suivre : Outils de surveillance système pour Ubuntu Server

Dans le prochain article, nous approfondirons la surveillance et la gestion des performances. Nous explorerons de puissants outils de surveillance système pour Ubuntu Server, y compris des solutions comme Nagios, Prometheus, Grafana et htop, pour vous aider à suivre l'utilisation des ressources, à détecter les goulots d'étranglement et à optimiser les performances du serveur.

Restez à l'écoute pour apprendre à faire fonctionner votre serveur efficacement et à traiter les problèmes potentiels de manière proactive avant qu'ils n'affectent vos opérations !

3 thoughts on “09. Audit and Logging on Ubuntu Server: A Comprehensive Guide”

Laisser un commentaire