web-dev-qa-db-fra.com

Utilisateurs invalides essayant de se connecter à mon serveur

Je vois beaucoup d'entrées de journal qui semblent être des tentatives de connexion infructueuses provenant d'adresses IP inconnues.

J'utilise des clés privées et publiques pour me connecter avec SSH mais j'ai remarqué que même avec des clés privées et publiques définies, je peux me connecter à mon serveur avec filezilla sans exécuter pageant. Est-ce normal? Que dois-je faire pour me protéger davantage de ce qui semble être une attaque par force brute?

Voici le journal:

Oct  3 14:11:52 xxxxxx sshd[29938]: Invalid user postgres from 212.64.151.233
Oct  3 14:11:52 xxxxxx sshd[29938]: input_userauth_request: invalid user postgres [preauth]
Oct  3 14:11:52 xxxxxx sshd[29938]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:52 xxxxxx sshd[29940]: Invalid user postgres from 212.64.151.233
Oct  3 14:11:52 xxxxxx sshd[29940]: input_userauth_request: invalid user postgres [preauth]
Oct  3 14:11:52 xxxxxx sshd[29940]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:52 xxxxxx sshd[29942]: Invalid user postgres from 212.64.151.233
Oct  3 14:11:52 xxxxxx sshd[29942]: input_userauth_request: invalid user postgres [preauth]
Oct  3 14:11:52 xxxxxx sshd[29942]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:52 xxxxxx sshd[29944]: Invalid user postgres from 212.64.151.233
Oct  3 14:11:52 xxxxxx sshd[29944]: input_userauth_request: invalid user postgres [preauth]
Oct  3 14:11:52 xxxxxx sshd[29944]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:52 xxxxxx sshd[29946]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:52 xxxxxx sshd[29948]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:52 xxxxxx sshd[29950]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:52 xxxxxx sshd[29952]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:53 xxxxxx sshd[29954]: Invalid user admin from 212.64.151.233
Oct  3 14:11:53 xxxxxx sshd[29954]: input_userauth_request: invalid user admin [preauth]
Oct  3 14:11:53 xxxxxx sshd[29954]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:53 xxxxxx sshd[29956]: Invalid user admin from 212.64.151.233
Oct  3 14:11:53 xxxxxx sshd[29956]: input_userauth_request: invalid user admin [preauth]
Oct  3 14:11:53 xxxxxx sshd[29956]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:53 xxxxxx sshd[29958]: Invalid user admin from 212.64.151.233
Oct  3 14:11:53 xxxxxx sshd[29958]: input_userauth_request: invalid user admin [preauth]
Oct  3 14:11:53 xxxxxx sshd[29958]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:53 xxxxxx sshd[29960]: User mysql not allowed because account is locked
Oct  3 14:11:53 xxxxxx sshd[29960]: input_userauth_request: invalid user mysql [preauth]
Oct  3 14:11:53 xxxxxx sshd[29960]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:53 xxxxxx sshd[29962]: User mysql not allowed because account is locked
Oct  3 14:11:53 xxxxxx sshd[29962]: input_userauth_request: invalid user mysql [preauth]
Oct  3 14:11:53 xxxxxx sshd[29962]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:53 xxxxxx sshd[29964]: Invalid user prueba from 212.64.151.233
Oct  3 14:11:53 xxxxxx sshd[29964]: input_userauth_request: invalid user prueba [preauth]
Oct  3 14:11:53 xxxxxx sshd[29964]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:53 xxxxxx sshd[29966]: Invalid user prueba from 212.64.151.233
Oct  3 14:11:53 xxxxxx sshd[29966]: input_userauth_request: invalid user prueba [preauth]
Oct  3 14:11:53 xxxxxx sshd[29966]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:53 xxxxxx sshd[29968]: Invalid user usuario from 212.64.151.233
Oct  3 14:11:53 xxxxxx sshd[29968]: input_userauth_request: invalid user usuario [preauth]
Oct  3 14:11:53 xxxxxx sshd[29968]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:54 xxxxxx sshd[29970]: Invalid user usuario from 212.64.151.233
Oct  3 14:11:54 xxxxxx sshd[29970]: input_userauth_request: invalid user usuario [preauth]
Oct  3 14:11:54 xxxxxx sshd[29970]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:54 xxxxxx sshd[29972]: Invalid user admin from 212.64.151.233
Oct  3 14:11:54 xxxxxx sshd[29972]: input_userauth_request: invalid user admin [preauth]
Oct  3 14:11:54 xxxxxx sshd[29972]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:54 xxxxxx sshd[29974]: Invalid user nagios from 212.64.151.233
Oct  3 14:11:54 xxxxxx sshd[29974]: input_userauth_request: invalid user nagios [preauth]
Oct  3 14:11:54 xxxxxx sshd[29974]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:54 xxxxxx sshd[29976]: Invalid user nagios from 212.64.151.233
Oct  3 14:11:54 xxxxxx sshd[29976]: input_userauth_request: invalid user nagios [preauth]
Oct  3 14:11:54 xxxxxx sshd[29976]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:54 xxxxxx sshd[29978]: Invalid user nagios from 212.64.151.233
Oct  3 14:11:54 xxxxxx sshd[29978]: input_userauth_request: invalid user nagios [preauth]
Oct  3 14:11:54 xxxxxx sshd[29978]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:54 xxxxxx sshd[29980]: Invalid user nagios from 212.64.151.233
Oct  3 14:11:54 xxxxxx sshd[29980]: input_userauth_request: invalid user nagios [preauth]
Oct  3 14:11:54 xxxxxx sshd[29980]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:54 xxxxxx sshd[29982]: Invalid user Oracle from 212.64.151.233
Oct  3 14:11:54 xxxxxx sshd[29982]: input_userauth_request: invalid user Oracle [preauth]
Oct  3 14:11:54 xxxxxx sshd[29982]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:54 xxxxxx sshd[29984]: Invalid user Oracle from 212.64.151.233
Oct  3 14:11:54 xxxxxx sshd[29984]: input_userauth_request: invalid user Oracle [preauth]
Oct  3 14:11:54 xxxxxx sshd[29984]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:54 xxxxxx sshd[29986]: Invalid user Oracle from 212.64.151.233
Oct  3 14:11:54 xxxxxx sshd[29986]: input_userauth_request: invalid user Oracle [preauth]
Oct  3 14:11:54 xxxxxx sshd[29986]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:55 xxxxxx sshd[29988]: Invalid user Oracle from 212.64.151.233
Oct  3 14:11:55 xxxxxx sshd[29988]: input_userauth_request: invalid user Oracle [preauth]
Oct  3 14:11:55 xxxxxx sshd[29988]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:55 xxxxxx sshd[29990]: Invalid user ftpuser from 212.64.151.233
Oct  3 14:11:55 xxxxxx sshd[29990]: input_userauth_request: invalid user ftpuser [preauth]
Oct  3 14:11:55 xxxxxx sshd[29990]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:55 xxxxxx sshd[29992]: Invalid user ftpuser from 212.64.151.233
Oct  3 14:11:55 xxxxxx sshd[29992]: input_userauth_request: invalid user ftpuser [preauth]
Oct  3 14:11:55 xxxxxx sshd[29992]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:55 xxxxxx sshd[29994]: Invalid user ftpuser from 212.64.151.233
Oct  3 14:11:55 xxxxxx sshd[29994]: input_userauth_request: invalid user ftpuser [preauth]
Oct  3 14:11:55 xxxxxx sshd[29994]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:55 xxxxxx sshd[29996]: Invalid user guest from 212.64.151.233
Oct  3 14:11:55 xxxxxx sshd[29996]: input_userauth_request: invalid user guest [preauth]
Oct  3 14:11:55 xxxxxx sshd[29996]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:55 xxxxxx sshd[29998]: Invalid user guest from 212.64.151.233
Oct  3 14:11:55 xxxxxx sshd[29998]: input_userauth_request: invalid user guest [preauth]
Oct  3 14:11:55 xxxxxx sshd[29998]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:55 xxxxxx sshd[30000]: Invalid user guest from 212.64.151.233
Oct  3 14:11:55 xxxxxx sshd[30000]: input_userauth_request: invalid user guest [preauth]
Oct  3 14:11:55 xxxxxx sshd[30000]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:55 xxxxxx sshd[30002]: Invalid user guest from 212.64.151.233
Oct  3 14:11:55 xxxxxx sshd[30002]: input_userauth_request: invalid user guest [preauth]
Oct  3 14:11:55 xxxxxx sshd[30002]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:56 xxxxxx sshd[30004]: Invalid user test from 212.64.151.233
Oct  3 14:11:56 xxxxxx sshd[30004]: input_userauth_request: invalid user test [preauth]
Oct  3 14:11:56 xxxxxx sshd[30004]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:56 xxxxxx sshd[30006]: Invalid user test from 212.64.151.233
Oct  3 14:11:56 xxxxxx sshd[30006]: input_userauth_request: invalid user test [preauth]
Oct  3 14:11:56 xxxxxx sshd[30006]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:56 xxxxxx sshd[30008]: Invalid user test from 212.64.151.233
Oct  3 14:11:56 xxxxxx sshd[30008]: input_userauth_request: invalid user test [preauth]
Oct  3 14:11:56 xxxxxx sshd[30008]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:56 xxxxxx sshd[30010]: Invalid user test from 212.64.151.233
Oct  3 14:11:56 xxxxxx sshd[30010]: input_userauth_request: invalid user test [preauth]
Oct  3 14:11:56 xxxxxx sshd[30010]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:56 xxxxxx sshd[30012]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:56 xxxxxx sshd[30014]: Invalid user user from 212.64.151.233
Oct  3 14:11:56 xxxxxx sshd[30014]: input_userauth_request: invalid user user [preauth]
Oct  3 14:11:56 xxxxxx sshd[30014]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:56 xxxxxx sshd[30016]: Invalid user user from 212.64.151.233
Oct  3 14:11:56 xxxxxx sshd[30016]: input_userauth_request: invalid user user [preauth]
Oct  3 14:11:56 xxxxxx sshd[30016]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:56 xxxxxx sshd[30018]: Invalid user user from 212.64.151.233
Oct  3 14:11:56 xxxxxx sshd[30018]: input_userauth_request: invalid user user [preauth]
Oct  3 14:11:56 xxxxxx sshd[30018]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:57 xxxxxx sshd[30020]: Invalid user user from 212.64.151.233
Oct  3 14:11:57 xxxxxx sshd[30020]: input_userauth_request: invalid user user [preauth]
Oct  3 14:11:57 xxxxxx sshd[30020]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:57 xxxxxx sshd[30022]: Invalid user jboss from 212.64.151.233
Oct  3 14:11:57 xxxxxx sshd[30022]: input_userauth_request: invalid user jboss [preauth]
Oct  3 14:11:57 xxxxxx sshd[30022]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:57 xxxxxx sshd[30024]: Invalid user jboss from 212.64.151.233
Oct  3 14:11:57 xxxxxx sshd[30024]: input_userauth_request: invalid user jboss [preauth]
Oct  3 14:11:57 xxxxxx sshd[30024]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:57 xxxxxx sshd[30026]: Invalid user squid from 212.64.151.233
Oct  3 14:11:57 xxxxxx sshd[30026]: input_userauth_request: invalid user squid [preauth]
Oct  3 14:11:57 xxxxxx sshd[30026]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:57 xxxxxx sshd[30028]: Invalid user squid from 212.64.151.233
Oct  3 14:11:57 xxxxxx sshd[30028]: input_userauth_request: invalid user squid [preauth]
Oct  3 14:11:57 xxxxxx sshd[30028]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:57 xxxxxx sshd[30030]: Invalid user temp from 212.64.151.233
Oct  3 14:11:57 xxxxxx sshd[30030]: input_userauth_request: invalid user temp [preauth]
Oct  3 14:11:57 xxxxxx sshd[30030]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:57 xxxxxx sshd[30032]: Invalid user svn from 212.64.151.233
Oct  3 14:11:57 xxxxxx sshd[30032]: input_userauth_request: invalid user svn [preauth]
Oct  3 14:11:57 xxxxxx sshd[30032]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
Oct  3 14:11:57 xxxxxx sshd[30034]: Invalid user ts from 212.64.151.233
Oct  3 14:11:57 xxxxxx sshd[30034]: input_userauth_request: invalid user ts [preauth]
Oct  3 14:11:57 xxxxxx sshd[30034]: Received disconnect from 212.64.151.233: 11: Bye Bye [preauth]
47
mk_89

