Sunteți pe pagina 1din 4

PRCTICO Calendario Darwin

Una agenda local junto con una libreta de direcciones para pequeos grupos

ADMINISTRACIN CENTRALIZADA
Mantener la agenda y los contactos de toda la familia en un servidor en casa no supone ningn problema con el software Darwin Calendar y Contacts Server. POR JAN RHM
ntentar mantener sincronizados los datos de la agenda y los contactos entre un pequeo grupo de personas puede llevarnos a la desesperacin. En algunos casos, servicios como Google, Yahoo o similares pueden ser de ayuda. Google y Yahoo son incluso gratuitos en sus versiones bsicas, aunque su rendimiento a la hora de realizar la sincronizacin pueda dejar mucho que desear, producindose inconsistencias en el uso diario. Aparte del precio y del rendimiento, hay otro gran problema: Tenemos realmente el control de nuestros datos? Qu hacen estos proveedores con las direcciones que recopilan? Habr alguien pendiente de nuestras citas? Quin puede acceder a nuestros contactos en caso de emergencia? Si no logramos encontrar respuestas satisfactorias a estas u otras cuestiones, o si tenemos entradas confidenciales en nuestra libreta de direcciones, no nos quedar otra alternativa que administrarnos nosotros mismos la agenda y la libreta de direcciones con un software espe-

Shadowkill, sxc.hu

CALDAV y CARDAV
CalDAV (RFC 4791) define la administracin de tareas, tiempos de ocio y negocio, as como la forma en la que los usuarios pueden publicar los datos por medio de HTTP y cmo intercambiarlos o colaborar con otros usuarios [2]. El estndar CarDAV (RFC 6352) es similar a CalDAV pero basado en la administracin e intercambio de informacin de contacto [3].

cializado. Ante este caso, podemos servirnos de la ayuda de Darwin Calendar and Contacts Server (CACS) [1]. El servidor Darwin es de cdigo abierto y se encuentra disponible para su descarga desde Mac OS Forge. Viene con licencia Apache 2.0, que le da al pblico general permiso para modificarlo, distribuirlo y, sobre todo, usar libremente el software si nos atenemos a un par de reglas bsicas. Pero CACS ofrece tambin otros beneficios. Como algunos programas de su clase, mantiene ms o menos compatibilidad completa con los estndares CalDAV y CardDAV. Esto quiere decir que los campos del programa de agenda del escritorio podrn transferirse como los mismos campos a la agenda del telfono mvil. Linux tiene soporte limitado para CardDAV y CalDAV. Las clsicas suites PIM tienen problemas a la hora de dialogar con el servidor, y los fabricantes de software para dispositivos mviles ignoran tanto CardDAV como CalDAV en su mayor parte. En el lado de los dispositivos mviles, slo los que poseen iOS soportan por ahora ambos formatos de forma nativa, aunque los telfonos con Android pueden resolver este problema con aplicaciones adicionales. Las noticias desde el mundo de Windows Phone 7 son que no hay opcin desde el punto de vista retrospectivo para aadir esta funcionalidad. En este artculo se va a describir cmo configurar el servidor de agenda y contactos Darwin en una mquina Linux y conectarla con el cliente de correo y agenda Evolution.

Hardware y Software
El servidor de agenda y contactos es bastante fcil de montar. Desde el punto de vista del hardware, las mquinas antiguas son ideales y, como cualquier otro servidor, necesitarn una buena cantidad de memoria no menos de 1GB de RAM si es posible. Lo aconsejable es tener dos veces esta cantidad, especialmente si los usuarios van a utilizar intensivamente este servidor. Adems, habr que ser respetuoso con respecto al uso de energa. Si la idea es tener el servidor en funcionamiento durante 24/7, un viejo porttil o una mquina con procesador Atom sera perfecto. Con independencia del hardware escogido, habr que cumplir con dos requerimientos software. Mi eleccin a la hora de escoger un sistema operativo ha sido la versin Ubuntu 11.04 Desktop. Tras instalar las ltimas actualizaciones, hay que instalar los paquetes attr, svn, curl, libreadline-dev, zlib1g-dev, pythondev y libsasl2-dev por medio del gestor de paquetes. Con esto slo queda el servidor. En el laboratorio obtuve una copia del ltimo paquete fuente directamente del sistema de versiones. Por otro lado, se puede utilizar el paquete ya compilado de los repositorios de Ubuntu y Debian, aunque estn basados en la versin 2.4 del servidor, ya obsoleta, a la que le faltan algunas funciones.

