lunes, 6 de septiembre de 2010

Servidor Webdav en Apache bajo https

Instalación

En la instalación de apache2 por defecto ya están incluidos los módulos necesarios, tan sólo tenemos que habilitarlos, para ello:

a2enmod dav_fs
a2enmod dav # en realidad al habilitar el anterior ya lo hará con este también

Configurando el host virtual

En mi caso crearé una carpeta llamada upload en la que daré permiso para la utilización de webdav para la subida y bajada de archivos, haré al usuario de apache (www-data) propietario del directorio:

mkdir /var/www/websegura/upload
chown www-data /var/www/websegura/upload

Tras ello he modificado el fichero /etc/apache2/sites-available/websegura para permitir webdav en dicho directorio, copio el fichero completo con las modificaciones en rojo:
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName websegura.mczones.es
ServerAlias websegura.es
DirectoryIndex index.html
DocumentRoot /var/www/websegura
<IfModule mod_dav_fs.c>
DavLockDB /var/lib/apache2/DAVLock
</IfModule>
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/websegura>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
SSLRequireSSL
</Directory>
<Directory /var/www/websegura/upload>
#habilitamos webdav
DAV On
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
<Location />
AuthBasicProvider ldap
AuthType Basic
AuthzLDAPAuthoritative On
AuthName "Identificacion websegura.mczones.es"
AuthLDAPURL "ldap://127.0.0.1:389/ou=usuarios,dc=mczones,dc=es?uid?one"
AuthLDAPBindDN "cn=admin,dc=mczones,dc=es"
AuthLDAPBindPassword "ldapadmin"
Require valid-user
SSLRequireSSL #obligamos al uso de https
</Location>
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
SSLCertificateFile /etc/ssl/certs/websegura.pem
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>
Una vez hecho debemos reiniciar el servidor:
/etc/init.d/apache2 restart

Fichero de configuración webdav, ssl con autenticación básica de apache


<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    ServerName websegura.mczones.es
    ServerAlias websegura.es
    DirectoryIndex index.html
    DocumentRoot /var/www/websegura
    
<IfModule mod_dav_fs.c>
    DavLockDB /var/lock/apache2/DAVLock
</IfModule>




<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
    
<Directory /var/www/websegura>
    Options Indexes FollowSymLinks MultiViews
      Order allow,deny
    allow from all
    SSLRequireSSL
</Directory>


<Directory /var/www/websegura/upload>
    # habilitamos webdav
    DAV On
    Options Indexes MultiViews
    #requerir encriptación
    SSLRequireSSL
    # Solicitamos autenticación
    AllowOverride AuthConfig
    AuthType Basic
    AuthName "Acceso restringido a alumnos A websegura"
    # (La siguiente línea es opcional)
    AuthBasicProvider file
    AuthUserFile /etc/apache2/mczones/passwords
    Require valid-user
    Order allow,deny
    Allow from all
</Directory>
    
    # SSL Engine Switch:
    # Enable/Disable SSL for this virtual host.
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/websegura.pem
    <FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory /usr/lib/cgi-bin>
    SSLOptions +StdEnvVars
    </Directory>
    BrowserMatch ".*MSIE.*" \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0
   
    </VirtualHost>



Conectándonos desde Ubuntu a la carpeta Webdav

Dado que en la práctica de Windows ya expliqué cómo conectarnos a un servidor webdav usando el sistema de Microsoft, en esta ocasión haremos lo mismo pero desde un cliente Ubuntu. 

Como en nautilus sólo nos aparece la posibilidad de conectarnos a un servidor webdav bajo http hemos de instalar otro paquete que nos permita la conexión webdav encriptada -empleando https-. 

Para ello instalamos el paquete davfs2:
sudo apt-get install davfs2

tras ello creamos una carpeta local dónde montaremos la carpeta webdav:
sudo mkdir /media/websegura

OJO con los permisos, para tener permiso todos de escritura:
chmod 776 /media/websegura.

finalmente montamos la carpeta:
sudo mount -t davfs https://websegura.mczones.es/upload /media/websegura


Al hacerlo solicitará el usuario y la contraseña y me preguntará si acepto el certificado, del que me mostrará los datos, tal y cómo se puede ver en la imagen:image
Finalmente hacemos un ls dónde podemos observar los ficheros del servidor.

para continuar viendo el resto de manuales Linux siga el enlace:administración de servidores con Linux

Enlaces

1 comentario:

Manolitonose dijo...

Hola
Podriamos tener mas de una carpeta?? es decir una carpeta webdav por cada usuario???