web-dev-qa-db-fra.com

Recherche des dernières connexions réussies et des tentatives infructueuses sur un serveur CentOS

Je recherche 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? (intégré est préférable)

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 d'autres ports ouverts conventionnels.

31
lashgar

Sous Linux, la commande last affiche les tentatives de connexion réussies et affiche les informations de session (pts, source, date et durée).

La commande lastb enregistre toutes les tentatives de connexion incorrectes. Les deux partagent la même page man, mais la différence est que last lit le binaire /var/log/wtmp fichier et lastb lit le /var/log/btmp fichier par défaut.

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

63
ewwhite

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

14
flolo

Ceci est un ancien thread mais j'ai eu une tâche similaire comme celle-ci, donc dans mon cas, c'est 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 le faire comme ceci, 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

Au cas où nous le saurions par 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"

Donc, le script devrait s'exécuter comme

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

OU approche plus facile

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