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

29

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.

lashgar
la source
2
réponse à la deuxième question: jetez un œil à OSSEC .
quanta
1
Ce fil est déplacé de Stackoverflow après avoir posé la question dans Serverfault. Voici les fils de discussion sur la deuxième question.
lashgar

Réponses:

61

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

La lastbcommande enregistre toutes les tentatives de connexion incorrectes. Les deux partagent la même manpage, mais la différence est que lastlit le /var/log/wtmpfichier binaire et lastblit le /var/log/btmpfichier 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 tournent /var/log/wtmptous les mois, vous pouvez donc lire un enregistrement précédent, généralement répertorié comme /var/log/wtmp.1en spécifiant le fichier avec le -fparamètre ...last -f /var/log/wtmp.1

ewwhite
la source
17
+1 pour lelastb
lashgar
3
Cela devrait être la réponse choisie
un codeur
@acoder, done: thumb:
lashgar
14

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é").

flolo
la source
C'est en fait la réponse à ma première question. Je vais demander la seconde dans ServerFault. Merci.
lashgar
1

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"
Prashant Lakhera
la source