Journal Des scans SSH? Un script qui permet l'émission automatique de plaintes.

Posté par  .
Étiquettes : aucune
0
1
juil.
2008
Cher lecteur;

Qui parmi vous n'a jamais pesté contre les grand méchant vilains qui ne cessent de scanner votre machine, et de tenter des brute force sur votre SSH?

Qui n'a jamais eu envie d'envoyer des plaintes, mais par manque de temps (il faut analyser les logs, rédiger un mail, l'envoyer) n'en a rien fait?

Je viens de pondre un script pour moi, mais vu qu'il ne fonctionne pas trop mal, je le met à disposition de tout le monde.

http://www.demongeot.biz/outils/SendAutomaticAbuse.html

Seul point négatif, le script nécessite une liste d'IP, ListeIP.dat que je ne communique pas, par doute sur la légalité de cela.

Ce fichier contiens les blocs IPs puis l'adresse mail à qui il faut envoyer l'abuse.

Le format est donc :

127.0.0.0 127.255.255.255 mon@adresse.mail

Il faut bien entendu une ligne par bloc IP.

Si l'IP est contenue dans un bloc du fichier, la plainte part. Sinon, vous recevez un récapitulatif des IPs inconnues, pour que vous puissiez les ajouter.

Voila :)
  • # ListeIP.dat

    Posté par  . Évalué à 3.

    Pourquoi passer par un fichier comme celui ci , quand un whois sur l'ip te donne l'adresse abuse ? ( dans le champ abuse-mailbox )
    • [^] # Re: ListeIP.dat

      Posté par  (site web personnel) . Évalué à 10.

      Et surtout pourquoi ne pas empêcher les scans SSH ?
      # apt-get install fail2ban
      et le tour est joué. C'est fou ce que les gens cherchent à se compliquer la vie. Surtout quand on sait l'utilité d'un abuse...
      • [^] # Re: ListeIP.dat

        Posté par  . Évalué à 10.

        Et utiliser un port exotique pour le ssh c'est pas mal non plus.
        • [^] # Re: ListeIP.dat

          Posté par  . Évalué à 10.

          Honolulu, ça irait?
        • [^] # Re: ListeIP.dat

          Posté par  . Évalué à 10.

          Je plussoie :)

          Depuis que j'ai modifié mon port ssh par défaut, plus d'attaques "brute-force".

          Par contre, je ne crois pas qu'il faille négliger le "passage en revue" des logs, même par manque de temps, J'ai moi même écrit un petit script qui fait les contrôles les plus importants et m'envoie un rapport quotidien par courrier ( tailles de fichiers suspectes, logs HTTP, ports ouverts, ...) : Ça ne me prend guère de temps, pendant mon café matinal, de jeter un oeil sur l'activité nocturne sur ma passerelle :)
          Si certains sont intéressés par ce script, je peux le mettre à dispo.

          Celui qui pose une question est bête cinq minutes, celui qui n'en pose pas le reste toute sa vie.

          • [^] # Re: ListeIP.dat

            Posté par  (site web personnel) . Évalué à 6.

            Si certains sont intéressés par ce script, je peux le mettre à dispo.
            Oui, merci d'avance.
          • [^] # Re: ListeIP.dat

            Posté par  . Évalué à -3.

            pourquoi pendant ton café matinal. Soit c'est une activité professionnelle a part entière, et il n'y a pas de raison de travailler sur ce sujet pendant la pause café, soit, c'est une activité sans intérêt et tu vas prendre ton café tranquillement en oubliant encore une fois de travailler. Une pause café, c'est pas fait pour travailler plus et de manière déguisée.

            La pause café, c'est éventuellement fait pour papoter de choses et d'autres entre collègues. C'est en aucun cas un lieu destiné a la supervisions de logs systèmes. Une petite pause régulière est ultra importante tant pour tes yeux que pour ton esprit.
        • [^] # Re: ListeIP.dat

          Posté par  (site web personnel) . Évalué à 8.

          Et utiliser un port exotique pour le ssh c'est pas mal non plus.

          Oui, c'est très utile pour empêcher l'admin de la machine d'avoir accès à sa machine quand il y a un firewall qui traine par la et qui filtre les ports.
          • [^] # Re: ListeIP.dat

            Posté par  . Évalué à 7.

            s'il est admin, il configure le firewall, où est le problème ?

            ah, tu parles de ces feignasses qui veulent faire joujou avec leur serveur perso alors qu'ils sont au boulot ?
            • [^] # Re: ListeIP.dat

              Posté par  . Évalué à 3.

              cybercafé?
            • [^] # Re: ListeIP.dat

              Posté par  (site web personnel) . Évalué à 4.

              Non, plus simplement tout ces gens qui vont en clientéles pendant leur boulot et qui sont bloqués parce que le firewall est bloqué par une boite externe.
              • [^] # Re: ListeIP.dat

                Posté par  (site web personnel) . Évalué à 5.

                Ces gens là ont tous une boite qui tourne quelque part avec un SSH sur port 443 pour faire du rebond (et passer les proxy à la con des clients)
          • [^] # Re: ListeIP.dat

            Posté par  . Évalué à 2.

            Dans ce cas là, un serveur ssh sur 443...
      • [^] # Re: ListeIP.dat

        Posté par  (Mastodon) . Évalué à 2.

        pourquoi installer un outil quand on peut faire ça directement avec le packet filter, en bloquant les adresses qui font trop de connections sur le port 22 ?
        • [^] # Re: ListeIP.dat

          Posté par  (site web personnel) . Évalué à 2.

          Parceque fail2ban bloque que si l'authentification à échoué (via iptables).
          • [^] # Re: ListeIP.dat

            Posté par  (Mastodon) . Évalué à 2.

            ben quelqu'un qui se reconnecte 3x en 30 secondes, c'est le cas aussi hein :)
            • [^] # Re: ListeIP.dat

              Posté par  (site web personnel) . Évalué à 2.

              T'es sérieux???
              Parce que bon, ça m'arrive de :
              - Ouvrir 3 SSH en même temps sur une machine, pour faire des choses différentes
              - de faire des rsync à tout va
              - d'automatiser des tâches par script avec ma clés SSH
              Avec ta solution, ben... Il y aura des erreurs aléatoires que tu auras du mal à t'expliquer.

              Et je me considère très très débutant...
              • [^] # Re: ListeIP.dat

                Posté par  . Évalué à 10.

                "- Ouvrir 3 SSH en même temps sur une machine, pour faire des choses différentes"

                je te conseil screen.
                • [^] # Re: ListeIP.dat

                  Posté par  . Évalué à -9.

                  ahhhhhh
                  la bonne blague
                  Ca faisait longtemps qu'on avait pas entendu parer de screens, outil on ne peux plus simple et clair.
                  • [^] # Re: ListeIP.dat

                    Posté par  (site web personnel) . Évalué à 6.

                    Tu reproches quoi à screen ?
                    Multi-buffers, interruption et reprise de sessions à distance.
                    Et tout cela avec de simples raccourcis clavier.
                    Quand on est capable d'utiliser ssh, on est capable d'utiliser screen.
                    • [^] # Re: ListeIP.dat

                      Posté par  (site web personnel) . Évalué à 3.

                      Dans le cas qui nous intéresse (le fait que j'ouvre 3 SSH en moins de 30s), je lui reproche juste de ne pas répondre à mon besoin et que c'est pas une réponse appropriée pour limiter mes 3 connexions.

                      Quand j'ouvre 3 SSH, c'est pour voir ce qu'il y a dans les 3 terminaux ouverts (voir si la commande que j'ai lancé est terminée, voir des stats temps réel, un tail -f etc....)

                      J'utilise Screen pour garder des sessions ouvertes même quand je perds ma connexion SSH, mais la je vois pas le rapport avec ce que je fais. Screen n'est pas une réponse à tout!

                      Ps : et ça n'enlève pas le fait que bloquer 3 connexions SSH réussies même en 30s, ça reste de la bêtise... C'est réussi, il n'y a pas à bloquer.
                      • [^] # Re: ListeIP.dat

                        Posté par  (Mastodon) . Évalué à 1.


                        Quand j'ouvre 3 SSH, c'est pour voir ce qu'il y a dans les 3 terminaux ouverts (voir si la commande que j'ai lancé est terminée, voir des stats temps réel, un tail -f etc....)


                        En quoi screen t'empêche de faire ça avec une seule session ssh ? Que ce soit 3 terminaux ou une fenêtre splittée en 3, ça ne change pas grand chose.

                        De plus passé la première connection tu peux avec une commande simple whitelister l'adresse ip source temporairement.
                        • [^] # Re: ListeIP.dat

                          Posté par  (site web personnel) . Évalué à 5.

                          De plus passé la première connection tu peux avec une commande simple whitelister l'adresse ip source temporairement.

                          C'est pour pouvoir avoir raison que tu compliques la chose avec des "tu peux"?
                          Oui, je peux, mais j'ai fail2ban, c'est automatisé, pas de faux-positifs, je ne vois pas pourquoi je vais m'embêter à faire des whitelist temporaires etc... Qui n'apportent rien sauf des faux-positifs

                          Et de plus, ça n'enlève pas les problèmes des connexions automatiques (scripts...)
                          • [^] # Re: ListeIP.dat

                            Posté par  (Mastodon) . Évalué à 2.

                            les connections automatiques via des scripts se feront de toute façon à partir d'ip connues.
                            • [^] # Re: ListeIP.dat

                              Posté par  (site web personnel) . Évalué à 2.

                              1/ C'est vrai, on va se faire chier à configurer une white-list d'IP connues, qu'on doit changer de temps en temps quand on rajoute un serveur, et surtout qu'on oublie après quelques mois et qu'on se demande pourquoi ça ne marche pas alors qu'on a juste changé de serveur pour le backup rien de plus, c'est mieux que fail2ban qu'on installe une fois et dont on ne parle plus. Super l'optimisation du temps (et la prise de tête à la recherche du "bug")
                              2/ Je fais des connexions automatique à partir d'un serveur de "backup" qui se trouve chez moi, avec @IP dynamique car FAI qui ne fournit pas d'adresse fixe. Et toujours prise de tête pour chercher le "bug" quand cette IP change un peu trop souvent.

                              Il n'y a pas à dire, vous cherchez une raison à faire une mauvaise administration plutôt qu'utiliser fail2ban qui lui regarde les connexions rejetées ce qui est nettement plus "normal", je n'arrive pas à comprendre...
                      • [^] # Re: ListeIP.dat

                        Posté par  . Évalué à -1.

                        Ps : et ça n'enlève pas le fait que bloquer 3 connexions SSH réussies même en 30s, ça reste de la bêtise... C'est réussi, il n'y a pas à bloquer.

                        Un petit tour sur le site de fail2ban t'aurait permis de constater que fail2ban ne bloque que lorsque l'authentification a échoué (voir par exemple http://www.fail2ban.org/wiki/index.php/MANUAL_0_8#Configurat(...) pour la configuration).

                        D'autre part, screen est typiquement fait pour le genre d'utilisation que tu as, ouvrir plusieurs terminaux sur la même machine sans avoir à se connecter autant de fois. Ceci dit personne ne t'oblige à l'utiliser.
                        • [^] # Re: ListeIP.dat

                          Posté par  (site web personnel) . Évalué à 3.

                          Faut mieux suivre...

                          Il répond dans un thread qui partait sur : << pourquoi installer un outil quand on peut faire ça directement avec le packet filter, en bloquant les adresses qui font trop de connections sur le port 22 ? >>

                          C'est pourquoi il explique que fail2ban est mieux adapté, indépendamment de screen (qui n'est par ailleur pas la solution à tout).
                          • [^] # Re: ListeIP.dat

                            Posté par  . Évalué à 2.

                            otanpourmoua, j'ai mal suivi.

                            En ce qui concerne screen, personne n'a prétendu que c'était la solution ultime à tous les problèmes, simplement indiqué que le cas d'utilisation de Zenitram semblait être une situation ou screen pourrait lui être utile, c'est tout.
                            • [^] # Screen ne fait pas le café

                              Posté par  (site web personnel) . Évalué à 4.

                              simplement indiqué que le cas d'utilisation de Zenitram semblait être une situation ou screen pourrait lui être utile

                              Dis-moi comment avoir 3 fenêtres distinctes, redimensionnables de manières indépendantes, affichant des infos différentes (un top, un tail -f, un nano par exemple) et visibles toutes les 3 en même temps avec screen, et ça sera peut-être la solution à ce que je fais (sachant que ouvrir 3 SSH me prend 3 clics, ma clé SSH étant sur le serveur, c'est donc très rapide à faire, en plus je ne comprend pas ce qui vous gène dans l'ouverture de 3 sessions SSH...).

                              Désolé, je n'arrive pas à comprendre comment screen peut remplacer 3 SSH!

                              Note : j'utilise déja screen, pour d'autres choses, genre garder une session ouverte même si je me déconnecte pendant que j'exécute un script un peu long. Il me semble que c'est le but de screen.
                              • [^] # Re: Screen ne fait pas le café

                                Posté par  . Évalué à 3.

                                Il n'y a rien qui me gène dans l'ouverture de 3 session SSH et je me fiche complètement que tu le fasse. A titre personnel j'utilise screen pour effectuer plusieurs tâches en même temps en splittant mon screen (avec le patch pour gérer les splits verticaux également).

                                Le but de screen n'est pas simplement de pouvoir récupérer la main après s'être déconnecté. En splittant le screen il est possible d'avoir plusieurs terminaux affichés en même temps. Maintenant ce n'est pas pour toi en particulier, c'est juste pour évoquer la possibilité d'utiliser cet outil dans un cas d'utilisation qui semblait être le tien.
                  • [^] # Re: ListeIP.dat

                    Posté par  . Évalué à -2.

                    Y a un OS plus simple pour les gens qui refusent de faire des efforts pour leurs outils.

                    Screen déchire, si Tu ne l'aimes pas, libre à Toi mais de là à dire qu'il ne faudrait pas le conseiller parceque Tu as, Toi, du mal avec...

                    La prophétie disant que l'informatique est morte avec la naissance du mulot avance tous les jours un peu.
                • [^] # Re: ListeIP.dat

                  Posté par  (site web personnel) . Évalué à 1.

                  perso je fais des ssh dans screen plutot que des screen dans ssh
      • [^] # Re: ListeIP.dat

        Posté par  (site web personnel) . Évalué à 1.

        Il y a OSSEC-HID qui analyse les logs ssh, apache, serveur de mails, a la recherche d'attaques connues avec alertes emails + blacklistage IP pendant un laps de temps + plus les signatures md5 de /etc, /bin, /sbin, + dection de rootkits, + ...

        http://www.ossec.net/
      • [^] # Re: ListeIP.dat

        Posté par  (site web personnel) . Évalué à 1.

        Et pour l'IPv6 ? :)
    • [^] # Re: ListeIP.dat

      Posté par  . Évalué à 7.

      J'ai fait ce fichier, ListeIP.dat car dans les whois il n'y a pas forcément le champs abuse-mailbox . Certaine fois cette adresse est en remarque ou autre.

      Pour répondre aux autres points, fail2ban, oui c'est très bien, mais cela corrige t'il réellement le problème? Dans 95% des cas, autant qu'un abuse. Dans les 5% restant, l'équipe qui gère le réseau fait attention aux abuses, et cela corrige le problème à la source, ne mettant pas en place juste un palliatif. 5% c'est peu, mais non négligeable.

      Le port SSH, c'est une autre possibilité, mais pas toujours possible. Et puis, pour vraiment éviter les scans SSH, ne serait-ce pas plus simple de mettre la machine dans un coffre fort, sans accès internet, et sans alimentation?

      Ou alors, éviter d'installer SSH? c'est pas forcément le bon remède non plus.

      Bien sûr, l'utilisation du script n'empêche pas l'utilisation d'autres astuces, comme fail2ban ou déporter le port SSH. Je dirais même que c'est une option complémentaire. Et même si uniquement 5% des abuses ont des répercutions, c'est toujours ça de pris selon moi. N'oublions pas que les scan SSH sont fait, généralement par des bots, qui émettent potentiellement du SPAM ou des Virus.
      • [^] # Re: ListeIP.dat

        Posté par  (site web personnel) . Évalué à 9.

        fail2ban, oui c'est très bien, mais cela corrige t'il réellement le problème?

        Mais vous êtes un vrai Don Quichotte ma parole ! Vous croyez vraiment pouvoir éradiquer les bots à coup d'abuse ? Avez-vous seulement jamais eu une seule réponse digne de ce nom à l'un de vos mails ? Permettez-moi sérieusement d'en douter... Et quand bien même vous abattrez un moulin, il en restera des millions !

        Franchement la seule raison que je vois de ne pas installer fail2ban ou une autre protection c'est soit de vouloir récupérer une magnifique liste de prénoms dans les logs (j'en ai plus de 15000) soit de faire des stats sur les bots, mais ça d'autres le font déjà très bien. Et il va de soi que tout ça doit être fait sur un honeypot correctement chrooté.
        • [^] # Re: ListeIP.dat

          Posté par  (site web personnel) . Évalué à 4.

          Avez-vous seulement jamais eu une seule réponse digne de ce nom à l'un de vos mails ?

          Ben perso, il m'est arrivé d'envoyer quelque mails pour ce genre de situation, et j'ai eu des réponses positive. Il m'est aussi arrivé de recevoir ce genre de mail pour une machine contaminé dans mon réseau, ce qui m'a permit de prévenir le responsable de cette machine de faire le nécessaire. Bon cela dit, c'est sur que si vous envoyez à abuse@aol.com, ca risque de pas servire à grand chose, mais aux PME, université, etc. ca peut être différent.
          Donc je pense que oui, même si c'est 5%, c'est plutôt pas mal.
          Après, perso, j'aurais plutôt juste ajouté un envoi de mail greffé sur fail2ban (basé sur le whois).
          • [^] # Re: ListeIP.dat

            Posté par  (site web personnel) . Évalué à 1.

            et j'ai eu des réponses positive.

            Oui moi aussi, une en coréen l'autre en chinois. Mais je ne saurai pas dire si elles étaient vraiment positives. ;)
            La plupart du temps abuse est un simple robot lui aussi...

            Il m'est aussi arrivé de recevoir ce genre de mail

            Là c'est tout autre chose: nous ne sommes pas des 'rfc-ignorants' et il va de soi que nous n'avons pas à nous comporter comme aol, orange et consorts...
            Sinon voici un site intéressant sur les bots avec pas mal d'infos: http://www.shadowserver.org
            • [^] # Re: ListeIP.dat

              Posté par  (site web personnel) . Évalué à 1.

              Tiens, je me réponds à moi-même histoire de voir enfin l'oeuf de pâques de dlfp. Une url à mourir de rire:
              https://www.signal-spam.fr/recommandations/professionnels/Ex(...)
            • [^] # Re: ListeIP.dat

              Posté par  (site web personnel) . Évalué à 2.

              A mon avis, chez aol/wanadoo/etc, ils sont pas rfc-ignorants, ils sont juste humains, vivants dans un monde avec 24h par jour.

              On va pas demandé à aol/wanadoo/etc de couper arbitrairement des clients, sur la base du témoignage d'un type.
              Et je pense que contrairement à ce qu'on pourrais croire, les logs d'accés ip/user, etc sont pas disponibles pour toute le FAI, mais juste pour une équipe relativement restreinte.
              Donc perso, le compromis actuel me va trés bien, même si ça implique de répondre à une requete sur 10 quand on écrit.
        • [^] # Re: ListeIP.dat

          Posté par  . Évalué à 2.

          Avez-vous seulement jamais eu une seule réponse digne de ce nom à l'un de vos mails ? Permettez-moi sérieusement d'en douter... Et quand bien même vous abattrez un moulin, il en restera des millions !

          1) oui
          2) c'est sûr quand écrivant jamais à abuse, on est sûr qu'il se passera rien.
          3) ça n'empêche pas (enfin techniquement j'ai pas check, mais même si c'est le cas c'est probablement trivial à fixer) un fail2ban.
  • # pas mal, pas mal ...

    Posté par  . Évalué à 0.

    Et donc, il suffit d'une tentative de connection échouée pour que tu envoies un mail à abuse ? Pas mal.

    Et le mail ne contient que des logs et pas une ligne d'explication ? Pas mal aussi.
    • [^] # Re: pas mal, pas mal ...

      Posté par  . Évalué à 3.

      D'ailleurs j'apprend que les admin qui gère les plaintes on eux aussi mis en service un script qui permet d'envoyer vers /dev/null ce genre de plainte... 2 scripts qui se parlent entre eux ... au moins ça donne du travail aux FAI :)

      ps: humour inside des fois que ...
    • [^] # Re: pas mal, pas mal ...

      Posté par  . Évalué à 2.

      perso j'ai mis le seuil à 30 tentatives échouées, ce qui est énorme.

      Et bien sur j'ai du log mais aussi 3 - 4 lignes en anglais :).
  • # Avec iptables

    Posté par  . Évalué à 4.

    Perso, je préfère utiliser iptables, ça rends le scan peu rentable :

    # SSH : allow four connections attempts per minutes max. Drop the rest.
    iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
    iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j LogDrop
    iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

    Dans certains pays, il arrive malheureusement que les mails soient simplement ignorés. Il arrive aussi que la personne qui gère le serveur soit la même que celle qui lance un scan SSH.
  • # fail2ban

    Posté par  (site web personnel) . Évalué à 7.

    fail2ban fait très bien son job, pourquoi n'avoir pas contribué au projet en y apportant une option du genre "--complain" qui enverrait le mail. Avec une autre option qui cherche le mail abuse dans la base whois...
    • [^] # Re: fail2ban

      Posté par  . Évalué à 2.

      Réponse certes toute conne, mais je n'ai pas assez de temps pour me lancer dans l'intégration d'une nouvelle fonctionnalité dans un outil.

      Fail2ban est super, mais le code me rebute un peu :)

      Un script shell c'est une centaine de lignes, toutes par moi, c'est rapide. Fail2ban c'est du code que je ne connais pas :/

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.