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
- 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:
max_allowed_packet = 1M
max_allowed_packet = 5G
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.
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
Nao to conseguindo acessar por outro computador.
Pode me ajudar
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!
boa noite,muito bom o seu tutorial sobre a instalçaõ do owncloud no linux!!!!
sou autodidata em T.I,e na empresa onde trabalho ainda é usado o velho samba para armazenagem e compartilhamento de arquivos,estou com um projeto para instalar o owncloud num servidor linux(ubuntu server),e vou seguir esse seu tutorial maravilhoso,mas vi nos comentarios algumas inconsistências sobre a instalção,então sera que você terial um tutorial mas atualizado??
grato pela atenção.
Olá, Awilson!
Onde trabalho o Owncloud não é necessário. Faz 2 anos que parei de trabalhar com esse sistema.
Eu não sei instalar a versão mais recente, mas sugiro você olhar a documentação oficial. Seguem alguns links:
https://doc.owncloud.com/server/10.10/admin_manual/installation/
https://doc.owncloud.com/server/10.10/admin_manual/installation/manual_installation/manual_installation.html
https://doc.owncloud.com/server/10.10/admin_manual/installation/docker/