Anonim

L'archiviazione cloud è un modo eccellente per proteggere i tuoi file nel caso in cui succeda qualcosa e il tuo computer venga perso o danneggiato. Può aiutarti ad accedere ai tuoi file mentre sei in viaggio o al lavoro e ti aiuta a mantenere tutto sincronizzato su tutti i tuoi dispositivi.

Il cloud storage presenta tuttavia un grosso svantaggio. Devi fidarti di qualche compagnia con tutti i tuoi file personali. Cosa succede se vengono hackerati? Sono davvero tutti così affidabili o stanno attraversando le tue cose quando non stai guardando? Non è possibile saperlo con certezza.

C'è un'altra opzione. Puoi ospitare il tuo cloud storage con Nextcloud. Nextcloud è una soluzione di archiviazione cloud open source che ti consente di essere la tua azienda di archiviazione cloud. Ha un'interfaccia facile da usare e pulita e app di accompagnamento per tutti i tuoi dispositivi, quindi non hai a che fare con un po 'di spazzatura insieme.

Questa guida si concentrerà sull'hosting di Nextcloud su un VPS (Virtual Private Server), ma puoi anche eseguirlo localmente sulla tua rete domestica. Non aspettarti di accedervi dall'esterno a meno che non imposti il ​​port forwarding o esegua una VPN. Alcuni passaggi potrebbero essere leggermente diversi e non sarà necessario acquistare un nome di dominio o impostare certificati SSL.

Scegli un host

Link veloci

  • Scegli un host
  • Installa quello che ti serve
  • Configura il tuo firewall
  • Configura SSH
    • Chiavi SSH
      • finestre
      • Mac e Linux
    • Non consentire root e password
  • Configura il tuo database
  • Configura PHP
  • Ottieni Nextcloud
  • Crea certificati SSL
  • Configura Nginx
  • Avvia Nextcloud

Supponendo che tu stia andando con una vera soluzione cloud e desideri che i tuoi file siano accessibili sul Web, devi impostare un VPS su cui ospitare Nextcloud. Ci sono alcune ottime opzioni là fuori, quindi scegli quello che ti sembra meglio. Dai un'occhiata a Linode, DigitalOcean e Gandi, se non hai già in mente un host.

Questa guida utilizzerà Debian 9 "Stretch" come sistema operativo del server. Debian è super stabile e abbastanza sicuro per impostazione predefinita. È anche ben supportato dalla maggior parte delle piattaforme di hosting. Se ti senti più a tuo agio con Ubuntu, la maggior parte di questo si applicherà anche lì, poiché Ubuntu si basa su Debian.

Dovrai anche ottenere un nome di dominio per il tuo server. Dal momento che questo non sarà un sito pubblico, puoi davvero renderlo tutto ciò che ti piace. Il processo per l'acquisto e il collegamento di un nome di dominio è diverso per ogni host e provider di nomi di dominio, quindi assicurati di controllare la documentazione fornita dai servizi scelti.

Tutto qui verrà gestito in remoto dalla riga di comando di Linux. Quindi, se sei su Mac o Linux, puoi semplicemente aprire un terminale e utilizzare SSH per accedere al tuo VPS. SE sei su Windows, prendi un client SSH come PuTTY .

Installa quello che ti serve

Ci sono molti pezzi in questo puzzle. Puoi anche prenderli tutti ora, quindi hai quello che ti serve per continuare da qui. Di solito Debian non ha sudo installato di default, quindi prendilo per primo e configuralo.

$ su -c 'apt install sudo'

Inserisci la tua password di root e Sudo verrà installato. Quindi, è necessario aggiungere l'utente al gruppo sudo.

$ su -c 'gpasswd -a username sudo'

Ora puoi usare sudo. Potrebbe essere necessario accedere di nuovo, se non funziona immediatamente. Da questo punto in poi, utilizzerai invece sudo, soprattutto perché disabiliterai gli accessi root per motivi di sicurezza.

Ora prendi tutto dai repository di Debian.

$ sudo apt installa 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

Configura il tuo firewall

Il tuo server è su Internet. Non c'è modo di aggirare questo, e significa che dovrai affrontare gli attaccanti. L'impostazione di un semplice firewall consentirà di prevenire molte potenziali minacce.

Invece di usare direttamente iptables, puoi usare UFW (Uncomplicated Firewall) per proteggere il tuo sistema. Ha una sintassi più semplice ed è molto più facile lavorare.

Inizia disabilitando tutto nel firewall. Ciò imposterà la politica di default per negare le connessioni a tutti i servizi e le porte, assicurando che gli aggressori non possano connettersi su una porta dimenticata.

$ sudo ufw default nega l'arrivo

$ sudo ufw default nega in uscita $ sudo ufw default nega in avanti

Successivamente, puoi dire ai servizi che desideri consentire. In questo caso, hai solo bisogno di SSH e accesso al web. Inoltre vorrai abilitare NTP e DNS in modo che il tuo server possa recuperare gli aggiornamenti e impostare il suo orologio.