C'est très courant. De nombreux botnets tentent de se propager de cette façon, il s'agit donc d'une attaque stupide à grande échelle. Les mesures d'atténuation comprennent:

  • Utilisez des mots de passe avec entropie élevée qui sont très peu susceptibles d'être forcés brutalement.
  • Désactivez la connexion SSH pour root.
  • Utilisez un nom d'utilisateur "peu probable", que les botnets n'utiliseront pas.
  • Désactivez complètement l'authentification par mot de passe.
  • Exécutez le serveur SSH sur un autre port que 22.
  • Utilisez fail2ban pour rejeter automatiquement l'IP des attaquants ou les ralentir.
  • Autorisez les connexions SSH uniquement à partir d'une liste blanche d'IP (attention à ne pas vous verrouiller si votre IP domestique est nominalement dynamique!).

La plupart de ces mesures visent à garder vos fichiers journaux petits; même lorsque la force brute ne réussit pas, les milliers d'entrées de journal sont un problème car elles peuvent masquer les attaques ciblées réelles. Un peu de sécurité par l'obscurité (comme le nom d'utilisateur improbable et le changement de port) fonctionne à merveille contre les attaquants stupides: oui, la sécurité par l'obscurité est mauvaise et mauvaise et ainsi de suite, mais parfois cela fonctionne et vous ne serez pas frit par un vengeur divinité si vous l'utilisez judicieusement .

Un mot de passe à entropie élevée sera efficace contre les attaquants intelligents, et ne peut être recommandé que dans toutes les situations.

60
Thomas Pornin

La méthode la plus simple et la plus sûre pour empêcher tout accès indésirable via SSH à votre serveur sera de n'autoriser l'accès SSH qu'à certains hôtes.

Cela peut être facilement configuré avec les enveloppes TCP si vous utilisez un serveur Linux. Les pare-feu pour restreindre l'accès fonctionneront également.

Contrairement aux autres réponses, je ne pense pas que changer le port par défaut du service ssh soit une bonne idée. La sécurité par obscurité ne fonctionne jamais et elle n'arrêtera pas une attaque ciblée par un attaquant déterminé. Cela provoque également des problèmes de convivialité dans mon expérience.

Si la limitation de l'accès SSH à certains hôtes n'est pas une option, la liste noire des adresses IP d'où provient l'attaque pourrait également fonctionner. Cependant, notez que cela ne sera pas efficace contre les attaquants qui utilisent plusieurs adresses IP d'autres machines compromises pour vous attaquer.

10
user10211

Il y a deux ou trois choses que vous pouvez faire, et pour deux d'entre elles, vous semblez déjà le faire, donc c'est bien.

  1. Exiger un fichier de clés pour se connecter.
  2. Ne lancez pas SSH sur le port 22. C'est le premier (et généralement le seul) endroit où un bot se penchera, et vous pouvez éviter 90% de ces tentatives de connexion avec une simple modification de la configuration SSHD. [Edit: Comme Terry Chia le dit à juste titre, c'est la sécurité par l'obscurité. Cela pourrait garder vos journaux plus propres des entrées de robots, mais cela ne ralentira pas un humain. Si votre système n'est toujours pas sécurisé, déplacer l'insécurité vers un autre port n'aidera pas.]
  3. Utilisez quelque chose comme Fail2ban. Il surveille vos journaux et peut ajouter des règles de pare-feu pour supprimer les paquets de toute adresse dont la connexion échoue trop souvent.
  4. Si possible, n'autorisez l'accès qu'à partir d'adresses IP en liste blanche.

