Tutorial de instalação do OwnCloud 10.4 Server no Ubuntu 20.04

Introdução

Atualizado em: 08/06/2020

O OwnCloud é um serviço que provê o armazenamento de arquivos na nuvem, assim como acontece com o DropBox, Google Drive e outros serviços.

O OwnCloud pode ser instalado em um servidor de uma rede interna de uma empresa ou organização, de forma que é possível ter um serviço de armazenamento de arquivos na nuvem ou storage privado. O OwnCloud possui uma versão gratuita e outra entreprise e na página abaixo você encontra a lista de funcionalides:

https://owncloud.org/features/

Ele é extremamente leve (pode ser instalado numa máquina com 512 MB de memória RAM). Na página abaixo, você encontra a lista de requisitos de hardware e software.

https://doc.owncloud.org/server/10.4/admin_manual/installation/system_requirements.html

Para a realização deste tutorial foi utilizada uma máquina virtual com as seguintes características:
  • S.O: Ubuntu Server 20.04 64 bits
  • Memória: 2 GB
  • CPU: 1 vCPU com clock acima de 2.0 GHz
  • HD: 80 GB ou mais

Instalando o OwnCloud

1) Instale as dependências do serviço:

sudo su
add-apt-repository -y ppa:ondrej/php
apt -y install apache2 mariadb-server libapache2-mod-php7.1 php7.1-gd php7.1-json php7.1-mysql php7.1-curl php7.1-intl php7.1-mcrypt php7.1-imagick unzip php7.1-zip php7.1-xml php7.1-mbstring php7.1-ldap

2) Crie um banco de dados, usuário e senha para ser usado pelo OwnCloud. Use os comandos baixo. Por padrão a senha do root do MySQL/MariaDB é vazia, então basta pressionar ENTER.

mysql -u root -p
MariaDB [(none)]> create database owncloud_db character set utf8;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO owncloud_user@localhost IDENTIFIED BY 'SUA_SENHA' WITH GRANT OPTION;
MariaDB [(none)]> quit

Onde:

owncloud_db => nome do banco de dados a ser usado pelo OwnCloud.

owncloud_user => nome do usuário do banco de dados.

SUA_SENHA => deve ser trocada pela senha que você desejar.
3) Baixe os arquivos fontes do OwnCloud em https://download.owncloud.org/community/owncloud-latest.zip

mkdir /install
cd /install
wget https://download.owncloud.org/community/owncloud-latest.zip

4) Descompacte os arquivos do Owncloud com o comando abaixo.

unzip owncloud-latest.zip

5) Use os comandos abaixo para copiar os arquivos do Owncloud para o Apache.

cp -R owncloud /var/www/html/
chown -R www-data:www-data /var/www/html/owncloud/
chmod -R +x /var/www/html/owncloud/

6) Neste tutorial, o diretório (ou storage) a ser gerenciado pelo Owncloud para armazenar os arquivos dos usuários, ficará em /files/owncloud. Foi necessário criar o diretório e definir as permissões adequadas com os comandos abaixo.

mkdir -p /files/owncloud
chown -R www-data:www-data /files/owncloud/

Aplicando configurações de segurança no MySQL/MariaDB

1) Aplique configurações de segurança no MySQL/MariaDB executando o comando abaixo.

mysql_secure_installation

Será pedido a senha de root do MySQL/MariaDB. Apenas pressione ENTER para informar que a senha está vazia ou informe a senha do root (se em algum momento anterior você já tiver definido).

Continuando, defina a nova senha do usuário root do MySQL/MariaDB. Depois responda adequadamente as perguntas seguintes para remover o acesso anônimo ao banco, desabilite o acesso remoto com o usuário root do banco e remova o banco de teste.

Aplicando configurações de segurança no Apache

1) Edite o arquivo /etc/apache2/conf-enabled/security.conf e altere os valores dos parâmetros para deixá-los conforme mostrado abaixo:

ServerTokens Prod
ServerSignature Off
TraceEnable Off

2) Ainda neste arquivo, descomente as linhas abaixo para evitar vulnerabilidades de segurança.

Header set X-Content-Type-Options: "nosniff"
Header set X-Frame-Options: "sameorigin"
Header set X-XSS-Protection: "1;mode=block"
Header set X-Robots-Tag: "none"

3) Habilite os módulos a2enmod headers e env para aplicar as configurações realizadas no ponto 2.

a2enmod headers
a2enmod env
systemctl restart apache2

4) Desabilite o módulo de indexação de arquivos de um diretório e o módulo cgid.

a2dismod -f autoindex
a2dismod -f cgid
systemctl restart apache2

5) Habilite os módulos abaixo.

a2enmod -f ssl
a2enmod -f rewrite
a2enmod dir
a2enmod mime
systemctl restart apache2

6) Se você não tiver um certificado, pode criar um sendo auto-assinado e com duração de 10 anos. Faça isso usando a sequencia de comandos abaixo.

mkdir /etc/apache2/ssl
cd /etc/apache2/ssl
openssl req -newkey rsa:2048 -x509 -nodes -out server.pem -keyout server.pem -days 3650

Durante a execução do comando acima, serão feitas as seguintes perguntas:

Sigla do país em que está o servidor: BR
Nome do estado em que está o servidor: Estado
Nome da cidade em que está o servidor: Cidade
Nome da empresa ou organização: Empresa LTDA
Nome do setor da empresa ou organização: Redes
Nome do servidor. Exemplo: box.empresa.com.br
Para as demais perguntas, basta pressionar ENTER para deixar em branco.