$ sudo ufw consenti in ssh $ sudo ufw consenti ssh $ sudo ufw consenti in http $ sudo ufw consenti http $ sudo ufw consenti in https $ sudo ufw consenti https $ sudo ufw consenti in ntp $ sudo ufw consenti ntp $ sudo ufw consentire in 53 $ sudo ufw consentire fuori 53 $ sudo ufw consentire in 67 $ sudo ufw consentire fuori 67

Ora puoi avviare il firewall. Ti darà un avvertimento sull'interruzione di SSH, ma hai già permesso SSH, quindi starai bene.

$ sudo ufw enable

Configura SSH

SSH è uno dei servizi più frequentemente aggrediti sui server Linux. È il gateway per tutto il resto sul server e di solito è protetto solo da una password. Ecco perché è importante assicurarsi che il server non sia facilmente accessibile agli aggressori su SSH.

Chiavi SSH

Innanzitutto, devi impostare un'alternativa molto più sicura a una password, una chiave SSH. Il processo è diverso su Windows rispetto a Mac e Linux, quindi segui le istruzioni che si adattano al tuo desktop.

finestre

Come per Windows, hai bisogno di un altro programma per completare questa semplice operazione. PuTTYgen è un generatore di chiavi RSA per PuTTY. È disponibile dalla pagina di download di PuTTY . Scaricalo ed eseguilo.

Nella finestra che si apre, dai un nome alla tua chiave e crea una password per essa. È la password che utilizzerai per accedere al tuo server. Nella parte inferiore, selezionare SSH-2 RSA e impostare una dimensione della chiave di almeno 2048 bit. 4096 è migliore, ma il 2048 sarà leggermente più veloce. Quindi, genera le tue chiavi e salva sia le chiavi pubbliche che quelle private. Infine, copia la chiave pubblica visualizzata nella parte superiore della finestra.

Usa PuTTY per connetterti al tuo server. Apri un file in ~ / .ssh / authorized_keys e incolla la chiave.

Torna in PuTTY, trova SSH nel menu laterale. Quindi, apri "Aut." Nel campo per la chiave pivate, cerca la posizione della chiave privata che hai appena salvato. Quando tutto in PuTTY è impostato per il tuo server, salva la sessione. Provalo per assicurarti di connetterti con la tua chiave prima di proseguire.

Mac e Linux

Gli utenti Mac e Linux hanno una strada molto più semplice qui. Inizia generando una chiave SSH, se non ne hai già una. Hai la possibilità di creare una password per la chiave. È facoltativo, quindi questa è la tua chiamata.

$ ssh-keygen -b 4096 -t rsa

Ora invia la chiave al tuo server. Sostituisci il tuo nome utente e l'IP del server.

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

Questo è tutto!

Non consentire root e password

Dopo aver impostato la chiave, è possibile disabilitare le password per SSH. Non preoccuparti se imposti una chiave con una password. È qualcosa di diverso e questo non avrà alcun impatto. Apri il file di configurazione SSH in / etc / ssh / sshd_config.

$ sudo nano / etc / ssh / sshd_config

Trova la riga che legge:

#PermitRootLogin prohibit-password

Modificalo in:

PermitRootLogin no

Quindi, trova le due righe:

#PasswordAuthentication sì #PermitEmptyPasswords no

Modificali in:

PasswordAuthentication no PermitEmptyPasswords no

Infine, trova:

UsePAM sì

Fallo:

UsePAM no

Salva il tuo file e chiudilo. Quindi, riavvia SSH. Questo potrebbe farti partire, quindi riconnettiti se lo fa.

$ sudo systemctl restart sshd

Configura il tuo database

La prossima cosa che dovrai fare è configurare il tuo database. Non c'è davvero molto da fare qui, quindi non preoccuparti troppo. Devi solo configurare un utente e svuotare il database per accedere a Nextcloud.

In realtà c'è uno script conveniente per configurare e proteggere MariaDB per te. Eseguilo per primo.

$ sudo mysql_secure_installation

La password di root predefinita è vuota, quindi "Invio" quando richiesto. Ti chiederà quindi di impostare una password di root. Fai quello. Rispondi "Sì" a tutte le domande che seguono.

Puoi accedere al tuo database con la password di root che hai appena impostato.

$ sudo mysql -u root -p

Il prompt cambierà in quello di MariaDB. Questa è la console per la gestione del server di database. Inizia creando un nuovo database. La capitalizzazione conta qui.

CREA DATABASE nextcloud;

Quindi, crea un utente per quel database.

CREA UTENTE `nextcloud` @` localhost` IDENTIFICATO DA "PasswordForUser";

Quindi, concedere a tale utente l'autorizzazione per utilizzare il database.

Concedi tutto su nextcloud. * A `nextcloud` @` localhost`;

