Limitar tráfico NTP con iptables
Durante las últimas semanas estábamos recibiendo más tráfico NTP del habitual en el servidor. Tras investigar un poco, observamos que muchos servidores generaban muy pocas peticiones —que es el comportamiento habitual de NTP—, mientras que unos pocos generaban la gran mayoría del tráfico. Para limitar el tráfico NTP se utilizaron varias reglas iptables propuestas por Kamau Wanguhu:
iptables -A INPUT -p udp -m udp --dport 123 -m recent --set --name limitarNTP --rsource iptables -A INPUT -p udp -m udp --dport 123 -m recent --update --seconds 30 --hitcount 10 --name limitarNTP --rsource -j DROP iptables -A INPUT -p udp -m state --state NEW -m udp --dport 123 -j ACCEPT
Esta configuración permite que cada máquina realice un máximo de 10 peticiones cada 30 segundos. Además, aumentamos la cantidad de direcciones IP que el módulo registra mediante el fichero de configuración /etc/modprobe.d/ipt_recent.conf cuyo contenido quedó así:
options ipt_recent ip_list_tot=60000 ip_pkt_list_tot=40
Varias máquinas que tenemos sincronizadas con este servidor horario siguieron funcionando sin problema y el pool NTP continuó dando por bueno nuestro servidor. En cambio, los boots que estaban haciendo decenas de peticiones fueron bloqueados. El tráfico del servidor cayó notablemente durante los días siguientes: