Tengo una aplicación web que no tiene usuarios en Filipinas, pero es constantemente bombardeada por spammers, carders que prueban tarjetas y otras actividades indeseables desde allí. Puedo ver en los registros que tienen IP en Filipinas e inicialmente están buscando mi sitio a través de google.ph u otros .ph
sitios.
Tengo filtros y controles de seguridad bastante buenos, por lo que en realidad no causan mucho daño, pero de todos modos, realmente me estoy cansando. Usan ancho de banda, llenan mi base de datos, abusan de los registros y registros de seguridad con basura, pierden mi tiempo llamando cuentas, etc.
Si bien la gran mayoría de los ciudadanos filipinos no son spammers, y no puedo simplemente bloquear todos los países que me molestan, en este punto, creo que la solución es simplemente bloquear todo el tráfico de Filipinas a mi aplicación web. (Sé que bloquear los bloqueos de IP de países enteros no es una buena práctica y tiene muchos problemas, pero para este país, quiero hacer una excepción).
(Sé que podrían falsificar su dirección IP, pero al menos puedo hacer que trabajen un poco por eso).
Sé que hay algunos servicios de geoip por ahí. ¿Alguien sabe de algún servicio gratuito o económico? ¿O alguna otra forma de filtrar el tráfico de un país específico?
Estoy ejecutando PHP en Apache 2, si es importante.
Respuestas:
Puede hacer esto en función de la dirección IP utilizando una API de localización de IP gratuita como IPInfoDB http://ipinfodb.com/index.php.
fuente
A diferencia de la mayoría de los otros carteles aquí, no voy a decirle que es una mala idea, que no debe hacerlo, que no resolverá su problema o que debe hacer otra cosa. Esto es lo que nos pasó:
Las personas de China y Corea (o usando poderes en China y Corea, de todos modos) nos seguían molestando. Escaneo de puertos, rastreo de nuestros sitios web en busca de vulnerabilidades, intentos de inicio de sesión, etc. Intenté ignorarlos (fail2ban se encarga de ellos por lo general), pero en algunos momentos nos golpearon tan fuerte que efectivamente se convirtió en un ataque DoS. Cuando tiene cientos de conexiones a la vez de personas que intentan utilizar su servidor web como proxy, que intentan SSH en su máquina, que prueban nombres de usuario y contraseñas al azar, tiende a pesar en el sitio. Finalmente me harté.
No recibimos ningún tráfico legítimo de China o Corea; nuestra empresa no vende allí (somos comercio electrónico), por lo que no había riesgo de perder tráfico legítimo, así que pensé que era más fácil bloquearlos con anticipación en lugar de esperar a que fueran pollas.
Y eso es. Nuestros usuarios problemáticos se fueron, cargaron en la red y el servidor se redujo, y resistimos la temporada de Navidad sin dificultad.
Nota 1 : puede hacer esto con iptables regulares (es decir, sin ipset) pero es más costoso desde el punto de vista computacional que usar ipset.
Nota 2 : así es como se ven los volcados (ipset los generará si lo desea):
Nota 3 : Usamos un nethash porque todos nuestros rangos se almacenan como bloques CIDR. Si no desea convertirlos a CIDR, puede usar un iptreemap en su lugar, pero imagino que podría ser menos eficiente si está recibiendo mucho tráfico.
fuente
¿Cómo arreglas un error en el código?
¿Al igual que?
Error: Agregar (2,2) devuelve 0, debería devolver 4.
Código fijo:
Obviamente no. No solo crea una monstruosidad tambaleante de casos especiales, eso es enormemente frágil y una receta para el desastre. Tampoco solo parches el síntoma de HOY del problema subyacente.
En cambio, descubra la causa raíz y corríjala. Esto es mucho más robusto que cualquier parche de caso especial hacky que podría implementar.
¿Por qué su aplicación web es vulnerable al spam? ¿Qué características lo hacen vulnerable? ¿Qué características lo convierten en un objetivo valioso? ¿Hay formas de cambiar esas características para hacer que su aplicación sea más robusta contra el correo no deseado y menos objetivo tentador? Es casi seguro que la respuesta a estas preguntas es sí. Agregue cadenas de validación a sus formularios, use un captcha de manera inteligente, aleatorice las URL y / o los nombres de los parámetros para que no sean amigables con los bots. Hay millones de formas de abordar este problema, lamento decir que ha elegido una de las soluciones menos valiosas, menos útiles y más frágiles que existen.
fuente
Primero, sugeriría encarecidamente no hacer esto.
Como otros han dicho de manera mucho más elocuente, bloquear un país específico no soluciona el problema, solo lo difiere ligeramente. Además, cuando los usuarios de ese país ver que has bloqueado ellos en concreto, sólo se les motivará a hacer que usted más problemas.
Dicho esto, si realmente quieres hacer esto, IPinfoDB proporciona una base de datos de geolocalización IP gratuita,
fuente
Debe usar productos como fail2ban para eliminar los errores que arroja en su aplicación web, lo que indica que se está realizando un intento de envío de correo no deseado. Esto bloqueará la IP por un período de tiempo, haciendo que su sitio sea resistente, pero no bloqueando bloqueos de IP completos.
fuente
Un par de soluciones:
Estas soluciones son bastante fáciles y rápidas de implementar, y gratuitas.
Una solución a largo plazo sería detectar el spam de su aplicación web, registrar la IP y alimentar sus iptables para bloquearlas automáticamente.
fuente
¿Consideró encontrar quién está operando las redes desde las que está siendo atacado? Encuentre el contacto de "abuso" usando whois e informe a ellos. Por supuesto, puede provenir de varias redes, pero también puede valer la pena si ve algunas direcciones / bloques de red recurrentes.
fuente
Tiene todo el derecho de bloquear las direcciones IP por cualquier motivo que pueda justificar por sí mismo. Eres tú quien proporciona un servicio y eres tú quien decide quién puede tenerlo o no. Tal vez sea cuestionable si esto es moral, pero eso es algo que solo puedes decidir por ti mismo.
Sin embargo, bloquear un segmento de IP porque tiene algunos aspectos geográficos me parece más o menos como un enfoque de pánico.
Lo que he hecho en el pasado es tener un rastreador revisando mis registros más recientes y basado en esa prohibición de IP individuales que son molestos por un período de 24 horas. Si esa IP específica se está comportando mal nuevamente, está prohibido durante 2 días, luego 3 días, etc., etc., obtendrá la deriva.
Las IP que están prohibidas por más de una semana me serán enviadas por correo y le enviaré un correo de abuso a ese proveedor de servicios (quién sabe que incluso podría ayudar).
fuente
Optaría por una solución Snort + OSSEC que podría mantener algo como esto dinámicamente.
fuente