En fin de compte, si vous disposez d'un service comme SSH acceptant des paquets provenant d'Internet plus large, vous ne pouvez rien faire pour empêcher les gens de tenter de l'attaquer. Une fois que vous êtes convaincu d'avoir pris les précautions appropriées, les entrées de journal telles que celles-ci doivent être notées mais finalement traitées comme un bruit de fond.

5
OtisBoxcar

Avoir un port SSH ouvert est définitivement sujet à ce type d'attaques car il y a tellement de Bots qui essaient de rechercher des ports SSH ouverts et de lancer de telles attaques par force brute dans le but d'en obtenir un. Il y aura évidemment un problème si vous avez utilisé les paramètres SSHD par défaut et autorisé les connexions basées sur un mot de passe. Heureusement, vous ne l'avez pas fait. Je crois que changer votre port par défaut pour écouter sur votre SSHD réduira certainement le nombre de tentatives car la plupart des scanners recherchent le port ouvert 22. C'est la "sécurité par obscurité" et ce n'est certainement pas une solution recommandée. Mais cela résoudra votre problème actuel, jusqu'à ce qu'une personne plus expérimentée fournisse une meilleure solution.

4
sudhacker

Ou utilisez la liste noire de http://www.blocklist.de/en/export.html et signalez tous les nouveaux attaquants.

