Anonim

O armazenamento em nuvem é uma excelente maneira de manter seus arquivos seguros, caso algo aconteça e seu computador seja perdido ou danificado. Ele pode ajudá-lo a acessar seus arquivos na estrada ou no trabalho e ajuda a manter tudo sincronizado nos seus dispositivos.

O armazenamento em nuvem tem uma grande desvantagem. Você precisa confiar em alguma empresa com todos os seus arquivos pessoais. O que acontece se eles são invadidos? Eles são realmente tão confiáveis ​​ou estão passando por suas coisas quando você não está olhando? Não é realmente possível ter certeza.

Existe outra opção. Você pode hospedar seu próprio armazenamento em nuvem com o Nextcloud. O Nextcloud é uma solução de armazenamento em nuvem de código aberto que permite que você seja sua própria empresa de armazenamento em nuvem. Ele possui uma interface fácil de usar e limpa e aplicativos acompanhantes para todos os seus dispositivos, para que você não esteja lidando com algum lixo hackeado.

Este guia se concentrará em hospedar o Nextcloud em um VPS (servidor virtual privado), mas você também pode executá-lo localmente na sua rede doméstica. Só não espere acessá-lo de fora, a menos que você configure o encaminhamento de porta ou esteja executando uma VPN. Algumas das etapas seriam um pouco diferentes e você não precisará comprar nome de domínio ou configurar certificados SSL.

Escolha um host

Links Rápidos

  • Escolha um host
  • Instale o que você precisa
  • Configure seu firewall
  • Configurar SSH
    • Chaves SSH
      • janelas
      • Mac e Linux
    • Não permitir raiz e senhas
  • Configure seu banco de dados
  • Configurar PHP
  • Obtenha o Nextcloud
  • Criar certificados SSL
  • Configurar Nginx
  • Iniciar o Nextcloud

Supondo que você esteja usando uma verdadeira solução em nuvem e deseje que seus arquivos sejam acessíveis pela Web, é necessário configurar um VPS para hospedar o Nextcloud. Existem algumas ótimas opções por aí, então escolha o que lhe parecer melhor. Confira Linode, DigitalOcean e Gandi, se você ainda não tem um host em mente.

Este guia irá usar o Debian 9 "Stretch" como o sistema operacional do servidor. O Debian é super estável e razoavelmente seguro por padrão. Também é bem suportado pela maioria das plataformas de hospedagem. Se você estiver mais confortável com o Ubuntu, a maior parte disso se aplicará diretamente também, pois o Ubuntu é baseado no Debian.

Você também precisará obter um nome de domínio para o seu servidor. Como este não será um site público, você pode realmente fazer o que quiser. O processo de compra e vinculação de um nome de domínio é diferente para cada host e provedor de nomes de domínio; portanto, verifique a documentação fornecida pelos serviços que você escolher.

Tudo aqui será tratado remotamente a partir da linha de comando do Linux. Portanto, se você estiver no Mac ou Linux, basta abrir um terminal e usar o SSH para acessar o seu VPS. Se você estiver no Windows, pegue um cliente SSH como o PuTTY .

Instale o que você precisa

Existem muitas peças nesse quebra-cabeça. Você também pode pegá-los todos agora, para ter o que precisa para continuar a partir daqui. O Debian normalmente não tem o sudo instalado por padrão, então pegue isso primeiro e configure-o.

$ su -c 'instala o sudo'

Digite sua senha de root e o Sudo será instalado. Então, você precisa adicionar seu usuário ao grupo sudo.

$ su -c 'gpasswd -um nome de usuário sudo'

Agora, você pode usar o sudo. Pode ser necessário fazer login novamente, se não funcionar imediatamente. A partir deste momento, você usará o sudo, principalmente porque desabilitará os logins raiz por questões de segurança.

Agora, pegue tudo nos repositórios do Debian.

$ sudo apt install ufw mariadb-server nginx certbot php php-mysql php-fpm php-cli php-json php-curl php-imap php-gd php-xml php-zip php-intl php-mcrypt php-imagick php-mbstring

Configure seu firewall

Seu servidor está na Internet. Não há como evitar isso, e isso significa que você precisará lidar com os atacantes. A configuração de um firewall simples ajudará a evitar muitas ameaças em potencial.

Em vez de usar o iptables diretamente, você pode usar o UFW (Uncomplicated Firewall) para proteger seu sistema. Possui sintaxe mais simples e é muito mais fácil trabalhar com ele.

Comece desativando tudo no firewall. Isso definirá a política padrão para negar conexões a todos os serviços e portas, garantindo que os invasores não possam se conectar em alguma porta esquecida.

O padrão $ sudo ufw nega entrada

$ sudo ufw padrão negar saída $ sudo ufw padrão negar encaminhamento

Em seguida, você pode informar ao ufw os serviços que deseja permitir. Nesse caso, você só precisa de SSH e acesso à web. Você também desejará ativar o NTP e o DNS para que seu servidor possa buscar atualizações e definir o relógio.

