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
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
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 :
- 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. - 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.
- Créez une partition pour les journaux :
- Activer la compression : utilisez
logrotatepour compresser les anciens journaux d'audit, réduisant ainsi considérablement les besoins de stockage. - 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 :
- Aureport : génère des rapports récapitulatifs à partir des journaux d'audit.
sudo aureport --summary - 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.
- Installer Auditbeat :
- 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.conffichier :
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 :
- Logwatch : résume les journaux quotidiens et les envoie par courriel aux administrateurs.
sudo apt install logwatchConfigurez-le dans/etc/logwatch/conf/logwatch.conf. - Gestion centralisée des journaux :
- Rsyslog : transfère les journaux vers un serveur central.
sudo apt install rsyslogConfigurez/etc/rsyslog.confpour 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.
- Rsyslog : transfère les journaux vers un serveur central.
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”