Virtualización (Proxmox / KVM)

VPS abusivos en un nodo: cómo detectar y detener ataques, spam y escaneos en KVM y Proxmox

6 pasos 16 min de lectura 70 vistas 0
Contenido

En un nodo host, el VPS de un solo cliente puede poner en riesgo todo el negocio. Un VPS que escanea internet, envía spam o participa en ataques DDoS genera quejas de abuso, hace que sus IP acaben en listas negras como Spamhaus y puede provocar que se filtre el bloque de IP completo. Esta guía muestra cómo encontrar rápidamente el VPS responsable en un host KVM (Proxmox VE o cualquier configuración con puente de Linux), reconocer el tipo de abuso, detenerlo sin afectar a otros clientes y prevenir los casos más comunes.

Actúe rápido, pero conserve las pruebas. Antes de detener un VPS, guarde la salida de los comandos (contadores de tráfico, muestras de tcpdump, listas de conexiones). La necesitará para responder a la queja de abuso, hablar con el cliente y, si es necesario, justificar una suspensión conforme a sus condiciones de servicio.

Señales típicas

  • Una queja de abuso de su proveedor o de un operador de listas negras que menciona una o varias de sus IP.
  • Tráfico saliente o paquetes por segundo en el host muy por encima de lo normal, sobre todo muchos paquetes pequeños.
  • La tabla conntrack del host se llena, o el host se vuelve lento sin que ningún VPS consuma mucha CPU.
  • El correo enviado desde sus IP es rechazado, o sus IP aparecen en listas RBL (consulte comprobar si una IP está en listas negras).

Paso 1: Encontrar qué VPS está enviando el tráfico

Cada VPS KVM tiene su propia interfaz tap en el host (en Proxmox VE, tap101i0 para la VM 101). En una interfaz tap, los contadores se ven desde el lado del host, así que rx es lo que el VPS envía y tx es lo que recibe.

# Packets and bytes each VPS sent in the last 10 seconds (rx on the tap = outbound from the VPS)
for t in /sys/class/net/tap*; do n=$(basename $t); echo "$n $(cat $t/statistics/rx_packets) $(cat $t/statistics/rx_bytes)"; done > /tmp/a
sleep 10
for t in /sys/class/net/tap*; do n=$(basename $t); echo "$n $(cat $t/statistics/rx_packets) $(cat $t/statistics/rx_bytes)"; done > /tmp/b
join /tmp/a /tmp/b | awk '{printf "%-12s %8d pps %8.1f Mbps\n", $1, ($4-$2)/10, ($5-$3)*8/10/1000000}' | sort -k2 -nr | head

# Live view of who talks to whom on the bridge
iftop -i vmbr0 -nNP

Un VPS que envía decenas de miles de paquetes por segundo con pocos Mbps suele estar haciendo flooding o escaneando; un flujo constante de conexiones al puerto 25 suele ser spam.

Paso 2: Identificar el tipo de abuso

# Sample the traffic of one VPS (replace tap101i0)
tcpdump -ni tap101i0 -c 300 -w /root/evidence-vps101-$(date +%F-%H%M).pcap
tcpdump -nr /root/evidence-vps101-*.pcap | head -50

# Outgoing SMTP connections (spam)
tcpdump -ni tap101i0 'tcp dst port 25 and tcp[tcpflags] & tcp-syn != 0' -c 50

# Connections tracked for the VPS's IP (apt install conntrack)
conntrack -L -s 203.0.113.11 2>/dev/null | wc -l
conntrack -L -s 203.0.113.11 2>/dev/null | awk '{print $5}' | sort | uniq -c | sort -nr | head
Lo que veCausa probable
Paquetes SYN hacia muchas IP distintas en el mismo puerto (22, 23, 3389, 80)Escaneo de puertos o fuerza bruta, a menudo desde un VPS comprometido
Muchas conexiones al puerto 25 de distintos servidores de correoSpam, o un script de correo hackeado
Tasa muy alta de paquetes UDP o SYN hacia uno o unos pocos destinosParticipación en un DDoS
Conexiones constantes a puertos como 3333 o 4444Minería de criptomonedas (normalmente admisible en cuanto a tráfico, pero puede infringir sus condiciones)

