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
- Chaves SSH
- 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.
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.
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.
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.
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.
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!