7) Mova os arquivos padrão do Apache para o diretório /root.

mv /etc/apache2/sites-available/000-default.conf /root/
cp /etc/apache2/sites-available/default-ssl.conf /root/

8) Crie o arquivo novo /etc/apache2/sites-available/000-default.conf com o seguinte conteúdo.

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/owncloud
<Directory />
Deny from all
</Directory>
<Directory /var/www/html/owncloud>
Options +FollowSymLinks
AllowOverride None
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/owncloud
<Directory />
Deny from all
</Directory>
#********* BEGIN *********#
Alias /owncloud /var/www/html/owncloud
<Directory /var/www/html/owncloud>
Options +FollowSymLinks
AllowOverride None
Allow from all
</Directory>
#***********************************#
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
SSLEngine on
</VirtualHost>
<IfModule mod_rewrite.c>
<IfModule mod_ssl.c>
<LocationMatch /owncloud>
RewriteEngine on
RewriteCond %{HTTPS} !^on$ [NC]
RewriteRule . https://ip-servidor/%{REQUEST_URI} [L]
</LocationMatch>
<LocationMatch />
RewriteEngine on
RewriteCond %{HTTPS} !^on$ [NC]
RewriteRule . https://ip-servidor/%{REQUEST_URI} [L]
</LocationMatch>
</IfModule>
</IfModule>
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
Header set X-XSS-Protection "1; mode=block"
</IfModule>

9) Edite as seguintes linhas do arquivo /etc/apache2/mods-enabled/ssl.conf para ficar da forma abaixo:

    SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5::!3DES
    SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
    SSLCertificateFile /etc/apache2/ssl/server.pem

10) Depois disso, reinicie o Apache com o comando abaixo.

systemctl restart apache2

11) Altere o valor dos parâmetros upload_max_filesize e post_max_size no arquivo de configuração do PHP, que fica em: /etc/php/7.1/apache2/php.ini

Antes:

upload_max_filesize = 2M
post_max_size = 8M

Depois:

upload_max_filesize = 5G
post_max_size = 5G

Depois disso, reinicie o Apache com o comando abaixo.

systemctl restart apache2

12) Edite o arquivo de configuração do MariaDB, que fica em: /etc/mysql/mariadb.conf.d/50-server.cnf e altere o parâmetro abaixo:

Antes:
max_allowed_packet = 1M
Depois:
max_allowed_packet = 5G
Depois reincie o MariaDB com o comando:
 
systemctl restart apache2

13) Acesse a página de instalação do OwnCloud em: https://ip-servidor/owncloud e preencha os campos iniciais conforme mostrado na figura abaixo.

owncloud

Para aprender mais sobre a interface Web e configurar o OwnCloud, veja as páginas abaixo.

https://doc.owncloud.org/server/10.4/user_manual/webinterface.html

https://doc.owncloud.org/server/10.4/user_manual/files/

https://doc.owncloud.org/server/10.4/admin_manual/maintenance/backup.html

14) Para instalar as aplicações clientes, acesse a página abaixo.

https://owncloud.org/install/#install-clients

Fonte:

https://doc.owncloud.org/server/10.4/admin_manual/installation/manual_installation.html

Dicas de segurança no Apache:
http://labs.siteblindado.com/2015/07/http-security-headers-guia-definitivo.html
http://blog.conviso.com.br/aumentando-a-seguranca-das-aplicacoes-com-headers-http-de-seguranca/
https://kb.sucuri.net/warnings/hardening/headers-x-xss-protection
https://www.keycdn.com/blog/http-security-headers/
https://scotthelme.co.uk/hardening-your-http-response-headers/
http://docs.spring.io/spring-security/site/docs/current/reference/html/headers.html

6 comentários em “Tutorial de instalação do OwnCloud 10.4 Server no Ubuntu 20.04

  • Excelente seu tutorial!!! estou usando o ubuntu server 16, deu uns problemas de pacotes do php 7.0 que não foram instalados por padrão, tive que instalar um por um! fora isso show de bola!!

  • This version of ownCloud requires at least PHP 7.0.7
    You are currently running PHP 5.6.40-24+ubuntu18.04.1+deb.sury.org+1. Please update your PHP version

    finalizei toda a configuração deu essa mensagem quando digitei ip no navegador

    como resolvo pode me ajudar pf

  • Aécio Boa noite,
    Acredito que seu Tutorial ainda é muito acessado, seria possível trocar a instalação do php5.6 do seu tutorial e trocar para 7.1 ??
    Pois as versões atuais do OwnCloud são funcionam com a versão 7.1 ou superior….
    Caso Aécio não mude, vou postar aqui o Código, substituam a linha:
    apt -y install apache2 mariadb-server libapache2-mod-php5.6 …………. ETC ……………
    POR
    apt -y install apache2 mariadb-server libapache2-mod-php7.1 php7.1-gd php7.1-json php7.1-mysql php7.1-curl php7.1-intl php7.1-mcrypt php7.1-imagick unzip php7.1-zip php7.1-xml php7.1-mbstring php7.1-ldap

  • Boa noite, Danilo!

    Obrigado pela contribuição… aproveitei a oportunidade e atualizei o tutorial por completo para dar suporte a nova versão do Ubuntu e do Owncloud.

    Bons testes!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *