Partage
  • Partager sur Facebook
  • Partager sur Twitter

http : banir une IP

lorssqu'elle accède à une page interdite

Sujet résolu
    13 août 2015 à 12:38:29

    Bonjour.

    Je possède un site web, et ce dernier est souvent attaqué par des robots. Ces derniers se repèrent facilement dans le fichier de statistiques : il y a des tas d'erreurs 404 pour des  pages du genre admin.php, login.php, phpmyadmin.php ...

    En effet ces pages n'existent pas, mais des robots tentent tout de même de les afficher, et vu le nom, ce n'est pas pour indexer mon site, mais bien pour scanner des vulnérabilités.

    J'aimerai qu'une tentative d'accès à une page blacklistée rajoute l'ip de celui qui a fait la requête à une liste des IP banies que je ne sers jamais. Comment faire?

    A tant qu'à faire, si je banie l'IP pour servir des pages web avec apache, j'aimerais aussi la rajouter aux IP banies pour tous les autres services (notament SSH et SMTP) et cesser complètement de lui répondre quoi que ce soit.

    Bonne journée.

    • Partager sur Facebook
    • Partager sur Twitter
      13 août 2015 à 13:21:34

      Bonjour,

      L'idéal pour ce que tu cherches à faire serait d'automatiser des règles de parefeu (genre iptables)

      Ce que je ferai à ta place, c'est de développer un démon, ou (à la limite) un script en crontab qui scruterait les fichiers de logs à la recherche de bots. (attention aux faux positifs, à ne pas te BL toi même ^^)
      Une fois que l'IP est récupérée le script ajouterait une règle au parefeu.

      iptables -I INPUT -s IP_malveillante -j DROP


      Comme ça le bot ne pourra plus communiquer avec ton serveur, sur aucun port.

      Par contre un parefeu ça prend quand même des ressources.

      Si les robots scannent les pages admin.php, login.php, phpmyadmin.php ... c'est que tu dois avoir le port mysql 3306 ouvert pour tout internet. Si tu as une IP statique je te conseillerai de la mettre un écoute que pour ton adresse. Voir le mettre en écoute uniquement en local, et accéder à l'interface d'administration de phpmyadmin via un tunnel SSH.

      ssh -L 12345:127.0.0.1:443 -f -N userSSH@IP_serveur

      Et tu pourras ensuite accéder à l'interface de phpmyadmin https://127.0.0.1:12345/phpmyadmin/

      -
      Edité par J Bogdanoff 13 août 2015 à 13:24:56

      • Partager sur Facebook
      • Partager sur Twitter
        13 août 2015 à 15:47:47

        Je vais avoir un problème avec un démon, en effet, le démon va être lancé de temps en temps, genre toutes les minutes, ce qui est un temps de réponse bien trop faible par rapport à la durée d'un scan. Par contre, je note ton idée de lancer une commande iptables.

        Mon port sql est ouvert sur le lan, mais le routeur ne redirige rien dessus, dont normalement d'un point de vue du réseau, il est invisible. D'ailleur n'importe quelle requête externe sur ce port est aussi le diagnostic immédiat d'une attaque.

        • Partager sur Facebook
        • Partager sur Twitter
          13 août 2015 à 17:09:47

          Sinon il y a fail2ban, je pensais que cet outil ne fonctionnait que pour bannir automatiquement des scans de ports, et des tentatives de connexion SSH mais à priori il pourrait faire l’affaire pour ton besoin.

          Sinon j'ai regardé d'un peu plus près ton problème sur le net tu peux utiliser incrontab, ce démon permet d'appeler un script "que tu auras écris" en focntion d'événements sur un fichier.

          J'ai testé rapidement sur une machine virtuelle avec le fichier /var/log/apache2/acces.log et l’évènement IN_MODIFY ça semble fonctionner.

          Dans le script il te suffira de faire un tail -1 /var/log/apache2/acces.log , de greper le tout et de récupérer l'adresse IP pour la bannir, puis de redémarrer le service iptables.

          • Partager sur Facebook
          • Partager sur Twitter
            22 août 2015 à 21:36:59

            je UP J Bogdanoff, je te recommande de te pencher sur la solution Fail2ban. 

            Pour plus d'infos : http://doc.ubuntu-fr.org/fail2ban

            PS : rien ne vaut un couplage fail2ban, Iptables, Snort et des changements de ports !

            Bonne soirée :-)

            • Partager sur Facebook
            • Partager sur Twitter

            Kaderovski

              26 août 2015 à 15:51:43

              Fail to ban, est une bonne idée, je l'utilise déjà avec la config par défaut, mais je pense qu'on doit pouvoir rajouter un log perso de personnes a banir immédiatement. Ca me parait une option parfaite :) Merci pour l'idée.
              • Partager sur Facebook
              • Partager sur Twitter

              http : banir une IP

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown