Mi servidor web esta siendo atacado – query (cache) ‘sl/ANY/IN’ denied

11 minutos de lectura
Mi servidor web esta siendo atacado – query (cache) ‘sl/ANY/IN’ denied

Tabla de Contenidos

Hola a todos. Para empezar me gustaría comentar que no soy un experto en servidores ni en seguridad informática. Lo que indico a continuación es lo que he aplicado para evitar el continuo ataque a mi servidor web. Lo que indico es lo que a mi de momento me ha dado resultados ante el ataque DoS y DDoS que me han estado lanzando. Espero que les sirva. Empezemos.

Como ver si mi servidor esta siendo atacado por los hackers?

Ante nada quiero comentar que mi servidor es un VPS corre en un SO Debian 10 y utilizo el server panel de Plesk. Me di cuenta de que mi servidor esta siendo atacado por las siguientes razones:

Páginas web del servidor relentizadas

El funcionamiento del servidor es de lo primero que nos alerta ante un ataque con denegacion de servicio o una recursion de DNS. Si las webs andan muy lentas y siguen un patro con errores 500 es posible que tu web este siendo atacada.

Escalado de uso de memoria y recursos del servidor

Si se te acaba el disco duro que tienes contratado con tu proveedor, adios. Eso es lo que me ha pasado a mi. En un momento dado las caidas eran muy largas y sin darte cuenta tus webs se quedan inoperativas lo que dispara todas las alarmas. Por la siguiente grafica se puede apreciar que hay picos de crecimiento de espacio en mi disco duro muuuy sospechosos.

Con las siguientes graficas como por ejemplo de Disk «sda» IOPS en nuestro Plesk podemos ver que no es normal esos picos de actividad que se han disparado.

Inundación del servidor de correo

Una vez que se han generado los correos electrónicos, los atacantes intentarán enviarlos al servidor de correo objetivo en grandes cantidades. Esto puede hacerse utilizando múltiples direcciones IP (en un ataque DDoS) o desde una sola fuente (en un ataque DoS). Los correos electrónicos se colocan en la cola de envío del servidor de correo, lo que significa que el servidor intentará enviarlos todos, uno por uno, a sus destinatarios.

Para darte cuenta revisa tus logs. En mi caso tenia decenas de miles de correos en cola (+170k) con registros parecidos a los siguientes:

2024-04-14 19:41:46
INFO
postfix/qmgr [2458]
Mail system [2]
A14B44F1D3: from=<>, size=3566, nrcpt=1 (queue active)
2024-04-14 19:41:46
INFO
postfix/error [7530]
Mail system [2]
A5B5A6EC90: to=<support@dominioweb.com>, relay=none, delay=205432, delays=205432/0/0/0, dsn=4.4.3, status=deferred (delivery temporarily suspended: Host or domain name not found. Name service error for name=dominioweb.com type=MX: Host not found, try again)
2024-04-17 11:41:46

Solicitudes DNS sospechosas – client @ [ip-sospechosa]#2361 «laweb.com»: query (cache) ‘sl/ANY/IN’ denied

Entiendo que los servidores DNS bien configurados tienen que rechazar solicitudes incorrectas pero los servidores DNS mal configurados a menudo pueden responder a estas consultas con información de la zona raíz o con información de otras zonas.

Si revisas los logs de sistema de tu Plesk podrás observar muchisimas solicitudes de IPs extrañas que finalmente son denegadas y pondrá algo así:

El path de los logs de sistema de Plesk que tengo yo es este: /var/log/syslog lo indico aquí porque lo necesitaremos para el filtro de Fail2Ban.

2024-04-20 19:46:48INFOnamed [8769]
System daemons [3]
client @0x5fdfas5263a7 [ip-sospechosa]#2361 «laweb.com»: query (cache) ‘sl/ANY/IN’ denied

Y ya para salir de dudas lo que hice aqui era comprobar unas cuantas ips en AbuseIP Data Base que es perfecta para esta ocasión. Esta web nos indica información sobre ips y si pueden ser maliciosas. La que he scaneado ha sido reportada 527 veces que no son pocas. Tambien pueden geolocalizar las ips con herramienta Geolocation: para ver su procedencia aunque en Abuse Ip tambien tienen estos datos.

Medidas si tu servidor web esta siendo atacado

Ante nada comentar que pueden darse distintos casos en los que las medidas no se ajusten a 100% . No soy experto en ciberseguridad por lo que estoy seguro que hay más acciones a tomar si tu servidor web esta siendo atacado a parte de las que voy a comentar a continuación. Mis medidas se centran principalmente en Plesk como entorno gráfico de servidor por lo que comandos de consola voy a usar los justos y necesarios.

  • Vamos a realizar bloqueo de solicitudes de DNS aplicando filtro nuevo y carceres para el tráfico con Fail2Ban desde Plesk
  • Limpiamos los correos en cola desde SSH
  • Limpiaremos los logs para aumentar espacio en el sevidor
  • Instalaremos servicio de CDN de Cloudflare
  • Comprobamos nuestras webs en busca de virus

Filtrar y bloquear los registros – query (cache) ‘sl/ANY/IN’ denied con Fail2Ban

Intentaré resumir los pasos en lo más breve posible. Aun asi si quieren ver mas información os dejaré las fuentes de la incidencia en los foros.

Accedemos a Fail2ban en nuestro Plesk

Dentro de nuestro panel de Plesk vamos al panel de opciones y nos adentramos en el modulo de Fail2Ban

Creacion de filtro en Fail2Ban

Vamos a crear un nuevo filtro con nombre named-refused donde le indicamos el siguiente filtro. Yo hasta el momento lo tengo configurado asi.

[Definition]
_daemon = named(?:-\w+)?
__pid_re = (?:\[\d+\])
__daemon_re = \(?%(_daemon)s(?:\(\S+\))?\)?:?
__daemon_combs_re = (?:%(__pid_re)s?:\s+%(__daemon_re)s|%(__daemon_re)s%(__pid_re)s?:)
__line_prefix = \s*(?:\S+ %(__daemon_combs_re)s\s+)?%(_category_re)s
prefregex = ^%(__line_prefix)s(?:(?:error|info):\s*)?client(?: @\S*)? <HOST>#\S+(?: \([\S.]+\))?: <F-CONTENT>.+</F-CONTENT>\s(?:denied(?: \([^\)]*\))?|\(NOTAUTH\))\s*$
failregex = ^(?:view (?:internal|external): )?query(?: \(cache\))?
	^zone transfer
	^bad zone transfer request: '\S+/IN': non-authoritative zone
ignoreregex = 
_category = (?!error|info)[\w-]+
_category_re = (?:%(_category)s: )?

Tienen mas información del filtro en la página de su creador en el siguiente enalce de Github.

Vamos a guardar esta configuracion y posteriormente vamos a pasar a crear las carceres o jails donde se van a almacenar esas ips bloqueadas que producen el registro query (cache) ‘/AAAA/IN’ denied.

Creamos jails o carceres en Fail2Ban

Vamos crear 2 carceres con nombres named-refused-tcp y named-refused-udp con las siguientes configuraciones. (Actualmente baneando IPs). Indica el filtro recientemente creado y en action elige iptables-multiport y modificas la info a tu gusto.

Ahora creamos otro jail que será named-refused-udp de la misma forma con la siguiente info

Como pueden ver en la siguiente imagen ya hay unas cuantas IP que han sido bloqueadas por estos filtros.

Sobre este asunto dejo por aqui enlace a los foros donde me he podido informar sobre el problema y ponerlo en práctica.

Borrar correos en cola de tu servidor web atacado

Para la siguiente accion vamos a necesitar entrar en SSH. Vamos a eliminar todos los correos que tenemos en cola ya que se intentan enviar constantemente y nos consumen recursos de nuestro servidor web mientras esta siendo atacado.

postsuper -d ALL

En mi caso me salio que se borraron alrededor de 167.276 correos en cola. Nada mal. Y con eso los picos de envios bajaron a su estado normal.