Instalacin
Para descargar el cdigo fuente hay que crear primero un directorio llamado CACS donde

28

Nmero 84

WWW.LINUX- MAGAZINE.ES

Calendario Darwin PRCTICO

Manzanas, Direcciones y Agendas


Tanto la libreta de direcciones de Mac OS X como el programa de agenda nativo iCalc funcionan perfectamente con el servidor. Ninguno de estos programas se ve afectado por la eleccin que se haya hecho del sistema operativo. Los programas simplemente necesitan conocer la direccin del servidor, el nombre de usuario y la contrasea para conectarse al servicio si se tiene al menos Mac OS X 10.7.

instalador con la opcin -s, actualizara el cdigo fuente con la ltima revisin. Antes de pasar a la instalacin, habr que preparar el sistema de ficheros del servidor. Para ello, tecleamos

$ cp conf/auth/accounts.xml U conf/auth/accounts-dev.xml

queramos, por ejemplo, en nuestro directorio home. Desde la lnea de comandos tecleamos:
$ cd CACS $ svn co http://svn.macosforgeU .org/repository/calendarserver/U CalendarServer/trunk/ U CalendarServer

sudo gedit /etc/fstab

para abrir la configuracin que define cmo tiene el sistema que montar las particiones con los privilegios del root. Luego hay que aadir user_xattr a la entrada que describe las particiones del servidor,
UUID=<I>f8119609-d18d-4bb8-8fbbU -3b63b95c00e2<I> / ext4 U user_xattr,errors=remount-ro 0 1

Abrindolo con un editor de textos, hay que borrar todas las entradas que se encuentran entre las lneas <accounts realm=Test Realm> y </accounts>. Luego, aadimos las entradas de ejemplo que aparecen en el Listado 1 y lo guardamos. Cada entrada contiene un uid opcional para cada nombre de usuario, un guid como identificador nico global y una contrasea. Las entradas name, first-name, last-name y email-address tambin son opcionales. La clave aqu se encuentra en la entrada guid.

Primer Arranque
Para arrancar el servidor, tecleamos ./run en el directorio ~/CACS/CalendarServer/. El programa comprueba ahora las dependencias, las actualiza si fuera necesario, y luego ejecuta la aplicacin. Algunos comandos parpadearn por la consola. El programa se estar ejecutando con xito si vemos la siguiente lnea: AMP connection established. Para ejecutar el servidor sin comprobar las actualizaciones y comprobar las dependencias tendremos que aadir el parmetro -n. El parmetro -d ejecuta el programa como servicio y lo pasa a ejecutar en segundo plano. El siguiente comando
./run -k

para entrar en el directorio que hayamos creado y descargar la imagen actual de la versin en desarrollo. Dependiendo de la velocidad de la conexin a Internet, esta operacin puede tardar un rato. En las pruebas, la imagen de la revisin 8047 ocup 33MB de espacio en disco. Sin embargo, con las dependencias que hay que satisfacer durante la instalacin, el espacio en disco se increment a ms de 250MB. Aunque normalmente la instalacin finaliza sin errores, cuando intent compilar el cdigo fuente de memcached, el compilador se bloque. Para solucionarlo, hay que descargarse el parche [4] y parchear el software con
cd memcached-1.4.x $ patch < U /ruta/al/parcheU /fix-strict-aliasing.patch

