Détecter les tentatives d’intrusion sur un serveur Web Linux
Sur un serveur Web, la lecture des logs de connexion est une de nos tâches quotidiennes.
Les logs
Tous les événements de connexion sont tracés, par défaut, dans le fichier /var/log/secure pour les distributions Red Hat like et /var/log/auth.log pour les distributions Debian Like. C’est un fichier texte, déclaré dans le fichier /etc/rsyslog.conf au niveau de la directive auth.*, authpriv.*.
Tous les logs sont consignés dans /var/log/wtmp pour les connexions réussies et dans /var/log/btmp pour celles qui ont échoué. L’existence d’un fichier btmp de plusieurs centaines de mégaoctets traduit, en général, des tentatives d’intrusion par ssh. Dans un premier temps, changez le numéro du port dans le fichier /etc/ssh/sshd_config. Puis tâchez de mettre en place un accès par clés au niveau du serveur OpenSSH. J’ai fait un tuto à ce sujet en 2005. Il n’a pas pris une ride.
Les commandes
- Pour consulter le contenu des fichiers btmp et wtmp, vous disposez respectivement des commandes lastb et last.
- Pour un récapitulatif de l’historique de vos connexions, vous disposez de la commande lastlog.
- Enfin, pour suivre vos logs en temps réel, vous pouvez utiliser tail -f /var/log/secure sur les distributions Linux Red Hat Like et tail -f /var/log/auth.log sur les distributions Debian Like !
Rotation des logs
La rotation des logs est prise en charge par logrotate :
- dans /etc/logrotate.conf, pour les fichiers /var/log/wtmp et /var/log/btmp
- dans /etc/logrotate.d/syslog pour le fichier /var/log/secure