Borrar correos en cola servidor web esta siendo atacado

Limpiamos logs para aumentar limpiar nuesto disco duro

A raíz de estar nuestro servidor web atacado ha generado muchisimos logs que nos van a ocupar un espacio innecesario en nuestro disco duro. Os recomiendo mirar y vaciar carpetas con logs ya que vais a poder aumentar espacio en el disco duro de manera bastante sencilla.

Los logs de su servidor en Plesk para borrar estan en las siguientes carpetas:

  • Logs del sistema: /var/log/
  • Backups de Plesk: /var/lib/psa/dumps/
  • Ficheros temporales de Plesk: /usr/local/psa/PMM/tmp/
  • Ficheros temporales del servidor: /tmp/
  • Sitios web: /var/www/vhosts/
  • Buzones de correo: /var/qmail/mailnames/
  • Bases de datos: /var/lib/mysql/

Desde SSH vamos a usar el comando:

du -h /var/log/*

Con este comando vamos a listar el contenido de la carpeta log por ejemplo y mostrar el espacio que ocupan cada uno de los directorios o archivos.

Con el comando rm en tu consola ya vas borrando los logs mas pesados y dejando los que te gustaría conservar. En mi ocasion tras hacer limpieza el servidor ha liberado bastante espacio para continuar trabajando correctamente.

Más acciones si tu servidor web esta siendo atacado

Como he comentado mas arriba si estas bajo un ataque DDoS necesitas puedes intalar el servicio gratuito de CDN que te va a cubrir las espaldas y hacer que tu web resista a los ataques de los hacker o almenos que lo haga algo mas complicado.

Instalaremos el Cloudflare para mitigar todo el trafico entrante.

En detalle no voy a explicarlo en este post, lo dejo para el siguiente pero pueden mirar como hacerlo ya que es muy sencillo.

Revisar la web de virus

Tienes que estar seguro de que tus sitios web no esten infectados. A medida que es posible usa programas con licencia y no le toques los eggs a los desarrolladores. Existen bastantes servicios que pueden realizar auditorias de tu web en timpo real en busca de actividades maliciosas. En plesk por ejemplo tenemos ImunifyAV. Me ayudo a detectar que archivos eran los que estaban infectados y poder ponerle remedio a ello.

Verifica en tu servidor si no tienes registros extraños como query (cache) ‘sl/ANY/IN’ denied y que tus logs esten correctos.

Recomendaciones antes de que tu servidor web este siendo atacado

Firewall

Configura un firewall en tu servidor para controlar el tráfico de red entrante y saliente.

Actualizaciones regulares

Mantén actualizado el software del servidor web, incluyendo el sistema operativo, el servidor web y cualquier otro software relacionado.

Configuración segura

Asegúrate de configurar correctamente tu servidor web y otros servicios relacionados para deshabilitar funciones y servicios innecesarios, limitar los privilegios de usuario, utilizar conexiones seguras y configurar contraseñas fuertes.

Monitoreo de registros

Configura un sistema de monitoreo de registros para supervisar la actividad en tu servidor web y responder automáticamente a patrones de comportamiento malicioso.

Protección contra DDoS

Considera utilizar servicios de protección contra ataques de denegación de servicio distribuido (DDoS) proporcionados por proveedores de seguridad en la nube.

Respuesta rápida

Ten un plan de respuesta a incidentes en su lugar para actuar rápidamente en caso de un ataque, incluyendo la suspensión de servicios afectados y la implementación de medidas de seguridad adicionales.

Conclusion si tu servidor web esta siendo atacado

Si tu servidor web está siendo atacado, es importante tomar medidas rápidas y efectivas para mitigar el impacto del ataque y proteger la integridad y disponibilidad de tus servicios en línea. Esta vez podría decir que no me ha pasado mucho factura pero quien sabe quizas en un futuro esto me ayude cuando vuelva a ser atacado.

0 0 votos
Article Rating
Subscribirse
Notificacion de
guest
0 Comments
Feedbacks en línea
Ver todos los comentarios