como se muestra en este ejemplo.

Configuracin
A continuacin, para comenzar con la configuracin, hay que editar un par de ficheros. Para empezar, copiamos y editamos el fichero de ejemplo:
$ cp conf/caldavd-test.plistU conf/caldavd-dev.plist

El comando
cd ../CalendarServer

hace que regresemos de nuevo al directorio, y tecleando


./run -s

Ahora podemos abrir con nuestro editor de textos favorito este fichero. En la lnea en la que aparece ServerHostName, tenemos que poner la direccin IP local, insertando la IP entre las etiquetas <string> y </string>. Ms abajo, donde aparece BindAddresses, tenemos que poner dos lneas entre <string> y </string>. Como antes, hay que introducir la direccin IP local y la direccin del localhost, 127.0.0.1. Esto cambios son suficientes para un arranque de prueba inicial. A continuacin necesitamos un par de cuentas de usuarios. Para ello, creamos un fichero copiando el fichero de ejemplo accounts.xml,

termina una instancia que se est ejecutando como un servicio. Ahora ya podemos probar el servidor desde un navegador web tecleando su direccin IP en la barra de direcciones del navegador seguido de dos puntos y el nmero de puerto 8443. Es una conexin https://, de modo que ser necesario poner este prefijo antes de la direccin IP. A continuacin, hacemos clic en el enlace calendars | Users de la pgina web, debiendo aparecer las entradas para admin y urmel. Si hacemos clic en uno de los usuarios en este momento, no ocurrir nada interesante.

comenzaremos la instalacin. Dependiendo de lo rpido que sea el ordenador y de la conexin a Internet, este proceso puede llegar a tardar desde unos minutos a una hora. El comando ./run posee dos parmetros adicionales: Si se reemplaza la -s por una -g, el instalador simplemente obtendr las dependencias desde la web, y si posteriormente se llamara de nuevo al

Listado 1: Ejemplo de Cuentas de Usuario


<user> <uid>admin</uid> <guid>admin</guid> <password>admin</password> <name>Super User</name> <first-name>Super</first-name> <last-name>User</last-name> </user> <user> <uid>urmel</uid> <guid>urmel</guid> <password>123456</password> <name>Urmel aus dem Eis</name> <first-name>Urmel</first-name> <last-name>aus dem is</last-name> </user>

WWW.LINUX- MAGAZINE.ES

Nmero 84

29

PRCTICO Calendario Darwin

tarse como entidades separadas, y el puerto 8443 slo soportaba el acceso al servidor de la libreta de direcciones. Para reflejar esto, podramos revisar las entradas List of port numbers....

Configurando la Agenda
Para configurar Evolution para que coopere con el servidor, primero tenemos que Figura 1: Configurar una agenda remota en Evolution es fcil; slo hay seleccionar New | que seleccionar CalDAV para el tipo y rellenar el resto de la informa- Calendar de la barra cin. de herramientas para crear una agenda Para un funcionamiento 24/7, sera buena nueva. En el cuadro de dilogo que sigue idea completar la configuracin del servidor. (Figura 1), seleccionamos CalDAV para el Para ello hay que parar la instancia actual tipo, le asignamos un nombre y le aadimos presionando Ctrl + C, luego abrimos de la direccin IP del servidor podramos aanuevo el fichero davd-dev.plist y cambiamos dir una URL dinmica si tuviramos activado HTTP-Port Port, sustituyendo 8008 por 0. el acceso por medio del reenvo de puertos Este cambio desactiva el acceso por medio del router. Detrs de la direccin IP o de la del puerto no seguro e impide que alguien URL hay que teclear dos puntos y el nmero pueda hacerse con los nombres de usuario y de puerto, luego debemos seleccionar Use las contraseas. A partir de ahora, el acceso SSL y rellenar el nombre de usuario. slo se permitir por medio de SSL. El serviA continuacin, hacemos clic en Browse dor utiliza el certificado que trae, aunque lo server for a calendar (Figura 2) y tecleamos la podemos reemplazar si lo consideramos contrasea. Seleccionamos la agenda y la oportuno. Mirando el parmetro SSLCertificonfirmamos por medio del botn OK el cate podemos averiguar dnde se almacena dilogo aplicar la direccin correcta luego el certificado. lo cerramos y guardamos haciendo clic en Al contrario de lo que aparece en algunos OK. La agenda estar ahora lista, y podremos how-to de la web, slo es necesario el puerto aadir nuevas entradas. 8443 tanto para la agenda como para los conPara el cliente de correo Thunderbird existe tactos. Los dos componentes solan ejecuun complemento denominado Lightning que soporta el acceso al servidor. La versin independiente del software de la agenda se denomina Sunbird. En ambos casos, podemos configurar el acceso de la misma forma que lo hemos hecho para Evolution. Si posteriormente vamos a utilizar esta cuenta para varias agendas, tendremos que aadir una ID a la agenda. Figura 3: La direccin de la agenda para el complemento de Thunder- Hay que asegurarse bird no es un simple clic de ratn. de que la URL se
Figura 2: Evolution lista todas las agendas que el usuario tenga disponible.

