Skip to content

Tutorial de instalação do OwnCloud 9.1 Server no Ubuntu 16.04

Introdução

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/9.1/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 16.04 64 bits
  • Memória: 2 GB
  • CPU: 1 vCPU com clock acima de 2.0 GHz
  • HD: 80 GB

Instalando o OwnCloud

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

sudo su
add-apt-repository -y ppa:ondrej/php
apt update
apt -y install apache2 mariadb-server libapache2-mod-php5.6 php5.6-gd php5.6-json  php5.6-mysql php5.6-curl php5.6-intl php5.6-mcrypt php5.6-imagick unzip php5.6-zip php5.6-xml php5.6-mbstring php5.6-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_instalation

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
service apache2 restart

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
service apache2 restart

5) Habilite os módulos abaixo.

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

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:1024 -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/
mv  /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 ${APACHE_LOG_DIR}/error.log
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/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
    SSLCertificateFile /etc/apache2/ssl/server.pem
    SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SSLv3:!SSLv2:!TLSv1:!TLSv1.1SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
</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 always set X-XSS-Protection "1; mode=block"
</IfModule>

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

service apache2 restart

10) 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/5.6/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.

service apache2 restart

11) 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:
service mysql restart

12) 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/9.1/user_manual/webinterface.html

https://doc.owncloud.org/server/9.1/user_manual/files/index.html

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

https://doc.owncloud.org/server/9.1/admin_manual/configuration_server/harden_server.html

https://doc.owncloud.org/server/9.1/admin_manual/configuration_server/config_sample_php_parameters.html

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

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

Fonte:
https://doc.owncloud.org/server/9.1/admin_manual/installation/source_installation.html
https://doc.owncloud.org/server/9.1/admin_manual/configuration_server/index.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

One thought on “Tutorial de instalação do OwnCloud 9.1 Server no Ubuntu 16.04

  1. Pingback: Tutorial de instalação do OwnCloud 9.1 Server no Ubuntu 16.04 - Peguei do

Leave a Reply

Your email address will not be published. Required fields are marked *