J'ai une application Web qui n'a pas d'utilisateurs aux Philippines, mais qui est constamment bombardée par des spammeurs, des cardeurs testant des cartes et d'autres activités indésirables à partir de là. Je peux voir dans les journaux qu'ils ont des adresses IP aux Philippines et trouvent initialement mon site via google.ph ou d'autres .ph
sites.
J'ai de très bons filtres et contrôles de sécurité en place, donc ils ne causent pas vraiment beaucoup de dégâts, mais néanmoins, je m'en lasse vraiment. Ils utilisent de la bande passante, remplissent ma base de données, abusent des journaux et des journaux de sécurité avec de la merde, perdent mon temps à nommer des comptes, etc.
Bien que la grande majorité des citoyens philippins ne soient pas des spammeurs, et je ne peux pas simplement bloquer tous les pays qui m'agacent, à ce stade, je pense que la solution consiste simplement à bloquer tout le trafic des Philippines vers ma webapp. (Je sais que bloquer des blocs IP de pays entiers n'est pas une bonne pratique et pose de nombreux problèmes, mais pour ce pays, je veux faire une exception.)
(Je sais qu'ils pourraient usurper leur adresse IP, mais au moins je peux les faire fonctionner un peu.)
Je sais qu'il existe quelques services geoip. Quelqu'un connaît-il des services gratuits ou peu coûteux? Ou tout autre moyen de filtrer le trafic en provenance d'un pays spécifique?
J'utilise PHP sur Apache 2, si cela est important.
Réponses:
Vous pouvez le faire en fonction de l'adresse IP en utilisant une API IP Locatin gratuite comme IPInfoDB http://ipinfodb.com/index.php.
la source
Contrairement à la plupart des autres affiches ici, je ne vais pas vous dire que c'est une mauvaise idée, que vous ne devriez pas le faire, que cela ne résoudra pas votre problème ou que vous devriez faire autre chose. Voici ce qui nous est arrivé:
Les personnes en provenance de Chine et de Corée (ou utilisant des procurations en Chine et en Corée, de toute façon) nous ennuyaient toujours. Analyse de port, exploration de nos sites Web à la recherche de vulnérabilités, tentative de connexion, etc. J'ai essayé de les ignorer (fail2ban s'en occupe généralement) mais à certains moments, ils nous frappaient si fort que cela s'est effectivement transformé en une attaque DoS. Lorsque vous avez des centaines de connexions à la fois de personnes essayant d'utiliser votre serveur Web comme proxy, essayant de SSH dans votre machine, essayant des noms d'utilisateur et des mots de passe aléatoires, cela a tendance à peser sur le site. J'ai finalement eu marre.
Nous n'obtenons aucun trafic légitime en provenance de Chine ou de Corée; notre entreprise ne vend pas là-bas (nous sommes du commerce électronique), donc il n'y avait aucun risque de perdre du trafic légitime, alors j'ai pensé qu'il était plus facile de les bloquer à l'avance au lieu d'attendre qu'ils soient des bites.
Et c'est tout. Nos utilisateurs problématiques sont partis, la charge sur le réseau et le serveur a été diminué, et nous avons survécu à la saison de Noël sans difficulté.
Remarque 1 : vous pouvez le faire avec des iptables standard (c'est-à-dire sans ipset) mais c'est plus cher en calcul que d'utiliser ipset.
Remarque 2 : Voici à quoi ressemblent les vidages (l'ipset les générera si vous le souhaitez):
Remarque 3 : Nous utilisons un nethash car toutes nos plages sont stockées sous forme de blocs CIDR. Si vous ne voulez pas les convertir en CIDR, vous pouvez utiliser un iptreemap à la place, mais j'imagine que cela pourrait être moins efficace si vous obtenez beaucoup de trafic.
la source
Comment corrigez-vous un bug dans le code?
Ainsi?
Bug: Add (2,2) renvoie 0, devrait retourner 4.
Code fixe:
Évidemment pas. Vous ne vous contentez pas de créer une monstruosité chancelante de cas spéciaux, c'est extrêmement fragile et une recette pour un désastre. De plus, vous ne corrigez pas seulement le symptôme AUJOURD'HUI du problème sous-jacent.
Au lieu de cela, déterminez la cause première et corrigez cela. C'est beaucoup plus robuste que n'importe quel patch de cas spécial hacky que vous pourriez implémenter.
Pourquoi votre application Web est-elle vulnérable au spam? Quelles caractéristiques le rendent vulnérable? Quelles caractéristiques en font un objectif précieux? Existe-t-il des moyens de modifier ces caractéristiques pour rendre votre application plus robuste contre le spam et moins une cible tentante? La réponse à ces questions est presque certainement oui. Ajoutez des chaînes de validation à vos formulaires, utilisez un captcha intelligemment, randomisez les URL et / ou les noms de paramètres pour les rendre hostiles aux bots. Il existe des millions de façons d'aborder ce problème, je suis désolé de dire que vous avez choisi l'une des solutions les moins précieuses, les moins utiles et les plus fragiles.
la source
Premièrement, je suggérerais fortement de ne pas faire cela.
Comme d'autres l'ont dit avec beaucoup plus d'éloquence, bloquer un pays spécifique ne résout pas le problème, il le reporte légèrement. En outre, lorsque les utilisateurs de ce pays que vous voyez avez bloqué les spécifiquement, il ne les motiver à vous causer plus de problèmes.
Cela dit, si vous voulez vraiment le faire, IPinfoDB fournit une base de données de géolocalisation IP gratuite,
la source
Vous devez utiliser des produits comme fail2ban pour supprimer les erreurs que vous lancez dans votre application Web, indiquant qu'une tentative de spam est en cours. Cela bloquera l'IP pendant un certain temps, ce qui rendra votre site résistant, mais ne bloquera pas la totalité des blocs IP.
la source
Quelques solutions:
Ces solutions sont assez simples et rapides à mettre en place et gratuites.
Une solution à plus long terme serait de détecter le spam de votre application Web, de connecter l'IP et de nourrir vos iptables pour les bloquer automatiquement.
la source
Avez-vous envisagé de trouver qui exploite les réseaux dont vous êtes attaqué? Trouvez le contact "abus" à l'aide de whois et signalez-leur. Bien sûr, cela peut provenir de plusieurs réseaux, mais cela peut aussi valoir la peine si vous voyez des adresses / blocs de réseau récurrents.
la source
Vous avez tout droit de bloquer les adresses IP à partir d'une raison quelconque , vous pouvez justifier par vous - même. C'est vous qui fournissez un service et c'est vous qui décidez qui peut l'avoir ou non. Il est peut-être discutable que ce soit moral, mais c'est quelque chose que vous ne pouvez décider que par vous-même.
Cependant, bloquer un segment IP car il a certains aspects géographiques me semble plus ou moins une approche de panique.
Ce que j'ai fait par le passé, c'est qu'un robot explore mes journaux les plus récents et se fonde sur cette interdiction des adresses IP individuelles qui sont ennuyeuses pour une période de 24 heures. Si cette adresse IP se comporte mal à nouveau, elle est interdite pendant 2 jours, puis 3 jours, etc., etc. vous obtenez la dérive.
Les IP qui sont interdites pendant plus d'une semaine me seront envoyées et j'envoie un courrier abusif à ce fournisseur de services (qui sait que cela pourrait même aider).
la source
J'opterais pour une solution Snort + OSSEC qui pourrait maintenir quelque chose comme ça dynamiquement.
la source