Importez le ssh.txt et bloquez toutes les adresses IP qui ont été signalées à la liste noire au cours des dernières 48 heures sur ssh-attack ou bloquez-les avec fail2ban et signalez-les automatiquement à leur FAI. Iptables-blocklist-script sont dans le forum disponible pour téléchargement.

4
Martin

Parce que je trouve ces demandes SSH et les rames de journaux qu'elles génèrent être un gaspillage ennuyeux des ressources système, j'utilise le port knocking. Le port SSH n'est visible que par les hôtes dont la séquence de chocs est reçue. Pour les autres hôtes, il semble qu'il n'y ait pas de service SSH sur cette machine.

Le détournement de port est un peu gênant dans la mesure où pour l'utiliser de manière fiable sur des réseaux longue distance à retard variable, vous avez vraiment besoin d'un programme client dédié pour envoyer la séquence de détournement. En outre, vous pouvez vous retrouver dans un réseau qui bloque le trafic sortant vers certains des numéros de port que vous avez choisis dans votre séquence de suppression de port.

Au lieu de frapper le port, vous pouvez implémenter la frappe Web. Si la machine exécute un serveur Web public, vous pouvez placer une toute petite application Web (sous une URL que vous seul connaissez) de telle sorte que si vous parcourez cette URL et mettez une valeur correcte dans un formulaire et la soumettez, elle s'ouvrira le port.

1
Kaz

Concernant votre question filezilla/pagaent: la réponse courte est oui, c'est normal. Je dirais que c'est un effet secondaire involontaire. D'après mon expérience, si vous utilisez PuTTY, configurez-y la clé privée (Connexion, SSH, Auth) et enregistrez la session qui sera stockée dans le registre. Si vous nommez le 'Site' dans filezilla de la même manière que vous avez fait la session dans PuTTY, filezilla examine ce registre pour PuTTY et l'utilise

J'en ai parlé dans leurs forums à ce sujet (principalement dans le contexte de l'utilisation de clés protégées par mot de passe)

0
gregg