Paso 3: Detener el abuso

Elija la medida más suave que resuelva el problema y endurézcala si continúa.

# Throttle the VPS immediately to about 8 Mbps (rate is in MB/s; keep the NIC's MAC from "qm config")
qm set 101 --net0 virtio=BC:24:11:AA:BB:CC,bridge=vmbr0,firewall=1,rate=1

# Block outbound SMTP for this VPS with the Proxmox firewall
cat >> /etc/pve/firewall/101.fw <<'EOF2'

[RULES]
OUT DROP -p tcp -dport 25 -log nolog
EOF2

# Pause the VPS (keeps memory state for investigation) or shut it down
qm suspend 101
qm shutdown 101

Si la sección [RULES] ya existe en el archivo, añada la regla allí en lugar de agregar una segunda sección. Después, informe al cliente de lo que ha observado, con las pruebas, y de lo que debe corregir; un VPS comprometido normalmente necesita una reinstalación y contraseñas nuevas (consulte encontrar y eliminar malware en Linux).

Paso 4: Responder a la queja de abuso

Responda a la queja sin demora indicando la IP afectada, la hora en que identificó el origen, la medida adoptada (limitación de velocidad, bloqueo del puerto 25, suspensión del VPS) y que se ha contactado con el cliente. Las respuestas rápidas y claras son lo que mantiene la buena reputación de un bloque de IP ante las redes upstream y los operadores de listas negras.

Paso 5: Prevenir los casos más comunes

  • Bloquee el puerto 25 saliente de forma predeterminada en los nuevos VPS con un grupo de seguridad de Proxmox, y ábralo solo a los clientes que lo soliciten y cuya configuración de correo le inspire confianza.
  • Active el filtrado de IP para que un VPS solo pueda usar sus propias direcciones (consulte vender VPS desde un nodo host Proxmox).
  • Establezca límites razonables de ancho de banda y de paquetes por plan, para que un VPS no pueda saturar el enlace de subida.
  • Supervise de forma continua: recopile el tráfico de cada VPS con vnStat en las interfaces tap o con una herramienta como Netdata, y configure alertas ante tasas de paquetes inusuales.
  • Conozca a sus clientes: verifique los nuevos registros y vigile los pedidos de alto riesgo; la mayor parte del abuso procede de un número reducido de cuentas.
# Datacenter-wide security group in /etc/pve/firewall/cluster.fw
[group no-smtp]
OUT DROP -p tcp -dport 25 -log nolog

# Use it in each VPS file, e.g. /etc/pve/firewall/101.fw
[RULES]
GROUP no-smtp

Preguntas frecuentes

¿El VPS no usa mucho ancho de banda, pero aun así he recibido una queja?

Los escaneos y los intentos de fuerza bruta consumen muy poco ancho de banda. Fíjese en las tasas de paquetes y en el número de conexiones (pasos 1 y 2), no solo en los Mbps.

¿Cómo encuentro el VPS si solo tengo una IP de la queja?

Busque en su panel o en las configuraciones de las VM: grep -r 203.0.113.11 /etc/pve/qemu-server/ /etc/pve/firewall/ muestra qué VM usa esa IP.

¿Qué ocurre si no se atiende el abuso?

El abuso reiterado o sin respuesta hace que las IP acaben en listas negras y puede obligar a su proveedor upstream a filtrar las direcciones afectadas para proteger su red. Actuar con rapidez siguiendo los pasos anteriores y responder a la queja explicando lo que hizo limita el impacto al VPS implicado.

¿Sigue sin resolverlo después de seguir estos pasos? Abra un ticket de soporte y el equipo técnico de IMIDC, disponible 24/7, le ayudará. Incluya la IP del servidor host, las direcciones IP afectadas, la referencia de la queja de abuso y la salida de los comandos anteriores para que podamos localizar el problema más rápido.

¿Fue útil la respuesta?

Tutoriales relacionados