viernes, diciembre 27, 2013

Una explicación de andar por casa de WebDAV

En mi anterior entrada hablada de una forma de tener los ficheros de claves de aplicaciones tipo keepass disponibles en internet para que fueran accesibles desde diferentes ubicaciones, permitiendo la posibilidad de realizar actualizaciones a las mismas desde cualquier sitio. Para poder hacer esto había recurrido a WebDAV, pero muchos de nosotros nos preguntaremos por ese desconocido.

De forma breve se puede decir que WebDAV no es más que el intento de establecer que la world wide web que conocemos disponga de la posibilidad de poder realizar modificaciones sobre los documentos publicados en la web. En realidad WebDAV son dos cosas, por un lado es un grupo de trabajo para definir el estándar que permita la funcionalidad descrita y por otro lado es un protocolo, surgido de ese grupo de trabajo, que lo define mediante una RFC de internet.

Lo que hace WebDAV es añadir varios métodos a los que define el estándar HTTP, que es el que se emplea en la comunicación entre los navegadores webs y los servidores webs. Típicamente, los métodos HTTP son GET, POST, PUT, CONNECT, HEAD (y algunos más) que nos permiten solicitar una página, enviar los datos de un formulario, subir un archivo, conectarnos al servidor y mandar las cabeceras (la información por ejemplo de las cookies se envía en el HEAD). Como vemos, aquí no hay nada que sirva para modificar el contenido de una página web (explícitamente, claro). El protocolo HTTP no lo permite.

En este punto es donde interviene WebDAV, proporcionando algunos métodos adicionales como COPY, MOVE, LOCK, UNLOCK, PROPFIND, PROPPATCH y MKCOL al protocolo HTTP para permitir copiar un recurso, moverlo de una ubicación a otra, bloquearlo/desbloquearlo, buscar propiedades, modificar propiedades, crear directorios (colecciones).

Como curiosidad sobre WebDAV, los sistemas de control de versiones como Subversion o Git lo utilizan internamente (clientes y servidor) cuando se accede al repositorio mediante HTTP. Es decir, ellos no han inventado la rueda para realizar las modificaciones sobre el servidor web que publica el contenido de sus repositorios, han utilizado el protocolo WebDAV implementando el cliente para comunicarse con un servidor HTTP como Apache, que dispone de la funcionalidad WebDAV activada (mediante los modulos dav y dav_fs para proporcionar la infraestructura necesaria).

También sistemas operativos permiten montar un recurso remoto del servidor web que dispone de la funcionalidad WebDAV como si fuera un directorio local, dejándonos modificar a nuestro gusto los contenidos que allí encontremos. O navegadores web que disponen de un cliente WebDAV (mediante plugins que se instala en el navegador) que ofrece la posibilidad de modificar al vuelo el contenido del servidor web sin recurrir a aplicaciones de terceros.

Esto también tiene una implicación interesante, al ser WebDAV un añadido al HTTP, podemos agregarle la capa de seguridad SSL para disponer de WebDAVS simplemente ofreciendo el contenido mediante el HTTPS, sin cambiar para nada el protocolo WebDAV.

De todas formas, las entradas de la wikipedia son mucho más amplias.

miércoles, diciembre 25, 2013

Fichero de claves de keepass en apache con webdav

Un problema que se puede plantear es disponer de un lugar en internet en el que guardar tus ficheros de claves, accesible desde todos los sitios, que utilice algún protocolo seguro y que te permita también realizar las actualizaciones convenientes.

Para que sea accesible desde todos los sitios sin tener problemas con firewalls y restricciones de navegación, con comunicación cifrada, lo mejor es utilizar el protocolo https. El servidor apache nos da esa parte, si ademas le metemos la capacidad para manejar webdav que también es soportado por keepass, tenemos la funcionalidad de poder realizar las modificaciones desde donde realizamos las conexiones. En resumen, apache con modulo dav y dav_fs. El soporte para la comunicación cifrada con SSL es trivial.

En /etc/apache2/mods-available creamos el ficheros dav.conf con el siguiente contenido
Alias /ruta_publicacion/ /var/www/ruta_ficheros/
<Location /ruta_publicacion/ >
  DAV On
  Options -MultiViews
<Location>
 e igualmente creamos también dav_fs.conf (si no existe).
DAVLockDB ${APACHE_LOCK_DIR}/DAVLock
Lo primero establece un directorio donde se va a poder utilizar webdav, es decir, es el directorio donde podremos hacer modificaciones remotamente en los ficheros ofrecidos por  el servidor apache. Lo segundo establece la ruta del fichero de bloqueos para el modulo webdav y no tener conflictos con actualizaciones simultáneas.