$ sudo ufw permite ssh $ sudo ufw permite ssh $ sudo ufw permite http $ sudo ufw permite http $ sudo ufw permite https $ sudo ufw permite https $ sudo ufw permite ntp $ sudo ufw permite ntp $ sudo ufw permite 53 $ sudo ufw permite 53 $ sudo ufw permite 67 $ sudo ufw permite 67

Você pode iniciar seu firewall agora. Ele fornecerá um aviso sobre a interrupção do SSH, mas você já permitiu o SSH, portanto ficará bem.

$ sudo ufw enable

Configurar SSH

O SSH é um dos serviços mais frequentemente atacados nos servidores Linux. É a porta de entrada para tudo o mais no servidor e geralmente é protegida apenas por uma senha. É por isso que é importante garantir que seu servidor não seja facilmente acessível aos atacantes por SSH.

Chaves SSH

Primeiro, você precisa configurar uma alternativa muito mais segura a uma senha, uma chave SSH. O processo é diferente no Windows e no Mac e Linux, portanto, siga as instruções adequadas à sua área de trabalho.

janelas

Como é o caminho do Windows, você precisa de mais um programa para concluir esta tarefa simples. PuTTYgen é um gerador de chaves RSA para PuTTY. Está disponível na página de download do PuTTY . Faça o download e execute-o.

Na janela que se abre, nomeie sua chave e crie uma senha para ela. É a senha que você usará para fazer login no seu servidor. Na parte inferior, selecione SSH-2 RSA e defina um tamanho de chave de pelo menos 2048 bits. 4096 é melhor, mas 2048 será um pouco mais rápido. Em seguida, gere suas chaves e salve as chaves pública e privada. Por fim, copie a chave pública exibida na parte superior da janela.

Use o PuTTY para conectar-se ao seu servidor. Abra um arquivo em ~ / .ssh / allowed_keys e cole sua chave.

De volta ao PuTTY, encontre SSH no menu lateral. Em seguida, abra "Auth". No campo da chave dinâmica, navegue até o local da chave privada que você acabou de salvar. Quando tudo no PuTTY estiver configurado para o seu servidor, salve a sessão. Teste-o para garantir que você esteja se conectando à sua chave antes de prosseguir.

Mac e Linux

Usuários de Mac e Linux têm um caminho muito mais fácil aqui. Comece gerando uma chave SSH, se você ainda não tiver uma. Você tem a opção de criar uma senha para a chave. É opcional, então essa é a sua ligação.

$ ssh-keygen -b 4096 -t rsa

Agora, basta enviar sua chave para o seu servidor. Substitua seu nome de usuário e o IP do servidor.

$ ssh-copy-id -i ~ / .ssh / id_rsa.pub

É isso aí!

Não permitir raiz e senhas

Depois de configurar sua chave, você pode desativar as senhas para SSH. Não se preocupe se você configurar uma chave com uma senha. Isso é algo diferente, e isso não afetará nada. Abra o arquivo de configuração SSH em / etc / ssh / sshd_config.

$ sudo nano / etc / ssh / sshd_config

Encontre a linha que diz:

#PermitRootLogin Proibir senha

Altere para:

PermitRootLogin no

Em seguida, encontre as duas linhas:

#PasswordAuthentication yes #PermitEmptyPasswords não

Altere-os para:

PasswordAuthentication no PermitEmptyPasswords no

Por fim, encontre:

UsePAM sim

Faça:

UsePAM não

Salve seu arquivo e feche-o. Em seguida, reinicie o SSH. Isso pode dar o pontapé inicial, por isso, reconecte-se.

$ sudo systemctl restart sshd

Configure seu banco de dados

A próxima coisa que você precisa fazer é configurar seu banco de dados. Realmente não há muito envolvido aqui, então não se preocupe muito. Você só precisa configurar um usuário e um banco de dados vazio para o Nextcloud acessar.

Na verdade, existe um script conveniente para configurar e proteger o MariaDB para você. Execute-o primeiro.

$ sudo mysql_secure_installation

A senha root padrão está vazia e, portanto, “Enter” quando solicitado. Em seguida, solicitará que você configure uma senha root. Faça isso. Responda "Sim" a todas as perguntas a seguir.

Você pode fazer login no seu banco de dados com a senha root que acabou de configurar.

$ sudo mysql -u root -p

O prompt será alterado para o MariaDB. Este é o console para gerenciar seu servidor de banco de dados. Comece criando um novo banco de dados. A capitalização conta aqui.

CRIAR DATABASE nextcloud;

Em seguida, crie um usuário para esse banco de dados.

CRIAR USUÁRIO `nextcloud` @` localhost` IDENTIFICADO POR "PasswordForUser";

Em seguida, conceda permissão a esse usuário para usar o banco de dados.

GRANT ALL ON nextcloud. * TO `nextcloud` @` localhost`;

É isso aí! Você pode sair do servidor de banco de dados agora.

q

Configurar PHP

O Nextcloud é escrito em PHP. Você já instalou a versão mais recente do PHP disponível no Debian Stretch, juntamente com as extensões PHP que o Nextcloud precisa para funcionar corretamente. Você ainda precisa fazer alguns ajustes na configuração do PHP para que funcione mais facilmente com o Nginx.

