0
Intento de ataque DDOS a mi servidor

Open 4 Respuestas 1 Views
Hola es la primera vez que pregunto por aca, estoy teniendo problemas en un servidor que tengo hosteado en google cloud ya que estoy viendo en los logs del servidor que estan intentando acceder desde paises como Rusia (que no es normal de que el sitio tenga trafico de ahi) a carpetas como /wp-content /wp-admin /xmlrpc.php /sitemap.xml. mi pregunta concreta seria, cual seria la forma mas logica y practica de bloquear todo este trafico de bots y visitas indeseadas? ya intente por medio del .htaccess y no me mejoro nada

gracias de antemano.

4 Respuestas

1
Fail2ban con el filtro de apache post flood. O si estás muy seguro que no queres tráfico de Rusia podes bloquear con geo-ip
respondido por sGoico (2,030 puntos) Feb 13
1Comentarios
comentado por nicomse (140 puntos) Feb 13
Genial, pensé qye ya venía configurado en Google cloud.lo probare y comento que onda
0
Raro, yo siempre creí (porque experiencia no tengo) que esto era suficiente: https://hacking-etico.com/2015/03/11/bloqueando-accesos-desde-tor/
respondido por robertocarlos1685 (140 puntos) Feb 13
1Comentarios
comentado por luigibalzani (9,730 puntos) Feb 14
No es raro, es lo normal en estos tiempos. Pones un server en internet y pocos segundos despues ya tenes logs de botnets escaneando bugs.
1

No sé como es google cloud, tenés un VPS? para mi lo que va es iptables + xt_recent, podés limitar la cantidad de requests desde una ip determinada.

 

Onda:

-N ANTIDOS
-N BLOCKED

# Si está dentro de "blocked", le reiniciamos el tiempo de espera (10 segundos) y dropeamos
-A INPUT -p tcp --syn -m recent --name blocked --update --seconds 10 -j DROP

# Si entra a blocked, le seteamos el recent 'blocked', logueamos y lo dropeamos
-A BLOCKED -m recent --name blocked --set
-A BLOCKED -m limit --limit 2/min -j LOG --log-prefix "IP blocked: " --log-level 7
-A BLOCKED -j DROP

# Checkeamos si entró mas de 5 veces en un periodo de 10 segundos, si es así vamos para el chain BLOCKED
-A ANTIDOS -p tcp --syn -m recent --name antidos --rcheck --seconds 10 --hitcount 5 -j BLOCKED
# Si está todo bien, aceptamos (se puede usar -j RETURN si ya existen reglas)
-A ANTIDOS -m recent --name antidos --set -j ACCEPT

# Cualquier conexión al 80 o al 443 la mandamos al chain antidos

-A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW -j ANTIDOS
-A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW -j ANTIDOS

 

Obviamente los parámetros los manejás como los necesites, si no usas CDN y una petición son 20 requests, esto no te sirve, pero lo bueno es que actualiza los times, además podes ponerle otra regla para definir periodos distintos:

# Por ej, si en 1 minuto recibe mas de 1000 request, se puede bloquear por mas tiempo
-A ANTIDOS -p tcp --syn -m recent --name antidos --rcheck --seconds 60 --hitcount 1000 -j SUPERBLOCKED

 

respondido por exos (160 puntos) Feb 13
1Comentarios
comentado por nicomse (140 puntos) Feb 14
tengo el equivalente a un vps en google cloud, ellos le dicen instancias. lo que no tenia ni instalado ni configurado es ningun tipo de firewall desde el lado del servidor ese creo que fue mi error. ahora voy a instalar fail2ban aver como me va. pero soy abierto a escuchar opiniones ya que no soy muy ducho en todo este tema de los servidores
1
Hola, hay muchas maneras gratuitas y pagas de "minimizar" los bots, botnets, intentos de hacking, etc... La realidad es que solo lo podes minimizar porque eso siempre van a estar.

Aca van algunos consejos practicos:

- Usar puertos no estandar, por ejemplo los ataques al ssh caen en mas del 95% seteando otro puerto.

- Para el servicio web usar cloudflare (o cualquiera similar) esto te bloquea los ataques mas comunes como el Slow HTTP DOS, DDOS y muchos mas.

- IPtables (ahora nftables) es tu amigo, si buscas en internet encontraras 1000 tutos sobre como protegerse de muchos ataques.

- Firewalls de google cloud, usalos!

- RewriteRules, usalas para bloquear sql injection, inyeccion de headers no deseados, accesos a directorios que deben permanecer ocultos, XSS, por ejemplo:

    RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC]
    RewriteCond %{REQUEST_URI} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
    RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
    RewriteRule .* index.php [L,F]

- Selinux, es un parto hasta que te salva de alguna y empezas a amarlo.

 

Saludos
respondido por luigibalzani (9,730 puntos) Feb 14
1Comentarios
comentado por nicomse (140 puntos) Feb 17
tenes idea como configurar el firewall de google ? ya que no soy muy ducho con los servers como dije anteriormente. Alguna configuracion basica me vendria de 10.

Use cloudflare pense que el CDN nada mas ayudaba al trafico en sentido a la carga no a los bots.
Recien configure fail2ban y me siguen apareciendo bots. es normal este comportamiento en los logs?
...