Quelques éléments utiles pour une vérification de l'intégrité de son système sous Linux
fr:Quelques éléments utiles pour une vérification de l'intégrité de son système sous Linux he:כמה אלמנטים שימושיים עבור אימות של שלמות המערכת שלה תחת לינוקס ro:Câteva elemente utile pentru o verificare a integrității sistemului său sub Linux ru:Несколько полезных элементов для проверки целостности системы под Linux pl:Kilka elementów przydatnych do weryfikacji integralności systemu pod Linuksem ja:Linux では、システムの整合性の検証のため、いくつかの有用な要素 ar:عدد قليل من العناصر المفيدة لتحقق من سلامة نظامها تحت لينكس zh:几个有用的内容,为其在 Linux 下的系统的完整性验证的 de:Ein paar nützliche Elemente für eine Überprüfung der Integrität seines Systems unter Linux nl:Een paar nuttige elementen voor een verificatie van de integriteit van het systeem onder Linux it:Alcuni elementi utili per una verifica dell'integrità del suo sistema sotto Linux pt:Alguns elementos úteis para uma verificação da integridade do seu sistema sob Linux es:Algunos elementos útiles para una verificación de la integridad de su sistema bajo Linux en:A few useful elements for a verification of the integrity of its system under Linux
Introduction
Sécuriser son serveur est une tâche qui s'avère être longue et complexe. Mettre à jour son système d'exploitation ainsi que les différents composants de celui-ci est une première étape cruciale mais si vous avez des doutes sur l'intégrité de votre système, vous trouverez ci-dessous quelques éléments vous permettant d'établir un premier diagnostique rapide.
Pour chaque point de ce tutoriel, vous trouverez différentes informations relatives aux vérifications qui sont effectuées ainsi que quelques commandes utiles en rapport avec celles-ci.
Point important
La vérification de l'intégrité de son système est une opération longue et compliquée. Cet article n'a nullement pour prétention d'être un tutoriel de référence en la matière. Notez également que le fait de suivre cet article ne vous assurera en rien une sécurité totale, loin de là mais c'est une entrée en matière. Il est simplement question ici de présenter une approche globale et accessible dans le but d'effectuer une vérification rapide de l'intégrité de votre système. Pour une vérification plus poussée, vous pouvez vous tourner vers la commande d'une infogérance ponctuelle (contactez notre support au préalable).
Un mot d'ordre : prudence
Avant d'aller plus loin, un rappel est nécessaire : soyez prudent dans vos modifications, effectuez des sauvegardes, renommez les fichiers plutôt que de les supprimer, etc. Ikoula décline toute responsabilité quant à la mauvaise application du présent article.
Vérifications système de fichiers
Les différents journaux
Beaucoup d'informations sont disponibles par le biais des journaux disponibles dans /var/log/.
Les fichiers qui peuvent vous fournir des informations précieuses sont :
- auth.log pour les différentes connexions à votre serveur en SSH
- syslog pour les journaux du système
- les fichiers de log associées aux applications installées (mail.err, mail.info, mail.err pour les mails, fail2ban.log pour fail2ban, etc.)
L'occupation disque
L'occupation de vos différentes partitions est également un point important de vérification de votre système, en effet celui-ci peut très rapidement manquer de place si des fichiers de journalisation (log) produisent de nombreux messages. Voici donc quelques commandes vous permettant d'avoir un aperçu de l'occupation de vos disques:
# Obtenir un aperçu global de l'occupation des différentes partitions
df -h
# Exemple de résultat retourné par la commande df -h
# Sys. fich. Taille Util. Dispo Uti% Monté sur
# rootfs 117G 2,7G 108G 3% /
# udev 10M 0 10M 0% /dev
# tmpfs 396M 236K 396M 1% /run
# /dev/sda1 117G 2,7G 108G 3% /
# /dev/sda2 895M 21M 826M 3% /boot
# tmpfs 2,0G 4,0K 2,0G 1% /tmp
# Obtenir des statistiques précises sur la tailles des fichiers et dossiers du répertoire voulu
du -sh /mondossier/*
# Exemple de résultat retourné par la commande du -sh /*
# 7,4M bin
# 21M boot
# 0 dev
# 6,6M etc
# 493M home
# 127M lib
# 12K media
# 4,0K mnt
# 4,0K opt
# 0 proc
# 124K root
# 368K run
# 0 sys
# 4,0K tmp
# 1,6G usr
# 402M var
Les tâches planifiées
Il peut être intéressant d'effectuer une vérification au niveau des tâches planifiées également.
En effet un appel à un script ou tout autre élément à un intervalle régulier ou suite à différents événements système peut être une bonne chose.
Afin de vérifier les différentes tâches planifiées configurées sur votre système, vous pouvez utiliser la commande more /etc/crontab
Vous pouvez également utiliser la commande ls /etc/cron.* en complément de celle citée plus haut afin de lister les différentes tâches cron en place sur votre système.
Les services lancés au démarrage
Certains programmes ou scripts sont appelés dès le lancement du système. Ceux-ci peuvent être également facilement identifiés par le biais de la commande suivante :
for i in `find /etc/rc*.d -name S*`; do basename $i | sed -r 's/^S[0-9]+//'; done | sort | uniq
Les utilisateurs
Vous pouvez vérifier qu'un utilisateur indésirable ne dispose d'un compte lui permettant d'accéder à votre serveur en listant les différents comptes créés sur la machine. La commande "cat /etc/passwd" vous permettra d'identifier les utilisateurs disposant de la possibilité d'utiliser bash sur votre système.
Les processus actuellement démarrés
Une autre vérification consiste à lister les processus actuellement lancés sur votre système. Vous pouvez lister les processus actifs via la commande suivante :
ps faux
La vérification des signatures des paquets installés
Vous pouvez procéder à la vérification des signatures md5 des paquets installés sur votre système en utilisant debsums. Ce paquet n'est pas installé par défaut, il vous faudra l'installer par le biais de la commande :
apt-get install debsums
Suivant les paquets installés et la puissance de votre machine, cette opération peut être relativement longue. D'autant plus si vous utilisez l'option -a qui vérifie également les fichiers de configuration.
La vérification du contenu du fichier sources.list (sources des différents paquets que vous allez installer) peut-être une bonne chose également : cat /etc/apt/sources.list
Vérifications réseau
Le fichier HOST
Le fichier HOST situé dans cat /etc/hosts peut également avoir été modifié afin de shunter la résolution DNS pour l'accès à un hôte distant. En modifiant ce fichier, on peut, par exemple faire pointer le nom de domaine zzz.fr du serveur ayant pour adresse IP 1.1.1.1 vers 2.2.2.2 de manière quasi transparente et ainsi se faire voler ses données, pensant que l'on visite le site hébergé sur le serveur ayant pour adresse IP 1.1.1.1
Serveurs DNS
L'utilisation de serveurs DNS qui ne sont pas dit "de confiance" peut également vous faire courir un risque. Vous pouvez installer votre propre serveur DNS si vous ne faites pas confiance à des serveurs DNS tiers si vous le souhaitez. Vous pouvez lister les serveurs DNS actuellement utilisés sur votre système par le biais de la commande cat /etc/resolv.conf.
Les processus et les connexions associées
Vous pouvez également voir quels processus sont actuellement en cours d'exécution ainsi que les connexions qui sont associées à ces processus.
Pour avoir ses détails, vous pouvez lancer la commande lsof -Ki.
Vous pouvez également actualiser ces informations toutes les X secondes en ajoutant ce délai d'actualisation à la fin de la commande :
watch -n X lsof -Ki
Conclusion
Vous disposez maintenant d'informations complémentaires pour effectuer une première analyse de votre système. Disposer de ces informations n'est pas le plus dur, l'exploitation de ces informations est ce qu'il y a de plus complexe étant donné qu'il faut être familier avec les différents processus système, leurs ports et les différentes connexions associées.
Activer l'actualisation automatique des commentaires