Instalación de OwnCloud en Debian
- Nesta sección veremos os pasos para instalar ownCloud sobre unha máquina Debian.
Configuración da máquina Debian
- O que imos facer é crear unha nova máquina dserver01 a partir de dbase, seguindo os mesmos pasos indicados para Crear e configurar dserver00 pero cambiando os seguintes datos:
- Dirección IP: 172.16.5.11
- Servidor de DNS: 172.16.5.10
- Nome do equipo: dserver01
- E engadimos no reenvío de portos da rede NAT en VirtualBox un reenvío para acceder a esta máquina por ssh, e por https, como se ve na imaxe:
- Tamén sería posible, se o lector o prefire, usar a mesma máquina dserver00 para instalar ownCloud. Os pasos a seguir para a instalación e a configuración serían os mesmos.
Instalación de Owncloud
- A instalación máis sinxela pola que podemos optar é facendo uso do paquete de ownCloud xa preparado para Debian 8 (na web de ownCloud tamén podemos atopar repositorios para outras distribucións de Linux).
- Este paquete non está incluído nos repositorios de Debian, pero a comunidade de ownCloud ofrece un repositorio que inclúe os paquetes de ownCloud para a meirande parte das distribucións de Linux. Así que primeiro teremos que engadir o repositorio que inclúe o paquete.
- Introduciremos os seguintes comandos:
wget -nv https://download.owncloud.org/download/repositories/production/Debian_9.0/Release.key -O Release.key
apt-key add - < Release.key
echo 'deb http://download.owncloud.org/download/repositories/production/Debian_9.0/ /' > /etc/apt/sources.list.d/owncloud.list
apt-get update
- Agora xa podemos instalar o paquete owncloud-files. Ademais, imos instalar os paquetes apache2 (o servidor web) sqlite (o xestor de base de datos), as librarías de php, smbclient e cifs-utils (para poder acceder ás carpetas compartidas por CIFS):
apt-get install owncloud-files apache2 sqlite libapache2-mod-php7.0 php7.0-ldap php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-intl php7.0-mcrypt php-imagick php7.0-zip php7.0-xml php7.0-mbstring php7.0-sqlite smbclient cifs-utils
Configuración de Apache
Creamos o ficheiro /etc/apache2/sites-available/owncloud.conf co seguinte contido:
Alias /owncloud "/var/www/owncloud/"
<Directory /var/www/owncloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/owncloud
SetEnv HTTP_HOME /var/www/owncloud
</Directory>
E creamos o link:
ln -s /etc/apache2/sites-available/owncloud.conf /etc/apache2/sites-enabled/owncloud.conf
Habilitamos
a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime
Configuración da conexión HTTPS
- Aínda que non é imprescindible, e máis que recomendable que as conexións que fagamos ao ownCloud dende os clientes sexa sempre por protocolo seguro (HTTPS), xa que:
- Para iniciar sesión, os usuarios terán que introducir o seu contrasinal. Seguramente non queiramos que estes contrasinais sexan transmitidos en claro pola rede, xa que quedaría moi comprometida a súa seguridade.
- A través de ownCloud, os usuarios accederán a carpetas persoais con documentos privados. Se a transmisión destes documentos se fai por HTTP, calquera podería capturar o seu contido.
- Por iso imos configurar o servidor web Apache para que permita as conexións por HTTPS. Para facelo precisaremos contar con un certificado dixital que se utilizará para cifrar a comunicación. A opción máis sinxela é xerar un certificado autoasinado, xa que así non temos que crear unha Autoridade de Certificación ou CA (recórdese que no apartado de Autenticación segura contra o LDAP. Uso de TLS/SSL: LDAPS xa se explicou o proceso de creación dunha CA e a xestión e uso dos certificados dixitais):
- Instalamos o paquete openssl:
apt-get install openssl
- Creamos un certificado autoasinado para Apache, e colocamos na carpeta /etc/ssl/localcerts tanto o certificado como a chave privada asociada ao mesmo:
root@dserver01:~# mkdir -p /etc/ssl/localcerts
root@dserver01:~# openssl req -new -x509 -days 365 -nodes -out /etc/ssl/localcerts/apache.pem -keyout /etc/ssl/localcerts/apache.key
Generating a 2048 bit RSA private key
................................+++
..............................+++
writing new private key to '/etc/ssl/localcerts/apache.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:ES
State or Province Name (full name) [Some-State]:Galicia
Locality Name (eg, city) []:Vigo
Organization Name (eg, company) [Internet Widgits Pty Ltd]:IES Calquera
Organizational Unit Name (eg, section) []:Dep Informatica
Common Name (e.g. server FQDN or YOUR name) []:www.iescalquera.local
Email Address []:admin@iescalquera.local
root@dserver01:~# chmod 600 /etc/ssl/localcerts/apache*
- Habilitamos o módulo de SSL para Apache:
a2enmod ssl
- Editamos o ficheiro /etc/apache2/sites-available/default-ssl.conf, para modificar as liñas que establecer os parámetros SSLCertificateFile e SSLCertificateKeyFile (nos que indicaremos o ficheiro que contén o certificado e a chave privada):
SSLCertificateFile /etc/ssl/localcerts/apache.pem SSLCertificateKeyFile /etc/ssl/localcerts/apache.key
- Habilitamos o sitio defautl-ssl, que é o que permite as conexións HTTPS no servidor:
a2ensite default-ssl
- Reiniciamos o servizo apache para aplicar os cambios:
systemctl restart apache2
Finalizar a configuración de Owncloud
- Neste momento xa estamos en disposición de conectarnos a ownCloud por HTTPS.
- Ímolo facer dende a máquina real, utilizando o porto 10028 que está redirixido ao porto 443 da máquina que executa ownCloud. Tamén poderíamos conectarnos dende wclient01 ou uclient01, pero nese caso usando a dirección https://172.16.5.11/owncloud.
Introducimos a dirección https://localhost:10028/owncloud. Veremos que o navegador no informa de que hai un problema coa seguridade da conexión. Picamos no botón de Engadir excepción... para ver cal é o problema.
Vemos nas razóns do problema que a dirección do certificado non coincide coa do sitio ao que nos estamos conectando (recórdese que emitimos o certificado para www.iescalquera.local e nos estamos conectando a localhost), e ademais non foi asinado por unha CA de confianza (é lóxico, xa que é un certificado autoasinado). Picamos en Ver......
Así que é lóxico que o navegador poña eses problemas ao certificado. Para que isto non pasase, teríamos que emitir o certificado con unha CA, e importar no navegador dos clientes o certificado desa CA; pero como non imos facer todo iso, engadimos unha excepción para que o navegador se conecte de todas formas.
A páxina que aparece é na que finalizamos a instalación de ownCloud. Introducimos un usuario administrador e o seu contrasinal (poñemos administrador e abc123. como contrasinal). No apartado de Almacenamento e base de datos, vemos que podemos configurar cal é a carpeta na que se van gardar as carpetas de datos de ownCloud, e o xestor de base de datos que vai utilizar. OwnCloud pode usar MySQL e PostgreSQL, pero a configuración máis sinxela é utilizando SQLite, porque así non teremos que configurar ningunha base de datos. Picamos en Rematar configuración.
Pero imos ver un problema que se podería atopar agora un usuario se intenta acceder a ownCloud dende un equipo do dominio (wclient01 ou uclient01), utilizando unha dirección diferente. Por exemplo, se introducimos o rexistro no DNS que asocie o equipo www á dirección IP do equipo que alberga ownCloud, podemos intentar acceder coa dirección https://www.iescalquera.local/owncloud, pero veremos que non é posible.
O problema débese a que no ficheiro de configuración de ownCloud inclúese un parámetro coa lista de dominios que se poden utilizar para conectarse á aplicación. Imos editar este ficheiro, situado en /var/www/owncloud/config/config.php, e engadimos no array do parámetro trusted_domains a liña marcada.