Pular para o conteúdo principal

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 DropBoxGoogle 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
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>
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.

Comentários

Postagens mais visitadas deste blog

Tutorial: Consultas LDAP no Active Directory

Hoje será mostrado como fazer Consultas Salvas (Saved queries) e alguns exemplos: 1. No Active Directory Users and Computers, click com o botão direito no item Saved Queries e selecione New e depois Query. 2. Digite o nome para a Query, por exemplo: “Usuários Ativos” e coloque uma descrição e depois clic em Define Query. 3. Na drop-down box Find selecione Custom Search e então click em Advanced tab. 4. Digite uma das Queries e execute. Consultas de Usuarios Usuarios sem grupo (apenas domain users): (&(objectCategory=user)(objectClass=user)(!memberOf=*)) Usuarios sem e-mail (objectcategory=person)(!mail=*) Usuarios com e-mail (objectcategory=person)(mail=*) Usuarios que nunca fizeram logon no dominio (&(&(objectCategory=person)(objectClass=user))(|(lastLogon=0)(!(lastLogon=*)))) Usuários Criados depois de 09/10/2011 (objectCategory=user)(whenCreated>=20111009000000.0Z) Obs: troque o data por uma data da sua necessidade Usuários que precisam mudar a sen...

Usando o CIFS para mapear diretórios Windows no Linux

Usando o CIFS para mapear diretórios Windows no Linux Se você utiliza o samba e está tendo problemas com mapeamentos, não possui Samba no seu servidor Linux ou precisa acessar de forma rápida um diretório Windows pelo Linux, passe a usar o CIFS. Com ele, caso o servidor mapeado sofra um shutdown (Linux mapeando Windows), automaticamente ao se re-estabelecer a conexão com o Servidor, o mapeamento sobe. Neste post estarei tratando a situação onde temos um servidor Linux e desejamos através dele efetuar leituras ou gravações em diretórios no Windows. No Windows Estou adotando como exemplo o servidor com IP 192.168.0.1, dominio TESTE, usuário Administrador e senha 123!456. O objetivo é mapear o diretório D:\Teste no Linux. Então, pelo windows, compartilhe este diretório. No Linux# cd /mnt # mkdir teste # mount –t cifs //192.168.0.1/teste /mnt/teste –o user=Administrador,password=’123!456’,domain=TESTE Pronto!!! Agora você pode compartilhar seus arquivos entre o...

Erro MYSQL Cloud (Google, AWS, Digital Ocean) - Resolvido

Atualmente executando um servidor nginx com o wordpress, recebo um erro no banco de dados após alguns minutos de execução. Ao executar o comando para verificar os logs: # tail -f /var/log/mysqld.log a saída do comando é : 2019-09-12 19:11:24 25864 [Note] Plugin 'FEDERATED' is disabled. 2019-09-12 19:11:24 25864 [Note] InnoDB: Using atomics to ref count buffer pool pages 2019-09-12 19:11:24 25864 [Note] InnoDB: The InnoDB memory heap is disabled 2019-09-12 19:11:24 25864 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2019-09-12 19:11:24 25864 [Note] InnoDB: Memory barrier is not used 2019-09-12 19:11:24 25864 [Note] InnoDB: Compressed tables use zlib 1.2.11 2019-09-12 19:11:24 25864 [Note] InnoDB: Using Linux native AIO 2019-09-12 19:11:24 25864 [Note] InnoDB: Using CPU crc32 instructions 2019-09-12 19:11:24 25864 [Note] InnoDB: Initializing buffer pool, size = 128.0M InnoDB: mmap(137363456 bytes) failed; errno 12 2019-09-12 19:11:2...