Je viens de me cat /var/log/auth.log
connecter et de voir qu'il existe de nombreux | grep "Failed password for"
enregistrements.
Cependant, il existe deux types d'enregistrement possibles - pour un utilisateur valide / non valide. Cela me complique mes tentatives | cut
.
Je voudrais voir créer une liste (fichier texte) avec les adresses IP des attaquants potentiels et le nombre de tentatives pour chaque adresse IP. Existe-t-il un moyen simple de le créer?
Aussi, concernant uniquement ssh
: Quels sont les enregistrements dont /var/log/auth.log
je devrais tenir compte lors de la liste des attaquants potentiels?
Exemple de mon 'auth.log' avec des nombres cachés:
cat /var/log/auth.log | grep "Failed password for" | sed 's/[0-9]/1/g' | sort -u | tail
Résultat:
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user ucpss from 111.11.111.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user vijay from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user webalizer from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user xapolicymgr from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user yarn from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user zookeeper from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user zt from 111.11.111.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for mysql from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for root from 111.11.111.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for root from 111.111.111.1 port 11111 ssh1
/etc/ssh/sshd_config
... les paramètres de recherchePasswordAuthentication no
etPermitRootLogin without-password
... alors toutes ces tentatives de mot de passe seront contrecarrées avant d'entrer dans le journal auth ...Réponses:
Vous pouvez utiliser quelque chose comme ceci:
Il recherche la chaîne
Failed password for
et extrait (-o
) l'adresse IP. Il est trié etuniq
compte le nombre d'occurrences.La sortie ressemblerait alors à ceci (avec votre exemple comme fichier d'entrée):
Le dernier dans la sortie a essayé 6 fois.
la source
| sort -n
à la chaîne.sed -nr '/Failed/{s/.*([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+).*/\1/;p}'
remplace les deux greps.zgrep "Failed" /var/log/auth.log*
de rechercher également dans les archives de journal compressées, ce quised
ne peut pas.Ce pourrait être une solution gonflée, mais je vous suggère de regarder l'installation de quelque chose comme Fail2Ban
Il est fait pour ce type de journalisation + ajoute le bonus de pouvoir ajouter des règles (temporaires) dans votre pare-feu pour bloquer les récidivistes. Assurez-vous de mettre votre propre IP en liste blanche, j'ai réussi à me verrouiller temporairement à quelques reprises
la source
Cela a très bien fonctionné pour moi. (Les adresses IP ont été modifiées pour protéger les coupables)
la source
la source
password
- ne fonctionne pas. Il ne couvre même pas différents types d'entrée,awk
la colonne d'impression est une alternative àcut
, pas la solution.uniq -c
comme dans la meilleure réponse.