introduce tal y como se muestra (vase la Figura 3):


https://IP_o_URL:8443/U calendars/__uids__/su_GUID</U calendar/

Con KOrganizer es un poco ms complicado. En nuestro laboratorio no pudimos encontrar una opcin para vincular el servidor CardDAV sin haber instalado antes WebDAV (web-based distributed authoring and versioning; RFC 2518), que soporta la comparticin de datos por Internet por medio del puerto 80. Un intercambio basado en ficheros es una solucin bastante prctica para la transferencia del servidor al cliente:
$ curl -k -u User:PasswrdU -o calendar.ics U https://IP_o_URL:8443/U calendars/__uids__/U su_GUID/calendar/

Luego, importamos el resultado al programa por medio de New Calendar. Esta tarea puede automatizarse por medio de un script de la lnea de comandos y un trabajo de cron; sin embargo, estamos ante una calle de un nico sentido: No podremos copiar los datos en el servidor.

La Libreta de Direcciones
Cuando le ech un vistazo a los componentes de la libreta de direcciones en Linux, me qued un poco desilusionado; ninguna de las tres aplicaciones que probamos en el laboratorio fueron capaces de acceder al servidor. Dependiendo de la eleccin que hagamos del programa, podemos ir desde CardDAV con el componente WebDAV, a una conexin LDAP o a una cuenta Google. El acceso desde un dispositivo mvil con Linux digamos un

30

Nmero 84

WWW.LINUX- MAGAZINE.ES

Calendario Darwin PRCTICO

