Windows XP y WebDAV
Se llega a sufrir mucho con estas cosas de la tecnología. Hoy teníamos necesidad de pasar datos desde un Windows XP a un servidor GNU/Linux, y elegimos hacerlo vía WebDAV, puesto que ya estaba configurado y funcionando con normalidad (como los transportes públicos de Madrid, según el parte diario).
Nada, que no había forma alguna, nos solicitaba contraseña y ni siquiera llegaba a enviar el nombre del usuario. Tras varias búsquedas y pruebas llegamos a la siguiente solución:
- En el servidor es necesario añadir algunos ajustes a la configuración, como indico más abajo.
- En el cliente es necesario incluir el puerto en el URL:
http://myserver:80/mypath
.
Configurando apache
En el servidor Apache se deben activar los siguientes módulos:
- encoding
- header
- dav
- auth
En Debian existe la herramienta
apache-modconf
, que puede emplearse para activar ó desactivar dichos complementos en varias configuraciones del servidor. La propia instalación de los paquetes, por supuesto, la emplea para ello, por lo que debe bastar con incorporarlos al sistema.
Y añadir las siguientes directivas en la configuración del servidor:
#
# Broken WebDAV for Windows XP
#
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "Microsoft-WebDAV-MiniRedir/5.1.2600" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS" redirect-carefully
<IfModule mod_headers.c>
Header add MS-Author-Via "DAV"
</IfModule>
<IfModule mod_encoding.c>
EncodingEngine on
NormalizeUsername on
</IfModule>
y estos ajustes en la sección correspondiente de control de acceso a
WebDAV
:
DAVLockDB /path/to/lockfile/DAVLock
DAVMinTimeout 600
<Directory "directory">
DAV On
AuthType Basic
AuthName test
AuthUserFile /path/to/passwd/file
AuthGroupFile /dev/null
Require user test
</Directory>
Eso sin olvidar la creación de usuarios y contraseñas correspondiente para que el ejemplo funcione.