Eu tenho um aplicativo Web que não tem usuários nas Filipinas, mas é constantemente bombardeado por spammers, cartões de teste de cardadores e outras atividades indesejáveis a partir daí. Eu posso ver nos logs que eles têm IPs nas Filipinas e estão encontrando meu site inicialmente via google.ph ou outros .ph
sites.
Eu tenho filtros e verificações de segurança muito bons, para que eles realmente não causem muitos danos, mas, no entanto, eu estou realmente me cansando disso. Eles usam largura de banda, preenchem meu banco de dados, registram abusos e registros de segurança com porcaria, perdem meu tempo denominando contas, etc.
Enquanto a grande maioria dos cidadãos filipinos não é spammer e não posso bloquear todos os países que me incomodam, neste momento, acho que as soluções são simplesmente bloquear todo o tráfego das Filipinas para o meu aplicativo da web. (Eu sei que bloquear blocos de IP de países inteiros não é uma boa prática e tem muitos problemas, mas para este país, quero abrir uma exceção.)
(Eu sei que eles poderiam falsificar seu endereço IP, mas pelo menos eu posso fazê-los trabalhar um pouco.)
Eu sei que existem alguns serviços geoip por aí. Alguém conhece algum serviço gratuito ou barato? Ou alguma outra maneira de filtrar o tráfego de um país específico?
Estou executando o PHP no Apache 2, se isso importa.
Respostas:
Você pode fazer isso com base no endereço IP usando uma API gratuita do IP Locatin como IPInfoDB http://ipinfodb.com/index.php.
fonte
Ao contrário da maioria dos outros pôsteres aqui, não vou lhe dizer que é uma má idéia, que você não deve fazê-lo, que não resolverá o seu problema ou que você deve fazer outra coisa. Aqui está o que aconteceu conosco:
Indivíduos da China e da Coréia (ou usando proxies na China e na Coréia, de qualquer maneira) continuavam nos irritando. Portscanning, rastreando nossos sites procurando por vulnerabilidades, fazendo tentativas de login, etc. Tentei ignorá-los (o fail2ban cuida deles normalmente), mas em alguns momentos eles estavam nos atingindo com tanta força que efetivamente se transformou em um ataque de DoS. Quando você tem centenas de conexões ao mesmo tempo de pessoas tentando usar seu servidor da Web como proxy, tentando fazer o SSH em sua máquina, tentando nomes de usuário e senhas aleatórios, isso tende a pesar no site. Eu finalmente me cansei.
Não recebemos nenhum tráfego legítimo da China ou da Coréia; nossa empresa não vende lá (somos comércio eletrônico), portanto não havia risco de perder tráfego legítimo, então achei que era mais fácil bloqueá-los antes do tempo, em vez de esperar que eles fossem idiotas.
E é isso. Nossos usuários problemáticos foram embora, a carga na rede e o servidor diminuíram e passamos o Natal sem dificuldade.
Nota 1 : você pode fazer isso com iptables regulares (ou seja, sem ipset), mas é mais caro do que usar o ipset.
Nota 2 : É assim que os dumps são exibidos (o ipset os gerará para você, se você quiser):
Nota 3 : Usamos um nethash porque todos os nossos intervalos são armazenados como blocos CIDR. Se você não deseja convertê-los para CIDR, pode usar um iptreemap, mas imagino que possa ser menos eficiente se você estiver recebendo muito tráfego.
fonte
Como você corrige um bug no código?
Igual a?
Bug: Add (2,2) retorna 0, deve retornar 4.
Código fixo:
Obviamente não. Você não cria apenas uma monstruosidade oscilante de casos especiais, que é extremamente frágil e uma receita para o desastre. Você também não corrige apenas o sintoma de HOJE do problema subjacente.
Em vez disso, descubra a causa raiz e corrija isso. Isso é muito mais robusto do que qualquer patch de caso especial hacky que você possa implementar.
Por que seu aplicativo Web é vulnerável a spam? Quais características o tornam vulnerável? Quais características o tornam um alvo valioso? Existem maneiras de alterar essas características para tornar seu aplicativo mais robusto contra spam e menos um alvo tentador? Quase certamente a resposta para essas perguntas é sim. Adicione cadeias de validação aos seus formulários, use um captcha de maneira inteligente, randomize URLs e / ou nomes de parâmetros para torná-los hostis aos bots. Existem milhões de maneiras de abordar esse problema. Lamento dizer que você escolheu uma das soluções menos valiosas, menos úteis e mais frágeis por aí.
fonte
Primeiro, eu sugeriria fortemente não fazer isso.
Como outros colocaram de maneira mais eloquente, bloquear um país específico não resolve o problema, apenas o adia um pouco. Além disso, quando os usuários daquele país ver que você bloqueou -los especificamente, ele só irá motivá-los a causar-lhe mais problemas.
Dito isto, se você realmente deseja fazer isso, o IPinfoDB fornece um banco de dados de geolocalização IP gratuito,
fonte
Você deve usar produtos como fail2ban para desativar os erros lançados em seu aplicativo da web, indicando que uma tentativa de spam está em andamento. Isso bloqueará o IP por um período de tempo, tornando seu site resistente, mas não bloqueando bloqueios inteiros de IP.
fonte
Algumas soluções:
Essas soluções são muito fáceis, rápidas de implementar e gratuitas.
Uma solução a longo prazo seria detectar o spam do seu aplicativo da web, registrar o IP e alimentar suas tabelas de ip para bloqueá-las automaticamente.
fonte
Você pensou em descobrir quem está operando as redes das quais você está sendo atacado? Encontre o contato "abuso" usando whois e relate a eles. É claro que pode vir de várias redes, mas também vale a pena se você vir alguns endereços / blocos de rede recorrentes.
fonte
Você tem todo o direito de bloquear endereços IP por qualquer motivo que possa justificar por si mesmo. É você quem presta um serviço e é você quem decide quem pode ou não tê-lo. Talvez seja questionável se isso é moral, mas isso é algo que você só pode decidir por si mesmo.
No entanto, bloquear um segmento IP, porque ele possui alguns aspectos geográficos, parece-me mais ou menos como uma abordagem de pânico.
O que eu fiz no passado foi ter um rastreador passando pelos meus logs mais recentes e com base nessa proibição de IPs individuais que são irritantes por um período de 24 horas. Se esse IP específico estiver se comportando mal novamente, ele será banido por 2 dias, 3 dias, etc., etc.
Os IPs que são banidos por mais de uma semana serão enviados para mim e eu envio um email de abuso para esse provedor de serviços (quem sabe isso pode até ajudar).
fonte
Eu optaria por uma solução Snort + OSSEC que pudesse manter algo assim dinamicamente.
fonte