39 votes

Trouver les dernières connexions réussies et les dernières tentatives échouées sur un serveur CentOS

Je cherche un fichier journal ou un service pour signaler les dernières tentatives de connexion qui ont échoué en raison d'une incompatibilité entre le nom d'utilisateur et le mot de passe. Existe-t-il de tels utilitaires pour CentOS ? (de préférence intégré)

Ma deuxième question, et plus généralement, j'ai besoin d'un fichier journal des tentatives de pénétration sur mon serveur. Idéalement, ce journal devrait contenir toutes les tentatives, y compris les connexions, les activités httpd et les autres ports ouverts conventionnels.

78voto

ewwhite Points 193555

Sous Linux, l'option last indique les tentatives de connexion réussies et affiche les informations relatives à la session (pts, source, date et durée).

En lastb enregistre toutes les mauvaises tentatives de connexion. Ces deux commandes partagent le même man mais la différence est que last lit le code binaire /var/log/wtmp et lastb lit le /var/log/btmp par défaut.

L'étendue de ces fichiers dépend de votre calendrier de rotation des journaux, mais elle devrait s'étendre sur quelques semaines. La plupart des distributions font tourner les fichiers /var/log/wtmp mensuellement, afin que vous puissiez lire un enregistrement précédent, généralement répertorié en tant que /var/log/wtmp.1 en spécifiant le fichier avec l'option -f paramètre... last -f /var/log/wtmp.1

14voto

wmil Points 101

La question est ici hors sujet, mais une réponse très courte : peut-être devriez-vous simplement vérifier /var/log/secure (par exemple, grep pour "failed").

2voto

Prashant Lakhera Points 683

Il s'agit d'un vieux fil de discussion, mais j'ai eu une tâche similaire à celle-ci, donc dans mon cas, il s'agit d'une entrée de journal

Nov 15 17:14:47 megatron sshd[4768]: Failed password for git from 192.168.122.1 port 49227 ssh2

Nous pouvons donc procéder comme suit, si nous sommes sûrs que l'utilisateur est statique

#!/bin/bash
LOG=/var/log/secure
MESSAGE="Failed password for git"
grep -i "$MESSAGE" "$LOG

Dans le cas où nous savons ce qu'il en est pour chaque utilisateur

#!/bin/bash
LOG=/var/log/secure
if [ -n "$1" ]
then
NEWUSER="$1"
else
NEWUSER="root"
fi
MESSAGE="Failed password for $NEWUSER"
grep -i "$MESSAGE" "$LOG"

Ainsi, script devrait s'exécuter comme suit

[root@megatron bash1]# ./failedlogin.sh git

OU une approche plus simple

#!/bin/bash
LOG=/var/log/secure
MESSAGE="Failed password for"
grep -i "$MESSAGE" "$LOG"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X