J'ai examiné le fichier auth.log sur mon serveur Ubuntu pour trouver:
[pré-autorisation] 22 février 17:39:18 sshd de stockage de code [17271]: déconnecté du port 147405.192.203 49408 [pré-autorisation] 22 février 17:40:15 code-storage sshd [17273]: Utilisateur invalide ellen à partir de 147.135.192.203 22 février 17:40:15 code-stockage sshd [17273]: input_userauth_request: utilisateur invalide ellen [preauth] 22 février 17:40:15 sshd de stockage de code [17273]: Déconnexion reçue du port 147.135.192.203 50193: 11: Arrêt normal, merci d'avoir joué [preauth] 22 fév 22 17:40:15 sshd de stockage de code [17273]: Déconnecté du port 147.135.192.203 50193 [préauth] 22 février 17:40:34 sshd de stockage de code [17275]: Connexion fermée par le port 103.237.147.107 17583 [préauth] 22 février 17:41:12 sshd de stockage de code [17277]: Utilisateur emil invalide de 147.135.192.203 22 février 17:41:12 sshd de stockage de code [17277]: input_userauth_request: utilisateur invalide emil [preauth] 22 février 17:41:12 sshd de stockage de code [17277]: Déconnexion reçue du port 147.135.192.203 50841: 11: Arrêt normal, merci f ou lecture de [pré-autorisation] 22 février 17:41:12 stockage de code sshd [17277]: Déconnecté du port 147.135.192.203 50841 [pré-autorisation] 22 février 17:42:05 stockage de code sshd [17280]: utilisateur enzo non valide à partir de 147.135.192.203 22 février 17:42:05 stockage de code sshd [17280]: input_userauth_request: utilisateur non valide enzo [preauth] 22 février 17:42 : 05 code-storage sshd [17280]: Déconnexion reçue du port 147.135.192.203 51356: 11: Arrêt normal, merci d'avoir joué [preauth] 22 février 17:42:05 code-storage sshd [17280] : Déconnecté du port 147.135.192.203 51356 [preauth] 22 février 17:42:14 code-storage sshd [17282]: Connexion fermée par le port 103.237.147.107 64695 [preauth] 22 février 17 : 43: 00 sshd de stockage de code [17285]: Felix d'utilisateur non valide à partir de 147.135.192.203 22 février 17:43:00 sshd de stockage de code [17285]: input_userauth_request: utilisateur non valide felix [preauth] 22 février 17:43:00 sshd de stockage de code [17285]: Déconnexion reçue du port 147.135.192.203 52145: 11: Arrêt normal, merci yo u pour jouer [preauth] 22 février 17:43:00 sshd de stockage de code [17285]: Déconnecté du port 147145.192.203 52145 [preauth] 22 février 17:43:52 code- stockage sshd [17287]: connexion fermée par le port 103.237.147.107 55122 [pré-autorisation] 22 février 17:43:56 code-stockage sshd [17289]: utilisateur invalide fred depuis 147.135.192.203 février 22 17:43:56 sshd de stockage de code [17289]: input_userauth_request: utilisateur invalide fred [preauth] 22 février 17:43:56 sshd de stockage de code [17289]: déconnexion reçue du port 52664 du 147.135.192.203 : 11: Arrêt normal, merci d'avoir joué à [pré-autorisation]
Il y a bien plus que cela, mais cela vient des dernières minutes avant de copier le fichier journal.
S'agit-il d'une attaque SSH par force brute, et si oui, devrais-je m'inquiéter et quelles sont les meilleures étapes d'atténuation et/ou solutions autres que la modification de l'adresse IP du serveur?
Cela ressemble à l'analyse en arrière-plan que tout serveur sur Internet connaîtra.
Pas vraiment, l'analyse en arrière-plan est tout à fait normale, tant que vos mots de passe sont sécurisés, l'analyse en arrière-plan ne devrait poser aucun risque.
Vous pouvez utiliser les éléments suivants pour rendre le serveur plus sécurisé:
La modification des adresses IP n'affectera probablement pas beaucoup l'analyse automatisée en arrière-plan
Comme les commentaires précédents l'ont déjà souligné, le changement d'adresses IP ne vous empêchera [~ # ~] pas [~ # ~] d'être analysé par des scanners malveillants.
Je vais résumer les étapes nécessaires pour vraiment sécuriser votre service SSH:
Une alternative à fail2ban, vous pouvez configurer un travail cron
horaire pour exécuter un script simple comme celui ci-dessous. Ajustez les 4 premiers paramètres comme bon vous semble. Cela fonctionne avec pf
.
si vous n'utilisez pas pf, vous devrez remplacer le pfctl ...
ligne vers quelque chose qui fonctionne avec votre pare-feu.
Configurez également un travail cron quotidien pour vider la table pf
: pfctl -t bruteforce -vT expire 86400
#!/bin/sh -f
#
# Check 'Invalid user' attempts on sshd in auth.log (LOGFILE).
# If there are more than (MAX_TRY) attempts within
# the last hour (EARLIEST), source ip is added to PF_TABLE table in pf
#
MAX_TRY=5
LOGFILE=/var/log/auth.log
# last 48 hour
EARLIEST=`date -v-48H +%s`
PF_TABLE=bruteforce
grep "Invalid user" $LOGFILE | while read d0 d1 d2 rest; do
timestamp=`date -j -f "%b %d %H:%M:%S" "$d0 $d1 $d2" +%s`
test $timestamp -lt $EARLIEST && continue
echo $rest | cut -d ":" -f2- | cut -d " " -f6
done | sort | uniq -c | while read count ip; do
test $count -lt $MAX_TRY && continue
pfctl -v -t $PF_TABLE -T add $ip
done