Nos aseguramos que el directorio /var/www/ruta_ficheros/ y sus ficheros son accesibles por el propietario que ejecuta apache (normalmente es www-data) y que los permisos adecuados para poder leer y escribir los ficheros (usualmente que coincida el propietario y grupo con los que se ejecuta el proceso apache). Luego ejecutamos la habilitación de los modulos y reiniciamos el apache con
$ a2enmod dav
$ a2enmod dav_fs
$ service apache2 restart
En /var/www/ruta_ficheros/ copiamos nuestros ficheros de claves que tenemos con keepass. Adicionalmente, podemos proteger con contraseñas el acceso al directorio /var/www/ruta_ficheros/ con las directivas dentro de las directivas Location de apache anteriores.
AuthType Basic
AuthUserFile /path/htpasswd/db
AuthName "Acceso restringido"
require valid-user
También podemos agregar el -Indexes a las opciones de Location, pero eso depende de los gustos del consumidor. Es importante la opción -MultiViews, de lo contrario aparecerá un error con el siguiente texto "Negotiation: discovered file(s) matching request:" en nuestro querido apache. Lo cual no te deja mucho margen de maniobra, salvo buscar en san google.

domingo, diciembre 22, 2013

Tres meses

Ha tenido que ser bastante difícil y en algunos momentos no se lo hemos puesto fácil, pero ya lleva tres meses sin fumar, así que estamos muy contentos. Ella era quien se ponía más trabas para lograrlo, pero lo ha conseguido. Tres meses son un logro. Toda su familia está muy orgullosa de ella, yo el primero.

sábado, diciembre 21, 2013

Simulación superada

Los resultados de la simulación de examen han sido buenos. A falta de dos meses para la prueba final, aprobe el examen con lo que en principio puedo estar tranquilo, voy por el buen camino. Saco varias conclusiones de examen.
  • La prueba será más dura de lo que pienso. Contestar las 200 preguntas en cuatro horas se volverá cuesta arriba a medida que avanza el examen y debo prepararme a conciencia. Lo he comprobado en esta prueba.
  • Es muy importante la gestión del tiempo para responder a las preguntas y evitar cometer el error de no contestar las preguntas. Hay que contestarlas, si hay dudas se marca para revisarla después, pero se contesta. En la prueba me dejé 12 preguntas sin responder. Tener un reloj de pulsera será muy útil.
  • Debo mejorar el estudio de las procesos de Seguimiento y Control, que es la parte donde he estado más flojo, aunque mi porcentaje ha sido superior al 50%, ha sido inferior al 65% que es lo que se considera aprobado. El resto de grupos de procesos están por encima del 65%.

domingo, diciembre 15, 2013

Visita granadina

A falta de saber el resultado de la prueba del jueves pasado, he cubierto el primer hito celebrándolo durante unos días en Granada. En modo resumido puedo decir que los baños árabes Hammam nos recibieron el viernes. El sábado por la mañana visitamos la Alhambra y el resto del día lo pasamos recorriendo las calles de granada. El recorrido lo ampliamos al domingo por la mañana, subiendo el río Darro.

domingo, diciembre 08, 2013

Como el maestro de Go

Antes de que empezara no se me ocurrió pensar en ello, pero el enfrentamiento entre Viswanathan Anand y Magnus Carlsen ha tenido muchos puntos en común con el libro de Yasunari Kawabata, El maestro de Go.

Primer test largo

Por la tarde he realizado una simulación de test online de 200 preguntas en 4 horas (idénticas condiciones al del examen).

El resultado ha sido de 167 aciertos y 33 fallos (83'5%). En las primeras 100 preguntas he obtenido 84 aciertos versus 16 fallos en 1 hora y 32 minutos. En las siguientes 100 he acertado 83 preguntas y fallado 17 en 1 hora y 37 minutos. La media de tiempo para responder ha sido de 56 segundos por pregunta (tiempo total de 3 horas y 9 minutos).

Me falta un poco para alcanzar el 90% que es lo deseable según los profesores del curso para afrontar la prueba con garantías.

Esta simulación también ha servido para darme cuenta de que un factor fundamental del éxito será tener la mente entrenada para saber aguantar las 200 preguntas que irán minando la capacidad de respuesta a medida que pasa el tiempo. Por supuesto, hay que conocerse bien la materia de estudio.

domingo, diciembre 01, 2013

Definición del miedo

Ante la pregunta ¿Qué es el miedo? hay una respuesta genial. El miedo es la ausencia de un Plan de Respuesta.

No dejo de pensar en las películas de terror, cuando los protagonistas están acojonados ante el malo de turno. No corras, no grites, sólo ten (con bioalcohol) preparado un plan para dejarlo frito. Por supuesto, es aplicable a otros ámbitos de la vida más prosaicos.