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:
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.
Para a realização deste tutorial foi utilizada uma máquina virtual com as seguintes características:
- S.O: Ubuntu Server 16.04 6 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
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.
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>
8) Depois disso, reinicie o Apache com o comando abaixo.
service apache2 restart
9) Acesse a página de instalação do OwnCloud em: https://ip-servidor/owncloud e preencha os campos iniciais.
Para aprender mais sobre a interface Web e configurar o OwnCloud, veja as páginas abaixo.
9) Para instalar as aplicações clientes, acesse a página abaixo.
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
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
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
Comentários
Postar um comentário