En mi trabajo apunto un monton de cosas cada dia, comandos, trucos,… porque recordarlo todo seria imposible. Tambien creo que apuntarlo hacer que lo recuerde, y si no, al menos recuerdo haberlo apuntado, con lo que suele ser mas facil encontrarlo cuando lo necesite. Son mis “chuletas”; forman mi repositorio de chuletas.
La cuestion es ?donde poner estas chuletas? Si las tengo en el trabajo, desde casa no tendria acceso. Y vice-versa. Por lo que hasta hace poco las tenia replicadas entre un equipo de casa y uno del trabajo (ambos linux), por medio de un script basado en rsync (y un par de tuneles ssh) y del socorrido cron para automatizarlo todo. La verdad es que estaba bien montado, con una sincronizacion “2-way”, es decir que si actualizaba algo durante el dia en el trabajo, al llegar a casa ya estaba en mi repositorio de casa. Y si actualizaba algo en casa, el dia siguiente ya lo tenia en el trabajo. No me tenia que preocupar. Tambien me valia de backup.
El problema es que ahora ya no me vale esta solucion… Asi que me puse a buscar otra, que se pueda usar a traves de un proxy web (en general es la unica salida al exterior que solemos tener en desde la empresa). Tambien intento evitar cosas raras como tuneles TCP a traves de proxy, porque prefiero una solucion estandar que no necesite que instale nada (o muy poco).
De momento he encontrado 2 formas muy interesantes de conectarme a traves de un proxy corporativo a mis ficheros de casa.
La primera es mediante WebDAV: basicamente es como montar una unidad compartida por HTTPS (web-share):
Web-based Distributed Authoring and Versioning: …The protocol’s aim was to make the Web a readable and writable medium, in line with Tim Berners-Lee’s original vision. It provides functionality to create, change and move documents on a remote server (typically a web server or “web share”)…
Montar un WebDAV es algo muy sencillo con Apache2. Basta con activar los modulos dav y dav_fs con a2enmod y configurar unas pocas lineas en el .conf del virtual host correspondiente. Sobre este punto, los siguientes links aportan la informacion mas que necesaria para configurar WebDAV con Apache2:
# HOW-TO: Red Hat 9 – Apache 2 – WebDAV
# No pain no gain » Howto enable WebDAV in Apache
Respecto al tema de seguridad de acceso y a la privacidad de los datos transferidos, no me preocupo porque he activado SSL en mi apache y por lo tanto el trafico entre ambos extremos esta cifrado.
Con esto que logramos: poder abrir el directorio WebDAV desde XP con el explorer, para abrir, modificar, borrar ficheros:

Lo malo de esto es que las modificaciones que se hacen en el directorio compartido por WebDAV (en el servidor) se hacen con el usuario del apache (www-data en Debian). Esto no mola mucho. Incluso si se pueden definir directorios por cada usuarios que pueda entrar, al final en la maquina todos pertenecen al www-data. En mi caso, como tambien entro en la maquina en local (ssh, samba,…) no me vale tener los ficheros con el usuario del apache. Para remediar esto, se puede hacer un cron (que se lance como root) para cambiar el propietario/grupo y los permisos de los ficheros cada x tiempo. (No es muy limpio, pero por lo visto no hay otra solucion que se haya desarrollado).
Por lo tanto, con un directorio WebDAV, uno puede tener acceso desde el trabajo a un repositorio de ficheros que tenga compartido desde su casa. (Lo he probado con XP solo).
Mientras estaba montando esto del WebDAV, encontre un script php muy interesante, tambien relacionado con el tema del acceso remoto (por http(s)): smbwebclient.php. La instalacion del script no presenta dificultad (teniendo un apache con soporte para php). Una vez instalado, el script permite navegar por la red Microsoft (o Samba) en la que este el servidor web (en mi caso la red Samba de mi casa). Si solo tenemos una maquina, el servidor Web, supongamos que hemos compartido por samba algunos directorios, pues con abrir con un navegador la pagina del smbwebclient, podremos navegar por estos directorio. El script gestiona la autenticacion en la red (pide el usuario del workgroup/dominio para acceder a los shares). Si tenemos toda una red Samba, podemos acceder a toda ella mediante smbwebclient simplemente por Web.
En la web oficial hay una demo que permite probarlo:
Con smbwebclient tambien es recomendable usar SSL, para que tanto la autenticacion como el trafico de datos este cifrado.
Mientras WebDAV permitia una navegacion del directorio compartido integrada en XP, en el caso de smbwebclient la navegacion se hace con el navegador (puede ser mas portable, independientemente del SO, y sin necesidad de ningun cliente WebDAV). Por otra parte, smbwebclient permite acceder a mas cosas que WebDAV (toda la red Samba), y deja los ficheros con el usuario que toca, no el www-data.
Son realmente dos soluciones muy interesantes para poder acceder a nuestros ficheros en remoto a traves de http(s).
Ahora, respecto al tema de la sincronizacion bidireccional, encontre una herramienta, Super Flexible File Synchronizer, que permite sincronizar ficheros entre dos directorios, y soporta multiples protocolos (smb, ftp, sftp…) pero el que mas me interesaria en este caso es que soporta WebDAV! (esto todavia no lo he probado, pero en breve lo hare!).
Por lo tanto, creo que me quedare con ambas soluciones de acceso remoto, poniendo mi repositorio de chuletas en el WebDAV, con un cron que me fije el propietario y los permisos regularmente. En el trabajo configurare el Super Flexible File Synchronizer para sincronizar las chuletas (2way) con el WebDAV. Para acceder al resto de ficheros, bien desde el trabajo, o desde donde sea, podre tambien usar smbwebclient.
(Vaya ladrillo acabo de escribir… Enhorabuena a quien me haya leido hasta el final!).