Mi servidor está bajo ataques DDOS y quiero bloquear la IP que lo está haciendo, ¿qué registros debo buscar para determinar la IP del atacante?
Mi servidor está bajo ataques DDOS y quiero bloquear la IP que lo está haciendo, ¿qué registros debo buscar para determinar la IP del atacante?
Respuestas:
tail -n 10000 yourweblog.log|cut -f 1 -d ' '|sort|uniq -c|sort -nr|more
Echa un vistazo a las principales direcciones IP. Si alguno se destaca de los demás, esos serían los de firewall.
netstat -n|grep :80|cut -c 45-|cut -f 1 -d ':'|sort|uniq -c|sort -nr|more
Esto examinará las conexiones activas actualmente para ver si hay alguna IP que se conecte al puerto 80. Es posible que deba modificar el corte -c 45- ya que la dirección IP puede no comenzar en la columna 45. Si alguien estaba haciendo una inundación UDP para su servidor web, esto también lo recogería.
En caso de que ninguno de estos muestre ninguna IP que esté excesivamente fuera de la norma, deberá asumir que tiene una botnet que lo ataca y necesitaría buscar patrones particulares en los registros para ver qué están haciendo. Un ataque común contra los sitios de WordPress es:
GET /index.php? HTTP/1.0
Si revisa los registros de acceso de su sitio web, puede hacer algo como:
cut -f 2 -d '"' yourweblog.log|cut -f 2 -d ' '|sort|uniq -c|sort -nr|more
que le mostraría las URL más utilizadas. Es posible que descubra que están ejecutando un script en particular en lugar de cargar todo el sitio.
cut -f 4 -d '"' yourweblog.log|sort|uniq -c|sort -nr|more
le permitiría ver los UserAgents comunes. Es posible que estén utilizando un único UserAgent en su ataque.
El truco es encontrar algo en común con el tráfico de ataque que no existe en su tráfico normal y luego filtrarlo a través de iptables, mod_rewrite o upstream con su webhost. Si está siendo golpeado con Slowloris, Apache 2.2.15 ahora tiene el módulo reqtimeout que le permite configurar algunos ajustes para proteger mejor contra Slowloris.
Algunos buenos consejos aquí. También agregaría esto:
netstat -an | grep ESTABLISHED | awk '\''{print $5}'\'' | awk -F: '\''{print $1}'\'' | sort | uniq -c | awk '\''{ printf("%s\t%s\t",$2,$1); for (i = 0; i < $1; i++) {printf("*")}; print ""}'\''
Ponga esto bajo un alias (nn, por ejemplo). Esto le dará una perspectiva "gráfica" de los ips con conexiones más establecidas.
Espero que esto ayude.
Para aquellos que no pudieron hacer que esto funcione, he corregido la sintaxis para que se ejecute para mí en Ubuntu:
netstat -an|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|awk '{ printf("%s\t%s\t",$2,$1); for (i = 0; i < $1; i++) {printf("*")}; print ""}'
Mis archivos de registro favoritos para verificar ataques de DOS son / var / log / secure (en Redhat / Centos / Fedora ....) y /var/log/auth.log (en ubuntu, debian ...). Verá intentos fallidos de inicio de sesión desde la IP de origen del atacante, la mayoría de las veces ataques basados en el diccionario.
para proteger mi servidor, uso Fail2Ban, un script simple
analiza archivos de registro como / var / log / pwdfail o / var / log / apache / error_log y prohíbe la IP que genera demasiadas fallas de contraseña. Actualiza las reglas del firewall para rechazar la dirección IP.
¿Qué distribución?
Creo que el registro está en /var/log/apache2/access.log con Ubuntu ... Posiblemente Debian también.
Ejecute updatedb como sudo y luego ubique access.log desde la línea de comandos.
EDITAR: creo que esto solo sucederá si lo están golpeando, ya sea solicitando páginas o directamente a través del puerto 80. Si están llegando a otros puertos, no verá la información que necesita allí, deberá verificar y ver qué proceso es ejecutándose en ese puerto y eche un vistazo a los registros de conexión para ese proceso.
Si está bajo un DOS distribuido, ciertamente hay más de una IP para bloquear y las IP pueden ser falsificadas, es mejor que pregunte a su ISP como dijo mfinni . Además, esto puede ser más que un DOS contra su servidor, pero un señuelo para ocultar el ataque real de ser detectado, así que verifique que todos sus servicios expuestos sean ejecutados por software actualizado. También te puede interesar mod_dosevasive para apache.
Primero tienes que determinar el tipo de DOS. Algunos ataques son muy sigilosos pero efectivos (slowloris), algunos son tan pesados que podrían derribar un ISP (inundación ICMP desde un ancho de banda mayor que el de su fuente de ISP).
Después de determinar el tipo de DOS, llame a su ISP y pregúntele si puede filtrar el tráfico.
He visto inundaciones ICMP tan fuertes que tuvimos que pedirle al ISP aguas arriba que filtre la IP de destino a través de una comunidad BGP.