Questo è tutto! Ora puoi uscire dal server di database.

q

Configura PHP

Nextcloud è scritto in PHP. Hai già installato l'ultima versione di PHP disponibile su Debian Stretch insieme alle estensioni PHP di cui Nextcloud deve funzionare correttamente. Devi ancora apportare un paio di modifiche alla tua configurazione PHP per farlo funzionare più facilmente con Nginx.

Ha solo bisogno di alcune modifiche di sicurezza di base. Questi non sono niente di grave, ma aiuteranno a migliorare la sicurezza del tuo server.

Apri /etc/php/7.0/fpm/php.ini con sudo e il tuo editor di testo preferito.

Il file è enorme, quindi usa la funzione di ricerca dell'editor per spostarti. Se hai usato Nano, è Ctrl + W. L'opzione pugno che devi trovare è disable_functions. Aggiungi aggiungi phpinfo, system, mail, exec, alla fine.

Quindi, trova sql.safe_mode e accendilo. Quindi, disattivare allow_url_fopen. Alla fine del file, aggiungere la seguente riga, salvarla e chiuderla.

register_globals = Off

Ottieni Nextcloud

Nextcloud non è ancora disponibile come pacchetto per Debian, e va bene. Non hai davvero bisogno che sia. È molto simile ad altre applicazioni web PHP pre-costruite, come WordPress, ed è disponibile in un archivio compresso che puoi estrarre dove vuoi che Nextcloud sia installato.

A partire da ora, l'ultima versione stabile è Nextcloud, ricontrolla qual è l'ultima versione per te quando stai leggendo questo. La guida farà riferimento a 12, ma usa qualunque sia l'ultima stabile.

Passa a una directory in cui desideri scaricare il tuo archivio Nextcloud. Quindi, cambia in / var / www per estrarlo.

$ 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 lo stai leggendo in futuro, puoi trovare il link per il download nella pagina di installazione del server di Nextcloud.

Infine, modifica la proprietà dell'installazione di Nextcloud in www-data.

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

Crea certificati SSL

La creazione dei certificati SSL è molto semplice grazie a Certbot. Certbot genererà automaticamente i certificati SSL per te e li inserirà nella radice Web di qualunque sito li stai creando. Hai solo bisogno di eseguire un singolo comando.

$ sudo certbot con certezza --webroot -w / var / www / nextcloud -d tuo-dominio.com -d www.tuo-dominio.com

Poiché è la prima volta che esegui Certbot, ti verrà chiesto un indirizzo email. Utilizzerà quell'indirizzo per avvisarti quando i tuoi certificati stanno per scadere. Puoi facilmente rinnovarli anche con un singolo comando.

$ sudo certbot rinnova

Configura Nginx

Nginx è un web server leggero ma potente. Servirà l'interfaccia che usi per accedere a Nextcloud. Esistono un paio di file di configurazione associati a Nginx. La prima è la configurazione principale che si trova in /etc/nginx/nginx.conf. Questo è il file di configurazione principale, ma ha valori predefiniti solidi. Puoi giocarci se sai cosa stai facendo, ma puoi lasciarlo da solo e stare bene.

La prossima configurazione è molto più lunga e complessa. Per fortuna, non è necessario scrivere tutto. Gli sviluppatori di Nextcloud lo hanno già fatto. Hai solo bisogno di modificarlo. Il file di configurazione si trova sul sito di Nextcloud . Prendi quello per il webroot di Nginx. Crea un nuovo file in / etc / nginx / sites-available / nextcloud e incollalo.

Una volta che hai il file, devi apportare un paio di semplici modifiche. Innanzitutto, trova il blocco upstream e modificalo in questo modo:

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

Quindi, trova ovunque dice cloud.example.com e modificalo con il tuo nome di dominio.

L'ultima cosa che devi fare è indicare Nginx ai certificati SSL. Cambia le linee:

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

Per:

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

Questo è tutto! Successivamente, è necessario collegarlo in modo che Nginx possa trovarlo.

$ cd / etc / nginx / siti abilitati $ sudo ln -s / etc / nginx / siti-disponibili / nextcoud nextcloud

Rimuovi l'impostazione predefinita esistente.

$ sudo rm predefinito

Riavvia PHP e Nginx e sarai in grado di accedere a Nextcloud!

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

Avvia Nextcloud

Apri il tuo browser web e vai al tuo nome di dominio. Sarai accolto con la schermata di configurazione di Nextcloud. Crea un account amministratore e inserisci le informazioni per l'account del database che hai creato.

Nextcloud impiegherà diversi minuti per configurarsi e installarsi. Al termine, verrai inserito nella nuova dashboard di Nextcloud. Da lì, puoi creare nuovi utenti per consentire alle persone di cui ti fidi nel tuo nuovo cloud storage. Puoi anche iniziare a caricare i file immediatamente.

Questo è tutto! Ora hai il tuo cloud privato!

Crea il tuo cloud privato con nextcloud