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.
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.
# 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 ve | Causa 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 correo | Spam, o un script de correo hackeado |
| Tasa muy alta de paquetes UDP o SYN hacia uno o unos pocos destinos | Participación en un DDoS |
| Conexiones constantes a puertos como 3333 o 4444 | Minería de criptomonedas (normalmente admisible en cuanto a tráfico, pero puede infringir sus condiciones) |
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).
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.
# 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
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.
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.
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.