zarlos en una nica direccin (Figura 5). Ambas aplicaciones obtuvieron los datos del servidor pero fallaron a la hora de escribirlos de nuevo en l. Adems, no pude elegir la cuenta (por ejemplo, la libreta de direcciones local o remota) a asignar un nuevo contacto. Windows Phone 7 obtuvo incluso menos puntos que Android: en el Figura 4: Configurando las aplicaciones para la libreta de direcciones momento de escribir (izquierda) y la agenda (derecha) en Android. Funciona tras teclear este artculo, no pude encontrar una opcin la URL, el nombre de usuario y la contrasea. para integrar este sismvil con Android al servidor est limitema con un servidor CardDAV o CalDAV. tado. No conozco ningn mvil con Android Dentro del Sistema? que tenga soporte nativo para CardDAV o CalDAV. Tras configurar todas las funciones importanLas aplicaciones CardDAV-Sync [5] y tes y ejecutar el programa, tendremos que AnDal [6] cubren este hueco, aunque no funtomar una decisin: Queremos que est el cionarn de la forma esperada en ningn servidor en nuestro directorio de usuario o mvil antiguo con Android. Dependiendo del debera estar disponible globalmente para fabricante, la versin de Android, la interfaz todo el sistema? Para esta ltima opcin, tende usuario y otras variantes especficas del dremos que ejecutar el comando ./run con fabricante, podremos instalarlo y configulas opciones -i o -I. De esta forma se instala el rarlo, pero la sincronizacin con el servidor servidor y todas sus dependencias en los fallar. En algunos casos, la libreta de direcdirectorios correspondientes. El siguiente ciones o la agenda permanecern vacas, paso, excepto para una situacin personal o incluso cuando parezca que todo ha funciopara un pequeo grupo de usuarios, consiste nado al menos este fue el caso con un en decidir si merece o no la pena la creacin mvil HTC. de grupos. Adems, la ejecucin del proEn el laboratorio fui capaz de configurar grama en el directorio home del usuario las cuentas con otro dispositivo, un Motorola aporta ms beneficios. (Figura 4). Sin embargo, slo pude sincroniTecleando ./run -s podemos actualizar los componentes en cualquier momento, y CACS slo tendr las restricciones de privilegios del usuario en cuestin. Sin embargo, probablemente vamos a querer ejecutar el comando chmod 0600 para proteger los ficheros de configuracin contra posibles accesos no autorizados. La tercera ventaja es la posibilidad de borrar rpidamente y de forma sencilla el serviFigura 5: La sincronizacin de la agenda slo funciona en un sentido dor, sin dejar rastro y sin tener que buscar lo que no resulta muy til.

ficheros por todo el sistema. Otros han escrito sobre instalaciones estticas [7].

Conclusiones
Una de las alternativas que he encontrado es DAViCal [8] aunque tiene la reputacin de que es ms difcil de configurar. SOGo [9] y Egroupware [10] son otras opciones. Ambas soluciones estn diseadas para entornos mayores al domstico o al de una pequea oficina, y se encuentran por encima en cuanto se refiere a funciones, opciones, recursos y dificultad de configuracin. SabreDAV [11], una extensin para aplicaciones PHP, tambin es capaz de administrar agendas y contactos de forma centralizada. Pero, de nuevo, la configuracin es complicada. Dicho esto, tengo la impresin de que durante las pruebas realizadas al servidor Darwin CACS, el sofware ofrece la mejor relacin esfuerzo valor til. Adems, el programa ofrece muchas funciones que van ms all de lo que he descrito en este artculo pero tambin complican ms la configuracin. Por ejemplo, el servidor soporta la integracin con LDAP y su instalacin en un clster. La documentacin es bastante pobre, si la comparamos con el cdigo fuente, que se encuentra muy bien documenI tado.

RECURSOS
[1] Darwin CACS: http://trac.calendarserver.org [2] CalDAV: http://www.ietf.org/rfc/rfc4791.txt [3] Estndar Groupware: http://www.linux-magazin.de/ Online-Artikel/Auf-der-Suche- nachdem-Groupware-Standard [4] CardDAV: http://www.rfc-editor.org/ rfc/rfc6352.txt [5] Parche para Memcached: http://code. google.com/p/memcached/issues/ attachmentText?id=6 0&aid=8 38007 4892624334134&name=fix-strict-aliasing.patch&token= 021caaac 84d242389caaa64f24c53ea9 [6] Sincronizacin CardDAV: http://dmfs. org/carddav/ [7] Andal: http://www.hypermatix.com/ products/ andal_caldav_calendar_for_android [8] Configurando CACS 2.3 en Ubuntu 9.10: http://www.deanspot.org/ content/installing-darwincalendar-server-23-ubuntu-910 [9] Davical: http://www.davical.org [10] Sogo: http://www.sogo.nu [11] eGroupWare: http://www. egroupware.org [12] Sabredav: http://code.google.com/p/ sabredav

WWW.LINUX- MAGAZINE.ES

Nmero 84

31

S-ar putea să vă placă și