El NTP (Protocolo de Red de Tiempo, Network Time Protocol) es bastante simple en cuanto a su misión, mantiene sincronizados los relojes de los ordenadores. ¿Y qué? Intenta comparar ficheros de log desde 3 servidores separados si sus relojes están fuera de sincronismo por unos cuantos minutos. El NTP funciona simplemente mediante un cliente que se conecta a un servidor de tiempo, averiguando el retraso entre ellos (en una red de área local podría ser de sólo 1-2ms, a través de internet puede ser de varios cientos de ms), y después pregunta la hora y configura el reloj propio. Además, los servidores se pueden colocar en "cluster" para mantenerse sincronizados entre ellos, las posibilidades de que 3 o más servidores pierdan la pista de la hora que es (también llamado "deriva", "drift" ) es relativamente baja.
Habitualmente, la señal de tiempo se suele generar por un reloj atómico o una señal GPS, medida por un ordenador, estos son los servidores "stratum 1", más abajo se indican servidores de tiempo "stratum 2" que se encuentran generalmente abiertos al público, una compañía podría mantener sus propios servidores de tiempo "stratum 3" si es lo suficientemente necesario, etcétera.
Los datos que intercambia el NTP por supuesto que no son sensibles, es una señal de tiempo, sin embargo, si a un atacante le fuese posible interferirla, podrían ocurrir todo tipo de cosas desagradables: los ficheros de log se podrían volver inutilizables, las cuentas podrían expirar antes de tiempo, los trabajos del cron que hacen la copia de seguridad del servidor se podrían ejecutar en hora punta causando retrasos, etc. De modo que es una buena idea ejecutar tu propio servidor de tiempo y configurar el ajuste máximo que harán a sólo unos pocos segundos (en cualquier caso, tampoco deberían derivar mucho más). Si se es realmente paranoico, o se tiene un gran número de clientes, habría que considerar comprar una unidad de tiempo GPS.
Vienen de todo tipo de formas y tamaños, desde un rack de 1Unidad que se enchufa directamente a la LAN hasta tarjetas ISA o PCI que se conectan en un servidor y tienen una antena. Es una buena idea filtrar con el cortafuegos el servidor de tiempo, puesto que podrían darse ataques de negación de servicio en detrimento de la red. Además de esto, si es posible, utilizar el cifrado disponible en ntpd, basada en DES, suele ser suficiente para desalentar a la mayoría de atacantes. El NTP se encuentra disponible en: http://www.eecis.udel.edu/~ntp/. Generalmente, ntpd o xntpd no suelen traer páginas de manual (genial, eh?) pero se puede encontrar documentación en /usr/doc/ntp-xxx/, o en: http://www.eecis.udel.edu/~ntp/ntp_spool/html/index.htm. NTP se ejecuta en el puerto 123 utilizando udp y tcp, de modo que filtrarlo con el cortafuegos es relativamente sencillo:
ipfwadm –I –a accept –P udp –S 10.0.0.0/8 –D 0.0.0.0/0 123
ipfwadm –I –a accept –P udp –S un.host.fiable –D 0.0.0.0/0 123
ipfwadm –I –a deny –P udp –S 0.0.0.0/0 –D 0.0.0.0/0 123
ipfwadm –I –a accept –P tcp –S 10.0.0.0/8 –D 0.0.0.0/0 123
ipfwadm –I –a deny –P tcp –S 0.0.0.0/0 –D 0.0.0.0/0 123
o
ipchains –A input –p udp –j ACCEPT –s 10.0.0.0/8 –d 0.0.0.0/0 123
ipchains –A input –p udp –j ACCEPT –s un.host.fiable –d 0.0.0.0/0 123
ipchains –A input –p udp –j DENY –s 0.0.0.0/0 –d 0.0.0.0/0 123
ipchains –A input –p tcp –j ACCEPT –s 10.0.0.0/8 –d 0.0.0.0/0 123
ipchains –A input –p tcp –j ACCEPT –s un.host.fiable –d 0.0.0.0/0 123
ipchains –A input –p tcp –j DENY –s 0.0.0.0/0 –d 0.0.0.0/123
Copyright © 1999, Kurt Seifried, José Antonio Revilla
Todos los derechos reservados.