Afficher les échecs récents de connection lors de la connection

J'ai un server Ubuntu Linux qui est confronté au Web. À cause de cela, je reçois un bon nombre de tentatives SSH de force brute (qui ne le fait pas). J'aimerais afficher les dernières N tentatives de connection échouées à mon invite de connection. J'ai élaboré le script simple:

grep "Failed" /var/log/auth.log | tail -5 

mais ce que j'ai besoin de savoir, est-ce que je place cette ligne de script? Y a-t-il un endroit pour dire que c'est une coquille agnostique?

Il existe quelques packages que vous pouvez utiliser pour aider les attaques de force brutale.

  1. Denyhosts
  2. Fail2ban

Pour collecter des journaux et vous envoyer un rapport, vous pouvez utiliser Logwatch. Il peut également envoyer un résumé des connections échouées.

Pour répondre à votre question initiale, vous pouvez mettre votre script dans "/etc/profile.d/yourscript.sh" et il doit être exécuté lors de la connection.

Vous pouvez également envisager de configurer le package arno-iptables-firewall.

C'est vraiment dépendante de la shell. Pour bash , vous devriez le mettre dans le file .bash_login .

En ce qui concerne la prévention de la force brute, à côté de ce qui a déjà été suggéré pour la list noire de l'IP de l'attaquant, je request généralement à sshd d'écouter sur un port non standard et de désactiver l'authentification par mot de passe. Bien sûr, cela pourrait ne pas toujours être possible, mais il est sûr d'être efficace.

Placez tout dans / etc / profile.

Il fonctionnera tout dans / etc / profile avant d'accéder au file de démarrage de votre shell.

Ce que j'ai finalement terminé, c'est de créer un directory .profile.d dans mon directory personnel et de copyr la boucle d'exécution à partir de /etc/profile dans mon $HOME/.profile . J'ai ensuite placé mon script displayAttacks.sh dans mon directory $HOME/.profile.d (ainsi que mes autres scripts d'initialisation).

L'ajout à .profile suit.

 if [ -d "${HOME}/.profile.d" ]; then for i in ${HOME}/.profile.d/*.sh; do if [ -r "$i" ]; then . "$i" fi done unset i fi 

Il existe un script perl , SSHBlock qui peut être utilisé contre le forçage brut SSH.
Il suit une tentative fréquente d'une adresse IP et ralentit leurs tentatives.

Vous avez des problèmes là-bas. Tout d'abord, tout user non root ne devrait pas pouvoir lire le file auth log. Si vous vous connectez en tant que root, ne le faites plus 🙂

Deuxièmement, utilisez un outil approprié pour cela. J'aime l'approche de OSSEC pour m'envoyer un e-mail pour chaque nombre X de connections échouées dans un timeout. Il bloque également l'ip automatiquement, ce qui réduit les chances d'une attaque de force brute réussie.