¿Hay alguna forma de ver las direcciones IP de los usuarios anónimos / invitados?
¿Y/o el número de conexiones de cada uno?
Mi sitio ha estado recibiendo cientos y cientos de visitas por minuto, durante las últimas horas, el uso del procesador también se ha disparado al 100%.
¿Has revisado tus registros de Nginx (o lo que sea que estés usando)? Esos son bots y atacantes. No haces nada con las IPs. Cambiarán después de unos pocos intentos (las IPs son inútiles de todos modos, siempre cambiarán). Deberías empezar a hacer geo-bloqueo (muy pocos sitios son verdaderamente globales) y prohibir muchos agentes de usuario a nivel de servidor; al menos todos los rastreadores SEO innecesarios y codiciosos, bots que se identifican como IE5.x, etc.
¿Cómo funciona realmente esa limitación de velocidad (no, no busqué la respuesta)? ¿Se activará después de una cantidad de solicitudes en un período de tiempo determinado por IP?
De todos modos, cuando hay una situación de tipo ddos en el sentido de, por ejemplo, si una URL se menciona en alguna lista estúpida, entonces comienza la inundación desde IPs de China, Pakistán, Irán, Irak, Vietnam y Rusia, además de muchas de los grandes servicios de VPS, principalmente de EE. UU., Francia y Alemania. Cuando intentan 3 veces y cambian de IP, la limitación de velocidad no ayuda demasiado.
En algún momento recibí muchas búsquedas estúpidas. Y mucho significa que una instancia de 5 USD de DigitalOcean se bloqueó y tuve casi cero solicitudes de humanos.
Esto es más o menos una cuestión del servidor web, no de Discourse. Esos atacantes deberían ser eliminados antes que una aplicación. Sé que mi situación/soluciones son mucho más fáciles que las del OP o las de la mayoría de los administradores web aquí porque soy de Finlandia y mi foro es puramente finlandés, por lo que prohibir a nivel mundial es posible para mí (bueno, los finlandeses que viven fuera de Finlandia lo ven de manera diferente )
Pero independientemente de la limitación de velocidad, al menos los agentes de usuario falsos deberían detenerse de inmediato.
¿Qué tal los atacantes de SSH? Esos también consumen recursos.
Si tienes problemas de ddos, te recomendaría Cloudflare (algo que casi nunca hago). Asegúrate de usar la plantilla de Cloudflare y luego desactiva las optimizaciones (o lee atentamente sobre cómo configurarlas).
No es un ddos real. Pero cuando hay muchas solicitudes del mismo tipo, actúan como ddos, el resultado es el mismo. Estoy usando Varnish y Fail2ban además de geo-blocking y estos hacen el trabajo por mí.
Mi primer pensamiento fue simplemente que nos hubieran “slashdotted”, pero 24 horas después todavía me están atacando.
La solución temporal rápida fue cerrar la puerta principal y configurar el sitio como “requiere inicio de sesión”. Lo cual funcionó, el uso de la CPU bajó del 100% al 3% en 60 segundos.
Tan pronto como abro la puerta principal, mi página de /search es instantáneamente bombardeada con basura como:
Esto sucede a los 60 segundos de volver a abrir el sitio.
Somos un grupo pequeño y de nicho, no estoy seguro de por qué alguien nos atacaría con algo
Es solo una estimación, pero según Google Analytics normalmente tenemos de 8 a 10 usuarios activos y esto se dispara a más de 1.000 en cuestión de segundos después de que vuelvo a abrir el sitio al público. Todas las conexiones provienen de varias partes de EE. UU., todas directas y sin referentes.
Dejaré el sitio cerrado solo para miembros por unos días y veré si desaparece, o si puedo limitar /search solo a usuarios registrados, y si no, probablemente tendré que recurrir a la ruta de Cloudflare.
Creo que también puedes buscar en /var/discourse/shared/log/var-log/nginx/.... (o algo muy parecido). Hay otras configuraciones como slow down crawler user agents si buscas en la configuración “agent”.
Todas esas configuraciones solo ayudan si un bot seguirá los límites y las guías. Incluso Googlebot no lo hace todo el tiempo y los malos nunca. Esa es una de las razones por las que robots.txt es tan inútil.
Y descargo de responsabilidad. No sé si Discourse está utilizando alguna otra tecnología para reducir la velocidad.
No, no lo estamos. Porque tu pregunta fue un poco errónea Querías saber un pequeño detalle cuando deberías preguntar “¿qué hacer cuando mi Discourse está bajo ataque de bots/ddos?”.