martes, 25 de septiembre de 2007

El NTP de los pobres


Bueno, de los pobres, o de los vagos, o de los kutres....el caso es que aquí va mi segundo kutre-script.

Hace unos meses, me encontré en una red en la que el UDP estaba capado... yo tampoco sé en qué estarían pensando cuando decidieron esa política de seguridad, pero los caminos de lo políticos haciendo de admin son inescrutables.

El caso es que estuve investigando alguna solución que permitiese hacer NTP por TCP y no encontré nada.
La siguiente opción consistía en encapsular UDP dentro de TCP, pero no era viable al tratarse de una red aislada, sin otras redes de apoyo externas o que dieran este tipo de servicos. Además están muy desaconsejados este tipo de workarounds.
Por último, yo que antes de nada soy práctico, pensé "¿porqué no hago la consulta a algún servidor web y le meto la hora a las bravas?". Y a mí todo lo que sea meter a las bravas siempre me ha parecido una buena idea, así que creé el siguiente kutre-script:

root@osaka:~# cat /usr/local/bin/time_sync.sh
#!/bin/bash
date -u -s "`wget -O- http://www.time.gov/timezone.cgi?UTC/s/0 2> /dev/null \
| sed -n -e 's/.*size="[75]".*>\(.*\)<br>$/\1/p'`" >& /dev/null


¿Se nota que estoy intentando aprender bash scripting? xD

Ahora sólo hay que añadirlo al cron del usuario root. Para editar el cron, desde una terminal de root, ejecutamos:
root@osaka ~-> crontab -e

Y añadimos la siguiente linea:
00 09 * * * root /usr/local/bin/time_sync.sh

Yo sólo sincronizo una vez al día, porque a la peña de las páginas web les sienta muy mal que utilicen sus páginas las máquinas en vez de las personas, y no es plan de que se cabreen y pongan CAPTCHAs ^_^. Si quieres ponerlo más a menudo, ya sabes:
man -S 5 crontab

Por si un copypaste es demasiado kurro time_sync.sh

PD: Por supuesto, gracias a la gente de http://www.time.gov/ , sin vosotros esto no habría sido posible xDD

NOTA: He actualizado el artículo y el script porque ha cambiado la URL desde la que extraer la hora.
Ya sabes: apt-get update && apt-get upgrade net_para_los_pobres (just kidding)

3 comentarios:

moz667 dijo...

Para la gentooza :

emerge -va openntpd

nano -w /etc/conf.d/ntpd
NTPD_OPTS="-s"

/etc/init.d/ntpd start

rc-update -a ntpd default

http://www.openntpd.org/

Salud3!

bpk dijo...

Estoooo, por lo que veo eso es una implementación de NTP, y por lo tanto usa UDP, ¿no?

moz667 dijo...

ups no me lei lo del udp.... XD en q estaria pensando cuando puse el comentario.....

Acepta mis disculpas pedrin.

Entonces lo mejor es hacer

emege -va net-misc/htpdate

nano -w /etc/conf.d/htpdate

Meter algun server, por ejemplo www.google.es www.yahoo.es ...

SERVERS="www.google.es www.yahoo.es"

y arrancar el servicio.

/etc/init.d/htpdate start

Si todo va bien meterlo al arranque

rc-update -a htpdate default

y listo...

La verdad es que me ha gustado mucho, es muy ligerito y facil de usar. Posiblemente sustituya el openntpd por este.

Mas info y descargas en :

http://www.clevervest.com/htp

Seguidores