El error del título podemos verlo tanto en la salida del comando dmesg como en el log messages. Básicamente nos está indicando que se están denegando paquetes debido a que la tabla/buffer de netfilter nf_conntrack/ip_conntrack, donde se almacena un registro de las conexiones activas en la máquina está llena:
# dmesg ... ... nf_conntrack: table full, dropping packet. nf_conntrack: table full, dropping packet. nf_conntrack: table full, dropping packet. nf_conntrack: table full, dropping packet. nf_conntrack: table full, dropping packet. nf_conntrack: table full, dropping packet. nf_conntrack: table full, dropping packet. nf_conntrack: table full, dropping packet. nf_conntrack: table full, dropping packet. nf_conntrack: table full, dropping packet. ... ...
El problema puede residir tanto en un ataque puntual o que realmente el tráfico legítimo que recibe la máquina es muy grande. Tanto en un caso como en otro la solución rápida es modificar este parámetro del kernel y aumentar su valor. Os recomiendo revisar este otro artículo sysctl y /proc/sys – modificar parámetros de kernel para ampliar la información.
Lo primero que debemos ver es, por un lado el valor máximo actual y el valor en uso:
$ cat /proc/sys/net/netfilter/nf_conntrack_count 62686 $ cat /proc/sys/net/netfilter/nf_conntrack_max 65536
La primera orden nos dice el número de entradas en la tabla y el segundo el máximo. Como vemos estamos a punto de llegar al límite. Cuando esto suceda se comenzarán a descartar paquetes. Podemos entonces ampliar temporalmente (no sobrevive a renicios) el nº de entradas máximas en la tabla (ponemos el doble):
# sysctl -w net.netfilter.nf_conntrack_max=131072 net.netfilter.nf_conntrack_max = 131072
Si quisieramos hacerlo persistente a reinicios, lo modificaríamos en el fichero /etc/sysctl.conf añadiendo:
net.netfilter.nf_conntrack_max=131072
Excelente articulo, me sirvio mucho. yo trabajo con routers bajo linux y empecé a tener problemas con lo detallado, pero solucioné con los tips que posteaste.
Muchas gracias