rsync


El rsync es un método extremadamente eficiente para hacer mirroring de ficheros, ya sea de ficheros de código desde un árbol CVS, un sitio web, o incluso este documento. rsync mantiene los permisos de ficheros, enlaces, hora de los ficheros y más. Además de esto, soporta modo anónimo (lo cual por cierto, utilizo para hacer el mirroring de este documento) lo cual hace la vida muy sencilla en lo concerniente. El programa rsync puede actuar por sí mismo como cliente (se ejecuta desde una línea de comandos o un script) y como servidor (generalmente se ejecuta desde inetd.conf). El programa en sí es bastante seguro: no requiere privilegios de root para ejecutarse como cliente ni como servidor (aunque se puede hacer si se quiere) y se puede hacer chroot a sí mismo en el directorio raíz o cualquiera que esté siendo hecho mirror (sin embargo esto requiere privilegios de root y puede ser más peligroso de lo que merezca la pena). También se puede mapear el id del usuario y el id del grupo con acceso al sistema (por defecto, es nobody para la mayoría de los paquetes de rsync precompilados y probablemente sea la mejor elección). En modo no-anónimo, rsync soporta nombres de usuarios y contraseñas que se cifran fuertemente utilizando MD4 de 128 bit. La página del manual "man rsyncd.conf" cubre claramente la configuración de un servidor rsync y lo hace relativamente seguro. El fichero de configuración por defecto es /etc/rsyncd.conf. Tiene una sección global y sección modular (básicamente cada directorio compartido es un módulo):

ejemplo de rsyncd.conf

motd file = /etc/rsync.motd # Especifica fichero a mostrar

etcmax connections = 5 # número máximo de conexiones, para evitar saturación

[pub-ftp]

comment = public ftp area # comentario simple

path = /home/ftp/pub # path al directorio exportado

read only = yes # hacerlo de sólo lectura, para directorios exportados

chroot = yes # chroot a /home/ftp/pub

uid = nobody # configurar explícitamente el UID

gid = nobody # configurar explícitamente el GID

[asuntos-secretos]

comment = mis asuntos secretos

path = /home/user/secretos # path a mis secretos

list = no # ocultar este módulo cuando pidan una lista

secrets file = /etc/rsync.users # fichero de contraseñas

auth users = me, bob, santa # lista de usuarios a los que se permite ver mis secretos

hosts allow = 1.1.1.1, 2.2.2.2 # lista de hosts permitidos

Como se puede ver, el rsync es bastante configurable, y generalmente es bastante seguro, excepción hecha de que las transiciones de ficheros no van cifradas de ninguna forma. Si se necesita seguridad, sugeriría utilizar el SSH para abrir una conexión mediante un túnel, o alguna solución VPN como FreeS/WAN. Igualmente asegúrate de estar ejecutando rsync 2.3.x o una versión más alta, ya que se encontró un compromiso de root en la 2.2.x. Rsync se encuentra disponible en: http://rsync.samba.org/. Rsync se ejecuta en el puerto 873, tcp.

ipfwadm –I –a accept –P tcp –S 10.0.0.0/8 –D 0.0.0.0/0 873

ipfwadm –I –a accept –P tcp –S un.host.fiable –D 0.0.0.0/0 873

ipfwadm –I –a deny –P tcp –S 0.0.0.0/0 –D 0.0.0.0/0 873

o

ipchains –A input –p tcp –j ACCEPT –s 10.0.0.0/8 –d 0.0.0.0/0 873

ipchains –A input –p tcp –j ACCEPT –s un.host.fiable –d 0.0.0.0/0 873

ipchains –A input –p tcp –j DENY –s 0.0.0.0/0 –d 0.0.0.0/0 873


Volver


Copyright © 1999, Kurt Seifried, José Antonio Revilla

Todos los derechos reservados.