Configurar y asegurar servidor ownCloud

Ayer hablamos de la instalación del servicio en la nube ownCloud sobre un servidor Ubuntu 14.04 en un VPS. Hoy nos encargaremos de configurarlo, para optimizarlo y así también mejorar su seguridad. Entre otros aspectos habilitaremos el acceso mediante HTTPS y HSTS, para así utilizar el cifrado SSL en las comunicaciones.

ownCloud-500

Configurar servidor ownCloud

Antes de nada, como la interfaz por defecto viene en inglés, la vamos a cambiar al castellano, esto es bien fácil, sólo debemos ir a nuestro perfil de usuario e indicar el idioma. Desde el mismo panel podemos añadir nuestro correo electrónico, una fotografía o cambiar la contraseña del usuario.

Empecemos por lo más básico, si ya hemos instalado el servicio y hemos probado de subir ficheros de cierto tamaño nos habremos encontrado que nos habrá aparecido un aviso, indicando que el tamaño máximo se ha excedido. Para cambiar eso lo podemos hacer mediante consola de comandos, modificando el fichero /etc/php5/apache2/php.ini , cambiando los siguientes parámetros, por los que nos interesen:

  1. upload_max_filesize = 2M
  2. post_max_size = 8M

Es importante remarcar que la cantidad del segunda parámetro, siempre tiene que ser igual o superior al primero. En mi caso la configuración que he dejado es la siguiente:

  1. upload_max_filesize = 1GB
  2. post_max_size = 2GB

o bien utilizando el menú de «Administración» , de manera adicional, ya que indica por defecto una subida máxima de 512 MB. Véase la imagen:

Tamaño máximo subida ficheros

Tamaño máximo subida ficheros

Una vez hecho esto vamos a un tema muy importante, que es habilitar HTTPS para nuestra conexión. Para ello me he servido de la guía que escribí en su día «Habilitar HTTPS en nuestro servidor web» Alguna cosa cambia, así que os vuelvo a explicar los pasos. Primero actualizamos repositorios e instalamos el paquete openssl.

  1. apt update
  2. apt install openssl

Una vez instalado creamos el certificado y la llave para nuestra web, al crearlos nos hará una serie de preguntas sencillas, que debemos responder, si tenéis alguna duda siempre se puede consultar la documentación oficial de Apache al respecto.

  1. openssl req -new -x509 -nodes -out /etc/ssl/certs/cloud.ochobitsunbyte.pw_self.crt -keyout /etc/ssl/private/cloud.ochobitsunbyte.pw_self.key

Por un tema evidente de seguridad modificaremos los permisos de los ficheros recien creados.

  1. chmod 600 /etc/ssl/certs/*
  2. chmod 600 /etc/ssl/private/*

Habilitamos el módulo de Apache ssl, para poder trababar con él:

  1. a2enmod ssl

Habilitamos la plantilla web para conexiones SSL

  1. a2ensite default-ssl

Reiniciamos el servidor web Apache

  1. service apache2 reload

Configurar Apache para trabajar con SSL

Ahora modificaremos la configuración de nuestro virtual host, para que utilice el nuevo certificado y llave SSL. Una vez hecho esto nuestro servidor utilizará HTTPS en lugar de HTTP

Editamos el fichero:

  1. nano /etc/apache2/sites-available/default-ssl.conf

Si utilizamos el editor nano, utilizaremos la combinación CTRL+W, para buscar el siguiente texto:

  1. VirtualHost _default_:443

Y añadimos:

  1. ServerAdmin davidochobits@ochobitsunbyte.pw
  2. ServerName listas.ochobitsunbyte.pw:443

Adicionamos las dos líneas a continuación, donde indicamos la ubicación de la llave y el certificado:

  1. SSLCertificateFile /etc/ssl/certs/cloud.ochobitsunbyte.pw_self.crt
  2. SSLCertificateKeyFile /etc/ssl/private/cloud.ochobitsunbyte.pw_self.key

Con esto ya tendremos suficiente. Reiniciamos el servicio Apache:

  1. service apache2 reload

Otro aspecto importante es forzar el uso de HTTPS, para ello el fichero de configuración del puerto 80, quedará así:

Configurar redirect de HTTP a HTTPS

Configurar redirect de HTTP a HTTPS

Y el fichero para el puerto 443, para que funcione todo correctamente, en mi caso es el siguiente:

Primera parte default-ssl para ownCloud

Primera parte default-ssl para ownCloud

Y más adelante tenemos las siguientes líneas:

Configuración HSTS en fichero default-ssl.conf

Configuración HSTS en fichero default-ssl.conf

Aquí nos referimos a HSTS, que significa, en sus siglas en inglés «HTTP Strict Transport Security» Dicho módulo se utiliza para evitar los llamados ataques man-in-the-middle Más información al respecto aquí. Para que éste módulo funcione lo debemos habilitar:

  1. a2enmod headers

Por último, para poder utilizar el fichero .htaccess creado en la carpeta de ownCloud, se debe añadir en el VirtualHost, la línea ‘AllowOverride All’ y habilitar también el módulo Rewrite:

  1. a2enmod rewrite

Por último reiniciamos el servicio, otra vez:

  1. service apache2 reload

Lo dejaremos por hoy, espero que os haya sido útil e interesante. Nos leemos en la próxima 😉