Surveiller son serveur simplement sous GNU/Linux Debian

Comme tout bon administrateur système, vous devez vérifier régulièrement la santé de votre infrastructure. Que ce soit au niveau système d’exploitation, hardware ou réseau.

Si un composant commence à avoir des signes de faiblesse, vous pourrez le remplacer avant qu’il vous casse dans les mains. Un autre point important, cette surveillance vous permettra de détecter si un programme ou un personne utilise votre serveur GNU/Linux Debian à votre insu…

Dans cet article, j’ai rassemblé les commandes et outils que j’utilise pour vérifier mes serveurs. J’espère que cela pourra vous servir.

La commande de base, que tout administrateur système doit connaitre est ‘top‘. Elle permet d’avoir des informations généraliste sur l’utilisation de votre serveur (CPU, RAM, uptime, processus…).

1. Surveiller les interfaces réseau

Les paquets ifstatiftop et bmon permettent d’avoir d’un coup d’œil des informations sur les statistiques réseau de votre/vos interface(s) réseau(x). Installez ces paquets et exécutez ces binaires !

Sinon, l’utilitaire netstat permet d’afficher des informations plus précises sur l’utilisation de votre réseau. Je vous invite à lire le « man » sinon, utiliser les commandes suivantes (pour information, l’option n de netstat permet de résoudre les noms d’hôte) :

– Afficher les informations de vos interfaces réseau :

netstat -i

– Lister les connexions établies :

netstat -tap
netstat --unix -p #(l'option p permet de limiter la liste des connectés via les protocoles standards)

– Liste les ports en écoute :

netstat -tulp

– Qui est connecté sur le serveur WEB ou sur un service réseau :

netstat -anp | grep -i apache

– Qui est connecté sur le port du serveur SSH :

netstat -natv | grep ':22'

– Qui est connecté en SSH :

who -a

– Liste des programmes et leurs PID associés en écoute :

lsof -n | grep LISTEN

– Liste les connexions UDP :

lsof -n | grep UDP

 

2. Surveiller son disque dur

apt-get install sysstat
iostat -tmdx 1

– Espace disque (répertoires) :

du -h
du -Shc
du -hs ./* | sort -nr | head (afficher les plus gros répertoires à partir du répertoire courant)
du -lmc /répertoire | grep '/répertoire/sous-répertoire$' | awk '{print $1}'

Affiche l’usage du disque pour chaque répertoire et sous-répertoire par défaut en partant du répertoire courant ‘.’. Par passage d’un nom de répertoire en paramètre, l’analyse se fera sur ce dernier.

– Espace disque (partitions) :

df -f

affiche la quantité d’espace libre au niveau des différentes device montées ou passées en paramètre.

– Espace disque (fichiers) :

ls -l
ls -lh

 

3. Surveiller l’utilisation de la RAM

htop (permet également de surveiller mémoire, CPU, process et swap)
free -m (l option m permet d afficher en Mo

 

4. Surveiller l’utilisation de son CPU

mpstat 1

 

5. Surveiller un processus (minecraft dans mon exemple)

ps -eaf | grep -i minecraft

Killer un Process grâce à son PID :

kill -15 [PID] (méthode douce)
kill -9 [PID] (méthode violente)

 

6. Autres

– Uptime du serveur :

uptime
who -b

l’heure actuelle / depuis quand le système est fonctionnel / le nombre d’utilisateurs connectés / la charge du système moyenne pour les 1, 5 et 15 dernières minutes

– Liste des connexions au serveur FTP :

ftptop

– Top Apache :

apachetop

Voir l’activité Apache d’un site (sur 120 secondes, refresh toutes les 2 secondes):

apachetop -T 120 -d 2 -f /var/log/virtualmin/domain.fr_access_log

apachetop -f /var/log/virtualmin/demineurs.fr_access_log

– Top MySQL :

mytop -u root -p password -h localhost -s 2

– Éjecter une personne connectée en SSH :

root@nova:~# who
root pts/0 2012-10-03 22:56 (arennes-XXXXXXXXXXXXXX)
root pts/2 2012-10-03 23:14 (amontsouris-XXXXXXXXXXXXXXXXXXX)
root@nova:~# ps ax | grep root
1241 pts/0 S+ 0:00 grep root
17993 ? Ss 0:00 sshd: root@notty
26890 ? Ss 0:00 sshd: root@notty
28730 ? Ss 0:00 sshd: root@pts/0
31343 ? Ss 0:00 sshd: root@pts/2
root@nova:~# kill 31343

– atop

Ce paquet permet de monitorer l’activité de ce serveur Linux.

atop

– dnstop

Ce paquet permet de visualiser le trafic de son serveur DNS, il permet notamment d’identifier les requêtes indésirables.

dnstop

– Détection de rootkits :

rkhunter
chkrootkit

– Détection des intrusions et audit de sécurité :

tiger

– tcpdump

Afficher à l’écran le trafic TCP sur le port 80 (HTTP):

tcpdump -i eth0 port 80 and tcp -v

Capturer dans un fichier le trafic TCP sur le port 80 (HTTP):

tcpdump -i eth0 port 80 and tcp -w dump.cap

Afficher à l’écran le trafic UDP sur le port 1234 depuis et vers l’IP 1.2.3.4:

tcpdump -i eth0 port 1234 and udp and net 1.2.3.4 -v

– Contrer une attaque du type DDOS sysflood

Je vous invite à lire cette article qui m’a beaucoup aidé a une époque : http://www.tux-planet.fr/contrer-une-attaque-ddos-de-type-syn-flood-sous-linux
 
 
sources et photo

  • Je viens de mettre à jours l’article. J’ai rajouté les outils chkrootkit et tiger.

  • pazpop

    Je viens de mettre à jours l’article. J’ai rajouté tcpdump.

  • nono97

    Merci c’est un article intéressant. quelle est la commande pour connaitre la charge internet via ethxx?

    • pazpop

      Salut,

      Merci pour ton retour 🙂
      Personnellement, j’utilise les commandes ifstat et iftop (Tu dois installer les packages : apt-get install ifstat && apt-get install iftop ). Ces packages permettent d’obtenir les statistiques de tes interfaces réseaux 🙂

      Sinon, via netstat, je pense que tu peux également avoir des stats sur les interfaces réseaux. Je regarderais ce soir quand je serais chez moi 😉

      ++