{"id":1235,"date":"2026-03-17T15:47:06","date_gmt":"2026-03-17T07:47:06","guid":{"rendered":"https:\/\/www.ddosgj.com\/?p=1235"},"modified":"2026-03-17T15:47:06","modified_gmt":"2026-03-17T07:47:06","slug":"como-defender-tu-servidor-de-los-ataques-de-cc-te-cuento-como-lo-hago-yo","status":"publish","type":"post","link":"https:\/\/www.ddosgj.com\/es\/1235-html","title":{"rendered":"C\u00f3mo defender tu servidor de los ataques CC, \u00a1te cuento lo que hice!"},"content":{"rendered":"<p>Recuerdo el verano pasado, yo estaba paralizado en el sof\u00e1 cepillado drama, tel\u00e9fono m\u00f3vil de repente como loco zumbido vibrar sin parar - todo el correo de alarma del servidor, la tasa de uso de la CPU se dispar\u00f3 a 100%, el sitio se abre tan lento como un caracol arrastr\u00e1ndose. Maldije a una madre, el coraz\u00f3n entiende: este ochenta por ciento es otro ataque CC. Para ser honesto, despu\u00e9s de tantos a\u00f1os de operaci\u00f3n y mantenimiento, he visto un mont\u00f3n de este tipo de escenas, pero cada vez que puedo estar enojado con los dientes, porque los atacantes siempre les encanta elegir a altas horas de la noche, lo que oblig\u00f3 a permanecer despierto toda la noche para apagar el fuego.<\/p>\n<p>CC ataque, para decirlo sin rodeos, es un grupo de \u201crobots\u201d disfrazados de usuarios normales, loco refrescar su p\u00e1gina web o enviar una solicitud, el prop\u00f3sito no es hackear el sistema, pero para vivir a los recursos del servidor a secar, por lo que los usuarios reales no pueden acceder. He probado y encontrado que esta cosa es particularmente repugnante, porque no es como el DDoS tradicional como un flujo enorme, pero en lugar de simular la operaci\u00f3n con una persona real como, muchos cortafuegos b\u00e1sicos directamente a un alto, pensando err\u00f3neamente que se trata de una visita normal.<\/p>\n<p>Una vez, uno de mis puestos de comercio electr\u00f3nico se jodi\u00f3, la p\u00e1gina de pedidos se atasc\u00f3, el tel\u00e9fono de quejas de los clientes casi se descuelga y el jefe corri\u00f3 directamente a la sala de servidores para preguntarme si estaba minando.<\/p>\n<p>Hoy en d\u00eda, incluso las CDN tienen que ser \u2018a prueba de mate\", por no hablar de estos trucos turbios.<\/p>\n<p>En ese momento ten\u00eda un servidor bare-bones en mis manos, y confiaba en Nginx para que me llevara con fuerza, y me sent\u00ed abrumado al instante. Me di cuenta de que no pod\u00eda hacerlo solo, ten\u00eda que hacer una combinaci\u00f3n de cosas. A continuaci\u00f3n desmenuzo las migajas a decir, c\u00f3mo paso a paso para construir el sistema de defensa, puede referirse a, pero no copiar, porque cada escenario de negocio es diferente.<\/p>\n<p>En primer lugar, no te pongas a trastear, tienes que averiguar c\u00f3mo es el ataque. Inmediatamente me conect\u00e9 al sistema de monitorizaci\u00f3n, mirando los registros en tiempo real, y descubr\u00ed que una IP en pocos segundos envi\u00f3 miles de peticiones a la p\u00e1gina de inicio de sesi\u00f3n, lo que obviamente no es normal. Hice una r\u00e1pida b\u00fasqueda en la l\u00ednea de comandos, y aqu\u00ed est\u00e1 el comando:<\/p>\n<pre><code>tail -f \/var\/log\/nginx\/access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -20<\/code><\/pre>\n<p>Esta l\u00ednea de c\u00f3digo enumera las 20 IP m\u00e1s solicitadas, identificando a los sospechosos de un vistazo. Pero es demasiado lento hacerlo manualmente, as\u00ed que ya he configurado una regla de alerta en Zabbix que me env\u00eda autom\u00e1ticamente un mensaje de texto si una IP es solicitada m\u00e1s de 50 veces por segundo. No creas en esas tonter\u00edas de \u201cla monitorizaci\u00f3n es opcional\u201d, sin ella eres como un ciego luchando, s\u00f3lo que pasivo.<\/p>\n<p>Despu\u00e9s de localizar el origen del ataque, mi primera reacci\u00f3n es bloquear temporalmente la IP. utilizar iptables para simplemente desconectar, por ejemplo:<\/p>\n<pre><code>iptables -A INPUT -s Direcci\u00f3n IP maliciosa -j DROP<\/code><\/pre>\n<p>Pero este truco trata los s\u00edntomas pero no la causa ra\u00edz, y el atacante puede seguir jugando con un segmento IP diferente. As\u00ed que opt\u00e9 por configurar la limitaci\u00f3n de velocidad en Nginx, que es el camino a seguir. A\u00f1ad\u00ed este p\u00e1rrafo a nginx.conf:<\/p>\n<p>Esta configuraci\u00f3n significa que cada solicitud de IP hasta 10 veces por segundo, m\u00e1s de una parte de la primera cach\u00e9 de 20, y luego sobre el retorno directo 429 error.<\/p>\n<p>He probado, esto puede bloquear la mayor\u00eda de los ataques de bajo rango CC, pero cumplir con el punto avanzado, IP pool grande, o lucha. Una vez que he ajustado demasiado duro, por error bloqueado algunos rastreadores de motores de b\u00fasqueda, el tr\u00e1fico SEO se redujo mucho, el jefe y me encuentro t\u00e9, por lo que las reglas tienen que ajustar lentamente, no corte a trav\u00e9s del tablero.<\/p>\n<p>&nbsp;<\/p>\n<p>A continuaci\u00f3n, decid\u00ed recurrir a un servicio CDN para filtrar primero el tr\u00e1fico hacia los nodos perif\u00e9ricos. En ese momento, compar\u00e9 varios, y finalmente eleg\u00ed CDN07, \u00bfpor qu\u00e9?<\/p>\n<p>Debido a que su protecci\u00f3n inteligente es realmente no sopla, puede identificar autom\u00e1ticamente las solicitudes maliciosas basadas en el an\u00e1lisis de comportamiento, sino tambi\u00e9n con la aceleraci\u00f3n global, el precio tambi\u00e9n es asequible. La configuraci\u00f3n tambi\u00e9n es simple, cort\u00e9 el an\u00e1lisis de nombres de dominio a su CNAME, y luego abrir las reglas de protecci\u00f3n de CC en la consola, el umbral se establece en 100 solicitudes por segundo, m\u00e1s que el desaf\u00edo del c\u00f3digo de verificaci\u00f3n. Despu\u00e9s de usar, la presi\u00f3n del servidor de inmediato cay\u00f3 ochenta por ciento, la respuesta de servicio al cliente tambi\u00e9n es r\u00e1pido, una vez en el medio del ataque de la noche, que 5 minutos para ayudarme a ajustar las reglas. Hoy en d\u00eda, un buen CDN es como un guardaespaldas personal, ahorrando muchos dolores de cabeza.<\/p>\n<p>El CDN por s\u00ed solo no era suficiente, a\u00f1ad\u00ed un cortafuegos de aplicaciones web (WAF) a nivel de servidor, utilizando el c\u00f3digo abierto ModSecurity.<\/p>\n<p>Tras la instalaci\u00f3n, personalic\u00e9 algunas reglas, como la protecci\u00f3n contra la fuerza bruta para la p\u00e1gina de inicio de sesi\u00f3n:<\/p>\n<p>Esta regla comprueba si hay par\u00e1metros an\u00f3malos en las peticiones de inicio de sesi\u00f3n y las intercepta si la puntuaci\u00f3n acumulada es alta. Te recuerdo, las reglas WAF no deben ser copiadas de Internet, tienes que moler poco a poco de acuerdo a tu propio negocio. Una vez que a\u00f1ad\u00ed una regla estricta, el resultado es que todas las peticiones API de mi propia APP fueron bloqueadas, y los usuarios volaron por los aires, as\u00ed que tuve que hacer roll back de la noche a la ma\u00f1ana. Tuve que dar marcha atr\u00e1s durante la noche. \u00a1Es una lecci\u00f3n de sangre y l\u00e1grimas pasar por el entorno de pruebas antes de entrar en l\u00ednea!<\/p>\n<p>Adem\u00e1s, he optimizado los recursos del servidor.<\/p>\n<p>Por ejemplo, almacen\u00e9 en cach\u00e9 las consultas a la base de datos y utilic\u00e9 Redis para almacenar los datos de la zona activa para reducir la presi\u00f3n de presionar directamente a MySQL. A\u00f1ad\u00ed algunas respuestas retardadas al c\u00f3digo para devolver datos falsos para peticiones sospechosas, drenando los recursos del atacante. Este truco es un poco da\u00f1ino, pero efectivo, escrib\u00ed un simple script PHP de ejemplo:<\/p>\n<p>Esto ralentiza la m\u00e1quina del atacante, mientras que los usuarios normales son acelerados por la CDN y apenas sienten el retraso. Sin embargo, esto tiene que usarse junto con la monitorizaci\u00f3n, o ser\u00eda un desastre perjudicar accidentalmente a un amigo.<\/p>\n<p>Hablando de eso, tengo que quejarme, algunos tutoriales siempre les gusta recomendar \u201cherramienta de protecci\u00f3n de un solo clic\u201d, soplando el cielo alto, he intentado algunos, el efecto es desigual, y algunos incluso vienen con una puerta trasera.<\/p>\n<p>No hay una bala de plata para defenderse de los ataques CC, la clave es la profundidad multicapa: la capa de red utiliza CDN para transportar el tr\u00e1fico, la capa de aplicaci\u00f3n utiliza WAF y filtrado de l\u00edmite de velocidad, y la capa de datos hace un buen trabajo de almacenamiento en cach\u00e9 para reducir el negativo.<\/p>\n<p>En mi arquitectura actual, tambi\u00e9n a\u00f1ad\u00ed simulacros regulares, como simular un ataque una vez al mes para comprobar si hab\u00eda vulnerabilidades. En un simulacro descubr\u00ed que cierta interfaz API no ten\u00eda l\u00edmites establecidos y estuvo a punto de convertirse en una brecha, por lo que me apresur\u00e9 a parchearla.<\/p>\n<p>Por \u00faltimo, hablemos de mentalidad. Esto de la defensa es como el juego del gato y el rat\u00f3n, los medios de ataque cambian cada d\u00eda, no puedes establecer las reglas y tumbarte.<\/p>\n<p>Me he acostumbrado a mirar los res\u00famenes de los registros todos los d\u00edas, vigilar la informaci\u00f3n sobre nuevas amenazas y ajustar las reglas seg\u00fan sea necesario. Por ejemplo, el a\u00f1o pasado hubo una oleada de ataques a recursos est\u00e1ticos, as\u00ed que limit\u00e9 la velocidad del directorio de im\u00e1genes en Nginx, y el efecto fue inmediato. En resumen, mantente alerta y sigue aprendiendo, que es fundamental.<\/p>\n<p>Despu\u00e9s de todo eso, mi servidor es ahora s\u00f3lido como una roca y nunca ha vuelto a ser colapsado por un ataque de CC.<\/p>\n<p>Si acaba de entrar en el pozo, recuerde estos puntos: monitorizaci\u00f3n primero, respuesta r\u00e1pida; capas de defensa, no conf\u00ede en un \u00fanico punto; herramientas para elegir fiables, como los proveedores de servicios CDN07 pueden ahorrarle mucho esfuerzo; por \u00faltimo, la pr\u00e1ctica hace al maestro, m\u00e1s pruebas y m\u00e1s ajustes.<\/p>\n<p>El camino hacia la defensa es largo, pero si est\u00e1s dispuesto a darle vueltas, siempre puedes encontrar un m\u00e9todo que te funcione.<\/p>","protected":false},"excerpt":{"rendered":"<p>Recuerdo el verano pasado, yo estaba paralizado en el sof\u00e1 cepillado drama, tel\u00e9fono m\u00f3vil de repente como loco zumbido vibrar sin parar - todo el correo de alarma del servidor, la tasa de uso de CPU se dispar\u00f3 a 100%, el sitio se abre tan lento como un caracol arrastr\u00e1ndose. Maldije a una madre, el coraz\u00f3n entiende: este ochenta por ciento es otro ataque CC. Para ser honesto, despu\u00e9s de tantos a\u00f1os de operaci\u00f3n y mantenimiento, he visto un mont\u00f3n de este tipo de escenas, pero cada vez que puedo estar enojado con los dientes, porque los atacantes siempre les encanta elegir a altas horas de la noche, lo que oblig\u00f3 a permanecer despierto toda la noche para apagar el fuego. CC ataques, para decirlo sin rodeos, es un grupo de \u201crobots\u201d disfrazados de usuarios normales, loco actualizar su p\u00e1gina web o enviar una solicitud, el prop\u00f3sito no es hackear el sistema, pero para vivir a los recursos del servidor para secar, por lo que los usuarios reales no pueden acceder. He probado y encontrado que esta cosa es particularmente repugnante, porque no es como DDoS tradicional como un enorme flujo de tr\u00e1fico, todo lo contrario es cierto.<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"none","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","footnotes":""},"categories":[150],"tags":[155],"collection":[],"class_list":["post-1235","post","type-post","status-publish","format-standard","hentry","category-updates","tag-155"],"_links":{"self":[{"href":"https:\/\/www.ddosgj.com\/es\/wp-json\/wp\/v2\/posts\/1235","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ddosgj.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ddosgj.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ddosgj.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ddosgj.com\/es\/wp-json\/wp\/v2\/comments?post=1235"}],"version-history":[{"count":2,"href":"https:\/\/www.ddosgj.com\/es\/wp-json\/wp\/v2\/posts\/1235\/revisions"}],"predecessor-version":[{"id":1242,"href":"https:\/\/www.ddosgj.com\/es\/wp-json\/wp\/v2\/posts\/1235\/revisions\/1242"}],"wp:attachment":[{"href":"https:\/\/www.ddosgj.com\/es\/wp-json\/wp\/v2\/media?parent=1235"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ddosgj.com\/es\/wp-json\/wp\/v2\/categories?post=1235"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ddosgj.com\/es\/wp-json\/wp\/v2\/tags?post=1235"},{"taxonomy":"collection","embeddable":true,"href":"https:\/\/www.ddosgj.com\/es\/wp-json\/wp\/v2\/collection?post=1235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}