Ele realmente precisa apenas de alguns ajustes básicos de segurança. Estes não são nada importantes, mas ajudarão a melhorar a segurança do seu servidor.

Abra o /etc/php/7.0/fpm/php.ini com o sudo e seu editor de texto favorito.

O arquivo é enorme, então use a função de pesquisa do seu editor para navegar. Se você usa o Nano, é Ctrl + W. A primeira opção que você precisa encontrar é disable_functions. Adicione add phpinfo, system, mail, exec, no final.

Em seguida, encontre sql.safe_mode e ative-o. Em seguida, defina allow_url_fopen off. No final do arquivo, adicione a seguinte linha, salve e feche-a.

register_globals = Desativado

Obtenha o Nextcloud

O Nextcloud ainda não está disponível como pacote para o Debian, e está tudo bem. Você realmente não precisa ser assim. É muito parecido com outros aplicativos da Web PHP pré-criados, como o WordPress, e vem em um arquivo compactado que você pode extrair onde deseja instalar o Nextcloud.

A partir de agora, a versão estável mais recente é o Nextcloud, verifique novamente qual é a versão mais recente para você quando estiver lendo isso. O guia fará referência a 12, mas use qualquer que seja o último estável.

Mude para um diretório em que deseja fazer download do seu arquivo Nextcloud. Em seguida, mude para / var / www para extraí-lo.

$ cd ~ / Downloads $ wget https://download.nextcloud.com/server/releases/nextcloud-12.0.3.tar.bz2 $ cd / var / www $ sudo tar xjpf ~ / Downloads / nextcloud-12.0.3. tar.bz2

Se você estiver lendo isso no futuro, poderá encontrar o link de download na página de instalação do servidor do Nextcloud.

Por fim, altere a propriedade da sua instalação do Nextcloud para www-data.

$ sudo chown -R www-data: www-data / var / www / nextcloud

Criar certificados SSL

Criar seus certificados SSL é muito fácil, graças ao Certbot. O Certbot gerará automaticamente seus certificados SSL para você e os colocará na raiz da web de qualquer site para o qual você os esteja criando. Você só precisa executar um único comando.

$ sudo certbot certonly --webroot -w / var / www / nextcloud -d seu-dominio.com -d www.seu-dominio.com

Como é a primeira vez que você executa o Certbot, ele solicita um endereço de e-mail. Ele usará esse endereço para avisar quando seus certificados estão prestes a expirar. Você pode renová-los facilmente com um único comando também.

$ sudo certbot renew

Configurar Nginx

O Nginx é um servidor da Web leve, porém poderoso. Ele servirá a interface que você usa para acessar o Nextcloud. Existem alguns arquivos de configuração associados ao Nginx. A primeira é a configuração principal localizada em /etc/nginx/nginx.conf. Esse é o principal arquivo de configuração, mas possui padrões sólidos. Você pode brincar se souber o que está fazendo, mas pode deixá-lo sozinho e ficar bem também.

A próxima configuração é muito mais longa e mais complexa. Felizmente, você não precisa escrever tudo. Os desenvolvedores do Nextcloud já o fizeram. Você só precisa modificá-lo. O arquivo de configuração está localizado no site do Nextcloud . Pegue um para o webroot do Nginx. Crie um novo arquivo em / etc / nginx / sites-available / nextcloud e cole-o.

Depois de ter o arquivo, é necessário fazer algumas alterações simples. Primeiro, encontre o bloco upstream e altere-o para ficar assim:

manipulador de php upstream {server unix: /run/php/php7.0-fpm.sock; }

Em seguida, localize em qualquer lugar que diz cloud.example.com e altere-o para o seu nome de domínio.

A última coisa que você precisa fazer é apontar o Nginx para seus certificados SSL. Mude as linhas:

ssl_certificate /etc/ssl/nginx/cloud.example.com.crt; ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key;

Para:

ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/seudominio.com/privkey.pem;

É isso aí! Em seguida, você precisa vinculá-lo para que o Nginx possa encontrá-lo.

$ cd / etc / nginx / sites-enabled $ sudo ln -s / etc / nginx / sites-available / nextcoud nextcloud

Remova o padrão existente que está lá.

$ sudo rm padrão

Reinicie o PHP e o Nginx e você poderá acessar o Nextcloud!

$ sudo systemctl restart php7.0-fpm $ sudo systemctl restart nginx

Iniciar o Nextcloud

Abra o seu navegador e navegue até o seu nome de domínio. Você será recebido com a tela de configuração do Nextcloud. Crie uma conta de administrador e insira as informações da conta do banco de dados que você criou.

O Nextcloud levará alguns minutos para se configurar e instalar. Quando terminar, você será inserido no seu novo painel do Nextcloud. A partir daí, você pode criar novos usuários para permitir que as pessoas em quem confia no seu novo armazenamento na nuvem. Você também pode começar a enviar arquivos imediatamente.

É isso aí! Agora você tem sua própria nuvem privada!

Crie sua própria nuvem privada com o nextcloud