Casa Impresa La guida definitiva al server Nextcloud

La guida definitiva al server Nextcloud

by Andrea Waag

Questo articolo illustra come creare un server di archiviazione cloud personalizzabile e ad alte prestazioni utilizzando Ubuntu Server 24.04.1 e Nextcloud Hub 9. Richiede una certa conoscenza dell'amministrazione di server Linux e della riga di comando.

A nessuno piace rimanere senza spazio di archiviazione cloud gratuito. Vedere quella notifica da Google Photos o iCloud che ti avvisa che hai esaurito lo spazio può rovinare il tuo esotico viaggio alla ricerca di bradipi in Sud America. Tuttavia, per noi amanti del fai da te e degli homelab, c'è una soluzione se sei disposto a sporcarti le mani.

Presentazione di Nextcloud

Nextcloud è una piattaforma di archiviazione cloud gratuita e open source che mette la potenza e la flessibilità del cloud nelle tue mani. Supporta diverse distribuzioni Linux popolari, come Red Hat Enterprise Linux 9 e Ubuntu 24.04 LTS. In questo articolo, useremo Ubuntu Server 24.04.1 e Nextcloud Hub 9 (30.0.0) per creare un server di archiviazione cloud ad alte prestazioni e completamente personalizzabile. Alcuni dei passaggi mostrati qui potrebbero richiedere una conoscenza di base dell'amministrazione del server Linux e dell'interfaccia della riga di comando, quindi mettiti a pensare e preparati a diventare tecnico!

Configurazione del server

Per iniziare a configurare un server Nextcloud, avrai bisogno di una nuova installazione di Ubuntu Server su un sistema di tua scelta. Una macchina virtuale sul tuo computer principale o qualsiasi hardware di riserva che hai in giro probabilmente farà al caso tuo! Consigliamo un computer con almeno 2-4 core CPU, 8 gigabyte di RAM e 500 GB di spazio di archiviazione. Quando hai il tuo sistema pronto, scarica Ubuntu Server visitando questo link: https://ubuntu.com/download/server .

Se non hai mai installato Ubuntu Server prima, dai un'occhiata alla loro guida prima di iniziare: https://ubuntu.com/tutorials/install-ubuntu-server Fai attenzione a non selezionare l'opzione per preinstallare Nextcloud nella pagina del software consigliato, perché ci penseremo noi.

Dopo aver collegato il server alla rete, avergli assegnato un nome host e aver effettuato l'accesso con il nome utente e la password creati durante la configurazione iniziale, scarica gli ultimi aggiornamenti software per Ubuntu Server digitando "sudo apt update && sudo apt upgrade -y" nella console e premi invio. Riavvia il server dopo che gli aggiornamenti sono stati completati utilizzando "sudo riavvia".

Nota: potrebbe essere necessario immettere nuovamente la password per eseguire i comandi sudo.

Installazione del software

Successivamente, dobbiamo procurarci alcuni dei software prerequisiti da cui dipende la nostra istanza Nextcloud. Digita (o preferibilmente copia e incolla) i seguenti comandi nella tua interfaccia a riga di comando per scaricare e installare il server web Apache e alcuni pacchetti di cui avrai bisogno in seguito per configurazioni Nextcloud più avanzate:

sudo apt install apache2 mariadb-server php libapache2-mod-php redis-server libmagickcore-6.q16-7-extra
Per installare PHP, esegui il comando sudo apt install php-apcu php-bcmath php-bz2 php-cli php-common php-curl php-gd php-gmp php-imagick php-intl php-ldap php-mbstring php-memcached php-mysql php-redis php-smbclient php-zip php-xml.

Se i prompt ti chiedono di digitare Y o N per continuare o interrompere l'installazione, digita Y e premi invio. Infine, digita "wget https://download.nextcloud.com/server/releases/latest.zip" per ottenere l'ultima versione di Nextcloud e utilizzare “sudo apt install unzip” per installare lo strumento di decompressione dovremo estrarre quei file.

Ora che disponiamo di tutto il software necessario per configurare la nostra istanza Nextcloud, esaminiamo il server web che abbiamo installato.

Configurazione del server Web Apache – Parte 1

Prima di iniziare a pasticciare con Apache, dobbiamo prima assicurarci di poterci connettere correttamente al server. Per consentire le connessioni del browser web (HTTP e HTTPS) all'istanza Nextcloud, usa i seguenti comandi:

sudo ufw allow in "Apache Full"
sudo ufw enable

Ora dovresti avere un server web funzionante e accessibile sul tuo server Ubuntu! Su un altro computer connesso alla stessa rete della tua macchina Nextcloud, digita l'indirizzo IP del tuo server in una finestra del browser e premi invio. Se non riesci a ricordare qual è l'indirizzo IP del server, usa il “nome host -I” comando sul tuo server per visualizzarlo. Se l'installazione è riuscita, dovresti vedere la pagina predefinita di Apache2 visualizzata in tutto il suo splendore!

Sebbene alcuni possano dire che questa pagina del server web predefinito è piuttosto carina, la sostituiremo con qualcosa di ancora migliore nella seconda parte. Facciamo una breve deviazione e impostiamo MariaDB ora!

Configurazione di MariaDB

Il nostro server Nextcloud avrà bisogno di un database sempre online per archiviare la configurazione del server e le informazioni del profilo utente. Per configurare MariaDB in modo che venga eseguito dopo il riavvio del sistema, digitare “sudo systemctl abilita mariadb” e premi invio. Ora siamo pronti a preparare il database per la nostra installazione Nextcloud!

Fortunatamente, MariaDB è pre-confezionato con un'utilità di configurazione sicura, quindi non dobbiamo fare molto lavoro pesante. Usa “sudo mysql_secure_installation” per avviarlo e rispondere alle domande poste dal mago.

  • Immettere la password corrente per root (immettere per nessuno): clicca invio
  • Passa all'autenticazione unix_socket [Y/n] n
  • Cambiare la password di root? n
  • Rimuovere gli utenti anonimi? [Y / n] y
  • Non consentire il login di root da remoto? [Y / n] y
  • Rimuovere il database di test e accedervi? [Y / n] y

MariaDB è ora sicuro e possiamo iniziare a creare un database per servire la nostra istanza Nextcloud.

Tipologia “sudo mysql -u root” e inserisci questi comandi quando appare l'interfaccia della riga di comando di MySQL (e assicurati di usare “;” alla fine di ogni riga!):

CREA UTENTE 'nextcloud'@'localhost' IDENTIFICATO DA 'P@$$w0rd';

Nota: sostituisci “nextcloud” e “P@$$w0rd” con un nome utente e una password a tua scelta.

CREA DATABASE SE NON ESISTE nextcloud SET DI CARATTERI utf8mb4 COLLATE utf8mb4_general_ci;
CONCEDI TUTTI I PRIVILEGI SU nextcloud.* A 'nextcloud'@'localhost';

Nota: sostituisci ancora una volta “nextcloud” prima del simbolo @ con il nome utente utilizzato in precedenza.

FLUSH PRIVILEGES;
uscire;

Ci stiamo avvicinando! Ora abbiamo un server web e un database funzionanti (ma non finiti).

Abilitazione delle estensioni PHP e miglioramento delle prestazioni PHP

Ricordi tutte quelle estensioni PHP che abbiamo installato? Dobbiamo abilitarle per garantire che Nextcloud possa usarle correttamente. Usa questo comando per abilitare le estensioni PHP richieste:

sudo phpenmod apcu bcmath bz2 curl gd gmp imagick intl ldap mbstring memcached mysql redis smbclient zip xml

Ora che sono state abilitate le estensioni corrette, dobbiamo modificare alcune impostazioni PHP per adattarle meglio alle nostre esigenze. Il file di configurazione PHP che andremo a modificare si trova in “/etc/php/8.3/apache2/php.ini” e può essere modificato posizionando "sudo nano" davanti al percorso e premendo Invio. Se hai installato una versione diversa di PHP, cambia il "8.3" al numero di versione principale della versione installata, che può essere ottenuto inserendo “php -v” nella consolle.

Una volta aperto il “php.ini” file usando nano, l'editor di testo integrato di Ubuntu, tieni premuto il tasto control (ctrl) e tocca il tasto "W" sulla tastiera. Quando appare la barra di ricerca, digita “tempo_massimo_di_esecuzione”, e premi invio. Nano passerà quindi alla prima corrispondenza che trova con il valore inserito. Utilizzando i tasti freccia per navigare e il tasto backspace per rimuovere i caratteri, cambia "30" in "360". Ripeti questo trucco per cambiare i valori per le seguenti impostazioni PHP:

memory_limit = 512M
  • Può essere facoltativamente aumentato per fornire a PHP più memoria, se necessario (1024 M, 2048 M, ecc.)
dimensione_massima_post = 100G
upload_max_filesize = 100G
  • Questo valore e il valore precedente rappresentano la dimensione massima del file che puoi caricare sul tuo server Nextcloud. Modificali con la dimensione massima del file desiderata. (1G = 1 gigabyte, 10G = 10 gigabyte, 100G = 100 gigabyte, ecc.) Fai attenzione a inserire le dimensioni solo in K (kilobyte), M (megabyte) e G (gigabyte).
data.fuso orario = America/New_York
  • Rimuovi “;” prima della riga e usa questa guida per determinare il tuo fuso orario corretto: https://www.php.net/manual/en/timezones.php
opcache.abilita=1
  • Rimuovere “;” prima della riga.
consumo_di_memoria_opcache=128
  • Rimuovi “;” prima della riga. Questo valore, in megabyte, può essere personalizzato per adattarsi alla quantità di memoria che hai nel tuo server Nextcloud (128 = 128 megabyte, 1024 = 1024 megabyte/1 gigabyte, 2048 = 2048 megabyte/2 gigabyte).
opcache.interned_stringers_buffer=16
  • Rimuovi “;” prima della riga. Rappresenta la quantità di memoria allocata per le stringhe internate in megabyte, il valore consigliato è 16.
opcache.max_accelerated_files=10000
  • Rimuovi “;” prima della riga. Questo valore può essere regolato su qualsiasi numero tra 200 e 1000000 per adattarsi alle capacità di memorizzazione nella cache e di memoria del tuo sistema.
opcache.revalidate_freq=1
  • Rimuovere “;” prima della riga e modificare in 1.
opcache.save_comments=1
  • Rimuovere “;” prima della riga e verificare che il valore sia impostato su 1.

Dopo aver completato tutte le modifiche necessarie al file php.ini, salva il file tenendo premuto il tasto Ctrl (ctrl) e premendo il tasto “O”. Premi Invio per confermare, quindi tieni premuto di nuovo Ctrl (ctrl) e tocca il tasto “X” per uscire da nano.

Successivamente, abilita altri moduli Apache richiesti immettendo "sudo a2enmod dir env headers mime riscrivi ssl" nella console. Non è necessario riavviare Apache utilizzando il comando suggerito dal messaggio della console a questo punto.

Configurazione del server Web Apache – Parte 2

Sebbene abbiamo scaricato Nextcloud e configurato molti dei suoi prerequisiti software, dobbiamo ancora sostituire la pagina web predefinita di Apache con Nextcloud. Digitare “cd ~” nella console e premiamo invio, riportandoci alla home directory del nostro utente. Qui è dove è stato scaricato il file ZIP di Nextcloud. Ora, digita "decomprimi ultimo.zip" Premi invio e guarda l'utilità di unzip rombare!

Le “ultimo.zip” Il file ZIP viene ora estratto in una cartella denominata “nuvola successiva” nella stessa directory da cui è stato scaricato. Questa nuova cartella contiene tutti i materiali necessari per il sito Nextcloud. Ora inizieremo a spostare questa cartella nella sua corretta home, “/var/www/html”.

Prima che la cartella possa essere trasportata, dobbiamo assicurarci che il dispositivo incorporato “www-dati” l'utente è il proprietario della nuova directory. Questo è estremamente importante poiché il “www-dati” l'utente gestisce tutte le operazioni del server web eseguite dal server web Apache e da Nextcloud stesso. Tipo "sudo chown -R www-dati:www-dati ./nextcloud" nella console e premi invio.

Ora che il “www-dati” l'utente possiede la cartella, possiamo spostarla senza indugio. Utilizzare “sudo mv ./nextcloud /var/www/html” per spostare la cartella nella directory corretta.

Ora possiamo disabilitare la pagina predefinita del server web Apache inserendo “sudo a2dissite 000-default.conf” nella console. Ignora l'avviso di ricaricare di nuovo il server Apache e crea un file host virtuale per il nuovo sito digitando “sudo nano /etc/apache2/sites-available/nextcloud.conf” e premendo invio. Il contenuto del file host virtuale dovrebbe essere digitato esattamente come segue:

DocumentRoot /var/www/html/nextcloud/ NomeServer nextcloud-demo.moose.local Richiedi tutte le opzioni concesse AllowOverride Tutte le opzioni FollowSymLinks MultiViews Dav via

sostituire “nextcloud-demo.moose.local” con il nome di dominio completamente qualificato (FQDN) del server su cui hai installato Nextcloud. La prima parte dell'FQDN è il nome host del server creato in precedenza, che può essere visualizzato utilizzando “nome host” comando nella console. La seconda e la terza parte del nome sono rispettivamente il dominio e il dominio di primo livello. Ad esempio, se il tuo dominio era “storagereview.com” e il nome host del tuo server era “nuvola successiva”, allora il nome di dominio completo del tuo server sarà “nextcloud.storagereview.com”.

Se non possiedi un dominio, puoi acquistarne uno da un registrar come Cloudflare utilizzando https://www.cloudflare.com/products/registrar/ oppure utilizzare un nome host gratuito disponibile al pubblico da siti Web come https://www.noip.com/ Se non desideri acquistare un dominio o utilizzare un nome host gratuito, puoi inserire un FQDN fittizio in questo campo, con l'avvertenza che puoi utilizzare solo l'indirizzo IP del server (pubblico e privato) per connetterti all'istanza Nextcloud.

Nota: per usare l'FQDN del server per accedere localmente alla tua istanza Nextcloud, devi avere un server DNS correttamente configurato in esecuzione sulla tua rete domestica. Altrimenti, devi usare l'indirizzo IP locale del server quando vi accedi dalla tua rete domestica.

Una volta terminata la scrittura del file host virtuale e sostituito l'FQDN di esempio con l'FQDN del server (legittimo o meno), è possibile abilitare finalmente il sito Nextcloud utilizzando “sudo a2ensite nextcloud.conf” che a “sudo systemctl riavvia apache2” per riavviare il server web con il nuovo sito. Vai alla tua istanza Nextcloud usando un browser web su un altro computer che risiede sulla stessa rete tramite il FQDN del server o il suo indirizzo IP locale.

Configurazione iniziale di Nextcloud

Se hai seguito correttamente i passaggi precedenti, verrai accolto da una pagina che ti chiederà di creare un utente amministratore per il sito e di inserire alcuni dettagli sul tuo server Nextcloud. Assegna all'utente amministratore il nome che preferisci, come Administrator o Superadmin, e una password complessa.

Configurazione iniziale di NextcloudNella sezione "Archiviazione e database" della pagina di configurazione, immettere “/var/www/html/nextcloud/dati” nel campo "Cartella dati", e il nome utente dell'account, la password e il nome del database che hai utilizzato durante la creazione del database MariaDB. Per il campo "Host del database", inserisci “ospite locale” e clicca sul pulsante Installa al termine.

Nextcloud configura il database

Il sito si caricherà per un breve periodo e poi ti presenterà l'opzione di installare diverse app consigliate per il tuo server Nextcloud. Tieni presente che aggiungere più app alla tua istanza Nextcloud aumenterà il carico di elaborazione del server, l'utilizzo della memoria e l'utilizzo totale del disco. Scegli se installare le app consigliate o, facoltativamente, saltare questo passaggio.

App consigliate da NextcloudUna volta completata l'installazione delle app o visualizzata la pagina successiva, puoi leggere il menu introduttivo se lo desideri.

Sembra che il server Nextcloud sia terminato, ma manca ancora un passaggio per farlo funzionare: impostare un cron job per eseguire attività pianificate regolarmente sul server.

Creazione di un Cron Job

Un cron job è un comando eseguito regolarmente senza l'intervento dell'utente. Il nostro server Nextcloud ha bisogno di un cron job per chiamare il server “cron.php” script ogni 5 minuti per prestazioni e funzionalità ottimali.

Per impostare questo cron job, immettere il comando “sudo crontab -u www-data -e” nella console del server.

Quando il “www-dati” quando si apre il crontab dell'utente, aggiungere la seguente riga in fondo al file:

*/5 * * * * php -f /var/www/nextcloud/cron.php

Una volta terminato, tieni premuto il tasto Ctrl (Ctrl) e premi il tasto "O" per salvare il file, quindi tieni premuto il tasto Ctrl (Ctrl) e premi il tasto "X" per uscire. Congratulazioni! Ora hai un server Nextcloud funzionante disponibile sulla tua rete locale! Puoi iniziare a caricare e scaricare file da e verso il tuo server Nextcloud sulla tua rete domestica ora, ma per farlo risplendere dobbiamo migliorarne la sicurezza, aggiungere alcune app preferite da homelab, impostare un sistema di memorizzazione nella cache della memoria estremamente veloce e renderlo accessibile da Internet pubblico.

Migliorare la sicurezza del tuo server Nextcloud

Uno dei modi migliori per aumentare la sicurezza del tuo server web è passare a HTTPS anziché a HTTP non crittografato e non sicuro. Quando abilitato, le richieste verranno servite tramite TLS 1.3, lo standard di crittografia più recente e sicuro per le connessioni web. Questo è un passaggio necessario ogni volta che si pianifica di esporre un sito web a Internet pubblico ed è un ottimo primo passo per proteggere informazioni sensibili.

Una volta deciso di crittografare il traffico Nextcloud, ci sono due opzioni tra cui scegliere per impostare HTTPS: usare un certificato autofirmato o usare un certificato da un'autorità di certificazione valida. Se al momento non possiedi un dominio o non intendi impostarne uno per un'istanza Nextcloud temporanea, ti consigliamo di usare un certificato autofirmato o uno da un provider di nomi host. Se stai pianificando di avere una configurazione Nextcloud più permanente, ti consigliamo vivamente di ottenere un certificato pubblicamente attendibile da un'autorità di certificazione come Let's Encrypt.

HTTPS con un certificato autofirmato

Per abilitare e creare un certificato autofirmato, è necessario impartire alcuni semplici comandi:

sudo a2enmod ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nextcloud-selfsigned.key -out /etc/ssl/certs/nextcloud-selfsigned.crt

Ora che abbiamo abilitato il modulo Apache SSL (noto anche come TLS) e creato il certificato autofirmato, dobbiamo istruire il sito ad attivare TLS e utilizzare il certificato. Digitare “sudo nano /etc/apache2/sites-available/nextcloud.conf” e premi invio per iniziare a modificare ancora una volta il file host virtuale.

Aggiungi le seguenti righe alla fine del tuo file host virtuale esattamente come segue, ma sostituisci il campo "ServerName" con il nome di dominio completo del tuo server:

DocumentRoot /var/www/html/nextcloud/ ServerName nextcloud-demo.moose.local SSLEngine su SSLCertificateFile /etc/ssl/certs/nextcloud-selfsigned.crt SSLCertificateKeyFile /etc/ssl/private/nextcloud-selfsigned.key Richiedi tutte le opzioni concesse AllowOverride Tutte le opzioni FollowSymLinks MultiViews Dav via

Tieni premuto control (ctrl) e premi il tasto "O" per salvare il file, e tieni premuto control (ctrl) e premi il tasto "X" per uscire da nano. Per applicare queste modifiche al server web Apache, usa il “sudo systemctl riavvia apache2” comando. Ora dovresti aver abilitato HTTPS utilizzando un certificato autofirmato!

La prossima volta che visiti il ​​tuo sito digitando il nome di dominio completo del server o l'indirizzo IP, dovresti vedere un avviso che ti informa che l'autorità di certificazione del sito non è valida. Continua oltre questo errore (il metodo varia a seconda del tuo browser web) e visualizza il sito. Il browser web si è connesso automaticamente tramite HTTPS e invierà i dati tramite crittografia TLS.

Dashboard di Nextcloud

HTTPS con un certificato attendibile

Per utilizzare un certificato attendibile per Nextcloud, devi prima possedere un dominio o avere un certificato firmato da un provider di nomi host. Se in precedenza stavi utilizzando un certificato autofirmato e hai seguito i passaggi nella sezione precedente per abilitare HTTPS, rimuovi la porzione di testo aggiunta alla fine del file ed esegui i comandi “sudo a2dismod ssl” che a “sudo systemctl riavvia apache2”Ricordati di usare control + “O” e control + “X” per salvare e uscire da nano una volta terminato.

Configurazione HTTPS per i proprietari di domini (tramite Certbot)

Ora che il file host virtuale è tornato a una configurazione HTTP standard, possiamo iniziare i preparativi per usare un certificato attendibile da un'autorità di certificazione. Se possiedi un dominio, segui questi passaggi per acquisire e implementare un certificato. In caso contrario, passa alla sezione successiva, che descriverà in dettaglio l'uso di un certificato acquisito da un provider di nomi host. Per acquisire un certificato usato con il tuo dominio, useremo Certbot di Let's Encrypt, un'organizzazione non-profit che fornisce certificati gratuiti da usare nei server web.

Per scaricare Certbot, installa e aggiorna prima Snap utilizzando "sudo snap install core && sudo snap refresh core". Quindi, digita “sudo snap install –classic certbot” (due trattini consecutivi prima di "classico") per installare il pacchetto.

Esegui il comando “sudo certbot –apache” (di nuovo, due trattini prima di "apache") per avviare certbot e seguire tutte le istruzioni per creare e scaricare il certificato web.

Il processo di creazione del certificato richiederà informazioni come un indirizzo e-mail utilizzato per contattare il proprietario del dominio e ti chiederà di accettare i termini e le condizioni richiesti da Let's Encrypt. Inserisci o seleziona il nome di dominio per cui stai acquisendo un certificato quando richiesto e completa il processo interattivo. Se riscontri errori durante l'utilizzo di Certbot, potresti dover abilitare l'inoltro delle porte sul tuo router per le porte 80 e 443 all'indirizzo IP privato del tuo server Nextcloud o configurare i record DNS del tuo dominio in modo che puntino all'indirizzo IP pubblico del tuo router. Il processo per l'inoltro delle porte e la configurazione dei record DNS dipendono in larga misura dal tuo router, dal registrar del dominio e dal provider di servizi Internet e pertanto non sono trattati in questa guida.

Dopo che Certbot ha terminato, riaprire il file host virtuale digitando “sudo nano /etc/apache2/sites-available/nextcloud.conf” e premendo invio. Aggiungere le seguenti righe proprio sopra il intestazione per abilitare la riscrittura degli URL HTTP come HTTPS e sostituire “nextcloud-demo.moose.local” con il nome di dominio completo del tuo server:

RewriteEngine su RewriteCond %{SERVER_NAME} = nextcloud-demo.moose.local RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanente]

Una volta completato, il file host virtuale dovrebbe apparire così:

Ora dovresti avere un certificato attendibile rilasciato da un'autorità di certificazione valida e la crittografia HTTPS pronta per il web!

Configurazione HTTPS tramite un certificato da un provider di nomi host

I passaggi per utilizzare un certificato da un provider di nomi host per abilitare HTTPS sul tuo server Nextcloud sono identici a quelli trattati nella sezione "HTTPS con un certificato autofirmato" presente in questo articolo, con l'unica eccezione che devi sostituire il percorso alle chiavi autofirmate con un percorso alle chiavi dal tuo provider di nomi host. Comandi come "ottenere" che a "mv" può essere utilizzato per scaricare e spostare i file del certificato nelle directory appropriate (/etc/ssl/certs per il file del certificato e /etc/ssl/private per il file della chiave). Assicurati di abilitare il modulo Apache SSL con “sudo a2enmod ssl” comando e uso “sudo systemctl riavvia apache2” una volta terminato, applica le tue modifiche. Il file host virtuale completato per usare i file di certificato dovrebbe essere simile a questo (con i campi SSLCertificateFile e SSLCertificateKeyFile sostituiti con i percorsi ai tuoi file di certificato e chiave personalizzati):

Installazione dell'app Antivirus per i file

Anche se Nextcloud può trasmettere dati in modo sicuro tramite HTTPS, ciò non significa che tutto ciò che tu o i tuoi utenti caricate sia sicuro. Che siano intenzionali o meno, le infezioni da malware sui server web possono causare danni enormi e diffondersi a macchia d'olio ad altri sistemi se non vengono curate rapidamente. Per un ulteriore livello di protezione contro i malintenzionati su Internet, un programma antivirus è un must per i server accessibili da Internet.

ClamAV è una suite antivirus gratuita e open source che può essere integrata con Nextcloud per analizzare i file caricati dagli utenti alla ricerca di malware. L'app store di Nextcloud presenta un'app chiamata "Antivirus for files" che utilizza ClamAV come backend per analizzare i file degli utenti e proteggere il server. Questa app può essere scaricata andando alla scheda "App" cliccando sull'immagine del profilo dell'account amministratore e selezionando la categoria "Sicurezza".

Fai clic sul pulsante "Download and enable" nella sezione "Antivirus for files" per installarlo sulla tua istanza Nextcloud. Successivamente, dobbiamo installare ClamAV e abilitare lo scanner e il sistema di aggiornamento delle firme malware. Usa “sudo apt install clamav clamav-daemon” per ottenere tutti i pacchetti ClamAV necessari.

Una volta installati i pacchetti, eseguire “sudo dpkg-reconfigure clamav-daemon” nella console per far apparire un menu di configurazione interattivo. Lo useremo per personalizzare il comportamento di scansione della nostra configurazione ClamAV.Inserisci le seguenti risposte alle domande elencate di seguito:

  • Gestire automaticamente il file di configurazione? Si
  • Tipo di presa: UNIX
  • Il socket locale (UNIX) clamd ascolterà su: /var/run/clamav/clamd.ctl
  • Proprietario del gruppo del socket locale clamd (UNIX): clamav
  • Modalità di creazione per socket locale clamd (UNIX): 666
  • Gestire correttamente i file socket UNIX rimanenti? Si
  • Vuoi abilitare la scansione della posta? Non
  • Vuoi abilitare la scansione dell'archivio? Non
  • Profondità massima della directory consentita: 15
  • Vuoi che il demone segua i normali collegamenti simbolici dei file? Si
  • Timeout per l'arresto dello scanner dei thread (secondi): 180
  • Numero di thread per il demone: 2
    • Sottrai 2 dal numero di core/vCPU del tuo server Nextcloud e inserisci quel numero in questo campo.
  • Numero di connessioni in sospeso consentite: 15
  • Vuoi utilizzare il logger di sistema? Non
  • File di registro per clamav-daemon (inserisci none per disabilitarlo): /var/log/clamav.log
  • Vuoi registrare le informazioni temporali con ogni messaggio? Non
    • Se un numero elevato di scritture su disco non è dannoso per il sistema, selezionare invece "Sì".
  • Vuoi abilitare la rotazione del registro? Si
  • Ritardo in secondi tra i controlli automatici del demone: 3600
  • Utente per eseguire clamav-daemon come: clamav
  • Gruppi per clamav-daemon (separati da spazi): www-data
  • Vuoi caricare il bytecode dal database? Si
  • Livello di sicurezza da applicare al bytecode: Firmato con fiducia
  • Timeout di esecuzione del bytecode in millisecondi: 60000

Wow! È stata una configurazione parecchio impegnativa! Fortunatamente per noi, dobbiamo farlo solo una volta. Usa “systemctl abilita clamav-freshclam” che a “systemctl abilita clamav-daemon” per consentire a ClamAV di avviarsi dopo l'avvio del sistema e possiamo iniziare a configurare l'app Nextcloud "Antivirus per file".

Utilizzando un browser Web su un altro computer connesso alla stessa rete e subnet del server Nextcloud, accedi a Nextcloud e clicca sull'immagine del profilo del tuo utente amministratore. Clicca sull'opzione "Impostazioni di amministrazione" dal menu a discesa e seleziona la sezione "Sicurezza" dopo che la pagina ha terminato il caricamento.

Scorri verso il basso fino alla sezione "Antivirus for Files" e modifica il campo "Mode" in "ClamAV Daemon (Socket)". Modifica il campo "When infectious files are found during a background scan" in "Delete file" e premi il pulsante "Save". ClamAV eseguirà periodicamente la scansione dei file caricati su Nextcloud per rilevare malware ed eliminerà i file che corrispondono a firme malware note.

Integrazioni Nextcloud e miglioramenti generali

Ora che abbiamo creato un server cloud funzionale e sicuro per l'archiviazione dei dati, possiamo ampliarne le capacità e aggiungere nuove funzionalità. Cominciamo prendendoci cura di alcuni frutti a portata di mano: connettere Nextcloud a un server di posta elettronica e impostare la regione telefonica predefinita.

Connessione di un server di posta elettronica

Per inviare notifiche e-mail, avvisi di attività e link di reimpostazione password (per utenti non LDAP), Nextcloud deve essere connesso a un server e-mail funzionante. Se ospiti autonomamente il tuo server e-mail, la configurazione è semplice come immettere l'indirizzamento del server corretto e le informazioni di autenticazione. Puoi anche utilizzare un server e-mail di terze parti con un indirizzo e-mail che hai già, come il server SMTP di Gmail.

Vai al nome di dominio completamente qualificato o all'indirizzo IP del tuo server Nextcloud usando un browser web su un computer sulla stessa rete e subnet del tuo server. Fai clic sull'immagine del profilo del tuo utente amministratore e seleziona "Impostazioni di amministrazione" dal menu a discesa.

Nella pagina "Impostazioni di amministrazione", seleziona la sezione "Impostazioni di base" dal lato sinistro e scorri verso il basso fino al modulo "Server di posta elettronica".

Da questa pagina puoi configurare le impostazioni di crittografia, indirizzamento e autenticazione del tuo server di posta elettronica. Puoi scegliere alcuni metodi di crittografia e autenticazione adatti alle tue esigenze di sicurezza o compatibilità.

Per utilizzare il server SMTP di Gmail con un account Google che già possiedi, accedi prima a https://myaccount.google.com/apppasswords e crea una password per l'app seguendo le istruzioni sul sito. Assegna alla tua password per l'app un nome associato al tuo server Nextcloud e conserva la tua password in un luogo sicuro. Nota che la password viene visualizzata con spazi ogni quattro caratteri, ma in realtà non contiene questi spazi. Le password per l'app sono stringhe di sedici lettere continue.

Compila i seguenti campi del server di posta elettronica come elencato di seguito:

  • Modalità di invio: SMTP
  • crittografia: Nessuno/STARTTLS
  • Da indirizzo: JohnDoe @ storagereview.com
    • Inserisci qui l'indirizzo del tuo account Gmail.
  • Indirizzo del server: smtp.gmail.com : 587
  • Autenticazione: Sì (selezionare la casella)
  • Credenziali: [email protected] apppasswordqui
    • Inserisci l'indirizzo del tuo account Gmail e la password dell'app che hai creato qui.

Al termine, fai clic sul pulsante "Salva" e utilizza il pulsante "Invia e-mail" per verificare che la configurazione sia valida.

Se non hai ancora impostato un indirizzo email per l'account utente amministratore che stai utilizzando, riceverai un avviso che ti chiederà di farlo. Questo può essere facilmente risolto cliccando sull'immagine del profilo dell'utente amministratore, selezionando "Impostazioni personali" dal menu a discesa e digitando il tuo indirizzo email nel campo "Email". Una volta terminato, torna al modulo "Server email" in "Impostazioni di base" nella pagina "Impostazioni di amministrazione" e reinserisci la configurazione se necessario.

Impostazione della regione predefinita del telefono

Una modifica molto rapida ma piuttosto utile che possiamo apportare per far sì che Nextcloud gestisca meglio i numeri di telefono è l'impostazione di una regione telefonica predefinita per l'istanza. Quando gli utenti compilano il loro profilo nelle impostazioni "Informazioni personali" che si trovano in "Impostazioni personali", viene chiesto loro di includere facoltativamente un numero di telefono per scopi di contatto. Senza una regione telefonica predefinita, Nextcloud obbliga gli utenti a immettere un prefisso nazionale con questo numero. L'impostazione della regione telefonica predefinita consente agli utenti di escludere questo prefisso.

Nella console del server Nextcloud, utilizzare “sudo nano /var/www/html/nextcloud/config/config.php” per modificare il file di configurazione PHP del sito Nextcloud.

Aggiungi la seguente riga al tuo file di configurazione PHP, mantenendo la coerenza con lo schema di spaziatura creato dalle righe precedenti e inserendola prima della parentesi “);” finale:

'default_phone_region' => 'Stati Uniti',

Per motivi di sicurezza, non dovresti mostrare a nessuno il contenuto della tua istanza Nextcloud “config.php” file. Contiene informazioni sensibili come password e segreti di sistema che solo tu o il/i tuo/i amministratore/i di sistema dovreste conoscere. Dopo aver terminato di aggiungere la riga della regione telefonica predefinita al tuo file di configurazione, salva il nuovo contenuto tenendo premuto ctrl e toccando "O", quindi tenendo premuto ctrl e toccando "X" per uscire. Per applicare le modifiche, inserisci “sudo systemctl riavvia apache2” nella console e premi invio.

Impostazione di una finestra di manutenzione

Un altro piccolo miglioramento che possiamo apportare al file di configurazione PHP del sito Nextcloud è l'impostazione di una finestra di manutenzione per il server per eseguire attività più intensive e potenzialmente con impatto sull'utente. La finestra è impostata utilizzando l'ora UTC, quindi dovrai convertire l'ora di inizio della finestra di manutenzione desiderata in un'ora UTC equivalente (espressa come un numero intero tra 1 e 24). La finestra di manutenzione dura quattro ore, quindi una finestra di manutenzione che inizia alle 3:00 AM UTC terminerà alle 7:00 AM UTC.

Usa il “sudo nano /var/www/html/nextcloud/config/config.php” per iniziare a modificare nuovamente il file di configurazione PHP e aggiungere questa riga prima della parentesi “);” finale, seguendo le convenzioni di spaziatura utilizzate dalle righe già presenti nel file:

'avvio_finestra_manutenzione' => 1,
    • Ricordati di sostituire "1" con l'orario di inizio della finestra di manutenzione desiderato, tradotto in ora UTC.

Dopo aver salvato il file utilizzando ctrl + “O” e ctrl + “X”, applicare la finestra di manutenzione utilizzando “sudo systemctl riavvia apache2”.

Integrazione LDAP/Server Active Directory

Se intendi dare accesso a più utenti alla tua istanza Nextcloud, una delle funzionalità più potenti che puoi aggiungere a Nextcloud è la possibilità di connetterti e autenticare un server LDAP o Active Directory. Molte organizzazioni e homelabber utilizzano Active Directory o LDAP per organizzare e controllare l'accesso degli utenti alle risorse di rete in modo centralizzato e Nextcloud non fa eccezione. Con l'app "LDAP user and group backend", gli utenti del tuo dominio Active Directory o server LDAP possono essere importati nel tuo server Nextcloud e accedere utilizzando il loro nome utente o indirizzo e-mail e la loro password. Questa funzionalità diventa ancora più potente se combinata con un archivio esterno (come una condivisione SMB su un NAS) che fornisce cartelle "home" individuali per gli utenti con autorizzazioni specifiche per quell'utente.

Per installare l'app "LDAP user and group backend", fai clic sull'immagine del profilo quando hai effettuato l'accesso alla pagina web di Nextcloud con il tuo account utente amministratore. Seleziona "App" dal menu a discesa che appare e fai clic sul modulo "Featured apps". Scorri verso il basso fino a trovare l'app "LDAP user and group backend" e fai clic sul pulsante "Enable".

Ora che l'app è stata abilitata, dobbiamo connettere Nextcloud a un server LDAP. Assicurati di avere un account pronto per autorizzare questa connessione. In genere, si consiglia un account di servizio creato appositamente per questa connessione, ma è possibile utilizzare qualsiasi account Active Directory o LDAP con la possibilità di cercare nella directory. Tieni presente che, sebbene questo esempio utilizzi un account "Amministratore" di dominio incorporato su un dominio Active Directory, questa non è una pratica sicura. Se il server Nextcloud viene compromesso e le credenziali dell'account "Amministratore" vengono rubate, un aggressore avrà tutte le autorizzazioni per leggere, modificare e persino eliminare qualsiasi oggetto nel dominio.

Vai di nuovo alla pagina "Impostazioni di amministrazione" cliccando sull'immagine del profilo del tuo utente amministratore e selezionandola dal menu a discesa. Clicca sul "modulo di integrazione LDAP/AD" per iniziare.

In questa pagina, inizia a compilare le informazioni richieste per il tuo server LDAP/Active Directory:

  • host: 192.168.1.102
    • Sostituisci con l'indirizzo IP/nome host del tuo server LDAP o del controller di dominio Active Directory.
  • porto: 389
    • Se si utilizza Active Directory, utilizzare la porta 389. Se si utilizza un altro tipo di server LDAP o si è personalizzata la porta su cui il server AD ascolta le richieste LDAP, immettere qui il numero specifico.
  • DN utente: CN=Amministratore,CN=Utenti,DC=moose,DC=locale
    • Inserisci il nome distinto per l'account utilizzato per connettere Nextcloud al tuo server LDAP/AD. Se utilizzi Active Directory, puoi trovarlo facilmente eseguendo questo comando tramite una finestra CMD, con "Administrator" sostituito con il nome utente dell'account che stai utilizzando per la connessione:
      • dsquery user -name “Amministratore”
    • Dopo aver compilato questo campo, fare clic sul pulsante "Salva credenziali".
  • Un DN di base per riga: DC=alce,DC=locale
    • Dopo aver salvato le credenziali precedenti, fare clic sul pulsante "Rileva DN di base" per determinare automaticamente il DN di base per il server LDAP/AD.
    • Facoltativamente, fare clic sul pulsante "Test Base DN" per verificare se la configurazione finora è valida.

Dopo aver completato la prima pagina del modulo "Integrazione LDAP/AD", premi il pulsante etichettato "Continua" e prenditi un secondo per visualizzare e studiare la sezione "Utenti".

Sebbene il layout della pagina possa sembrare inizialmente confuso, la sua funzione è quella di filtrare gli utenti disponibili per l'accesso al server Nextcloud in base ad attributi come classi di oggetti e gruppi. Consigliamo di creare un gruppo univoco per gli utenti che effettueranno l'accesso al server Nextcloud in modo che il filtraggio possa essere eseguito in base all'appartenenza a quel gruppo. Seleziona le classi di oggetti e/o i gruppi desiderati a cui desideri concedere l'accesso e fai clic sul pulsante ">" per aggiungere il gruppo al filtro. Questo esempio utilizza un gruppo denominato "famiglia". Fai clic sul pulsante "Verifica impostazioni e conta utenti" per visualizzare un messaggio che mostra quanti utenti corrispondono alla descrizione inserita. Se il conteggio sembra errato, controlla nuovamente i filtri di classe di oggetti e gruppo.

Una volta ottenuto il numero corretto di utenti, premi il pulsante "Continua" per procedere alla sezione "Attributi di accesso". Seleziona le caselle per i campi "Nome utente LDAP/AD:" e "Indirizzo e-mail LDAP/AD" e verifica che l'attributo di accesso sia corretto inserendo un nome utente e un indirizzo e-mail (se desiderato) nella casella "Test Loginname" e cliccando su "Verifica impostazioni".

Se il nome utente/indirizzo e-mail può essere utilizzato per effettuare l'accesso, verrà visualizzata una notifica che indica "Utente trovato e impostazioni verificate". Premi il pulsante "Continua" un'ultima volta per passare alla pagina finale, "Gruppi". Similmente alla pagina "Utenti", la sezione "Gruppi" restringe chi può effettuare l'accesso al server Nextcloud utilizzando criteri di classe di oggetti e di gruppo. Effettua le stesse selezioni effettuate nella pagina "Utenti" o riduci il numero di utenti che possono effettuare l'accesso inserendo criteri più specifici qui nei campi "Cerca classi di oggetti" e "Cerca gruppi". Questo esempio seleziona il gruppo "famiglia" dall'elenco sulla pagina e utilizza il pulsante ">" per limitare l'accesso solo a quel gruppo. Infine, fai clic su "Verifica impostazioni e conta i gruppi" per visualizzare il numero di gruppi validi per l'accesso.

Ora hai concesso la possibilità di accedere al server Nextcloud per i gruppi LDAP o Active Directory selezionati nei passaggi precedenti. Fai clic sull'immagine del profilo del tuo utente amministratore e seleziona "Esci". Quando ti viene richiesto un nome utente e una password per accedere di nuovo, testa la capacità di accesso per uno degli utenti a cui hai concesso l'accesso. Se l'utente non riesce ad accedere, rivisita la sezione "Utenti" e "Gruppi" di questa pagina per rivedere i tuoi criteri e risolvere l'errore.

Integrazione di archiviazione esterna

Un'altra potente aggiunta al tuo server Nextcloud è la possibilità di connetterti e utilizzare pool di archiviazione esterni. Posizionare i file utente direttamente sul server stesso può portare a problemi relativi alla gestione dell'archiviazione del server e alla necessità di aumentare costantemente la capacità per soddisfare la domanda degli utenti. Se non sei costantemente vigile nell'applicare quote e rimuovere dati non necessari creati dagli utenti, ciò può portare a frustrazione e tempi di inattività imprevisti. La separazione dei componenti del server Web e di archiviazione di una configurazione Nextcloud è altamente consigliata e fondamentale quando si mira a creare un sistema di archiviazione cloud scalabile e un'esperienza utente piacevole.

L'app "Supporto di archiviazione esterna" per Nextcloud consente di montare cartelle dai seguenti tipi di archiviazione:

  • Amazon S3
  • FTP
  • Nextcloud
    • Sì, è proprio così, puoi connetterti e utilizzare lo spazio di archiviazione disponibile su altri server Nextcloud!
  • Archiviazione di oggetti OpenStack
  • SFTP
  • SMB / CIFS
  • WebDAV

Come puoi vedere, ci sono diverse scelte per connettere Nextcloud a storage array esterni, cloud e altri sistemi. Ad esempio, collegheremo un'istanza Nextcloud a una condivisione SMB che controlla l'accesso a diverse cartelle utilizzando le autorizzazioni concesse agli utenti importati dal dominio Active Directory a cui ci siamo connessi in precedenza.

Per abilitare l'app "Supporto archiviazione esterna", clicca sull'immagine del profilo dell'utente amministratore quando hai effettuato l'accesso al sito e seleziona "App". Vai di nuovo su "App in evidenza" e trova il modulo etichettato "Supporto archiviazione esterna". Clicca sul pulsante "Abilita" per rendere disponibile l'applicazione.

Una volta abilitata l'app, potrai aggiungere un archivio esterno andando in "Impostazioni di amministrazione" e cliccando sul modulo "Archiviazione esterna". Da questa pagina, puoi connetterti all'archiviazione esterna selezionando il tipo di archiviazione dal menu a discesa e compilando i dettagli di configurazione.

Per aggiungere una condivisione SMB, seleziona l'opzione "SMB/CIFS" dall'elenco e compila i dettagli di configurazione come segue:

  • Autenticazione: Inserito manualmente, memorizza nel database
    • Per far sì che gli utenti inseriscano manualmente il proprio nome utente e password per l'autenticazione, seleziona questa opzione. Per utilizzare un set di credenziali statiche per dare agli utenti accesso a una condivisione SMB, seleziona "Login e password". Altrimenti, seleziona l'opzione che meglio soddisfa le tue esigenze dal menu a discesa.
  • Nome cartella: famiglia
    • Questo nome può essere impostato su qualsiasi cosa tu voglia usare per descrivere lo storage che stai montando. Esempi: "SMB" o il nome della condivisione che stai montando.
  • host: 192.168.1.140
    • Sostituisci questo valore con l'indirizzo IP o il nome di dominio completo del server che ospita la condivisione SMB a cui desideri connetterti.
  • Condividi: famiglia
    • Sostituisci questo valore con il nome della condivisione che desideri montare presente sul server immesso nel campo "Host".
  • Sottocartella remota: \
    • Per montare la cartella di livello superiore della condivisione (la cartella condivisa stessa), utilizzare "\". Altrimenti, immettere il percorso verso una sottocartella all'interno della condivisione desiderata in questo modo:
      • \sottocartella\un'altra_sottocartella\ancora_un'altra_sottocartella
  • Dominio: MOOSE
    • Sostituisci questo valore con il nome NetBIOS per un dominio se l'accesso alla condivisione è controllato tramite LDAP o Active Directory. Questo campo non è obbligatorio se la condivisione non è controllata da un server LDAP/AD.
  • Mostra file nascosti: Vedi
    • Selezionare questa casella se gli utenti devono essere in grado di visualizzare i file nascosti (quelli che iniziano con il carattere ".").
  • File system sensibile alle maiuscole/minuscole: Vedi
  • Verificare l'accesso ACL quando si elencano i file: Vedi
    • Questa opzione è estremamente importante per il corretto funzionamento del controllo degli accessi. Altrimenti, se due utenti hanno la stessa condivisione montata e hanno cartelle configurate in modo che l'altro non abbia accesso, saranno comunque in grado di visualizzare i file dell'altro.
  • Tutte le persone: Vedi
    • Seleziona questa opzione se desideri che tutti gli utenti Nextcloud possano immettere le credenziali e connettersi alla condivisione SMB, altrimenti scegli un gruppo locale nell'istanza Nextcloud per rendere disponibile la condivisione utilizzando il campo sottostante.
      • Purtroppo, al momento in cui scriviamo, non è possibile selezionare un gruppo LDAP/Active Directory utilizzando il campo sottostante questa opzione quando non è selezionata.

Dopo aver inserito i dettagli di configurazione della condivisione SMB specifici per la tua configurazione, fai clic sul pulsante con il segno di spunta per salvarli e renderli disponibili agli utenti.

Se vuoi che gli utenti siano in grado di montare il proprio storage esterno, fai clic sul segno di spunta sotto la sezione storage Mounting della pagina. Se scegli di abilitare questa opzione, puoi inoltre limitare i tipi di storage disponibili per l'auto-montaggio.

Per completare la configurazione della condivisione SMB, gli utenti devono accedere al modulo "Archiviazione esterna" in "Impostazioni personali" dopo aver cliccato sulla propria immagine del profilo e averla selezionata dal menu a discesa.

In questa pagina, gli utenti possono immettere il proprio nome utente e password e fare clic sul pulsante con il segno di spunta per sbloccare la condivisione SMB per l'archiviazione e il recupero dei file.

Una volta che l'utente ha inserito le proprie credenziali, è possibile accedere alla condivisione cliccando sull'icona della cartella nella parte superiore del menu del sito Nextcloud e sfogliando l'elenco delle cartelle e dei file dell'utente.

Trasformare Nextcloud in un vero server Web

Ora la tua istanza Nextcloud ricca di funzionalità è quasi pronta a diventare un server web potente e disponibile al pubblico! Prima di aprire le porte, dobbiamo assicurarci che il server possa gestire richieste intensive da parte di più utenti che accedono ai file. Abbiamo già aumentato le prestazioni apportando diverse modifiche chiave alla configurazione PHP del sistema e l'aggiunta del supporto per la memorizzazione nella cache della memoria può amplificare tutto ciò.

Impostazione della memorizzazione nella cache della memoria – APCu

ACPu è una cache PHP che aiuta ad accelerare i tempi di accesso agli oggetti usati di frequente. La useremo come prima cache per la nostra istanza Nextcloud. Prima di abilitare la cache APCu, dobbiamo apportare alcune modifiche al file "php.ini" del nostro sistema.

Usa il “sudo nano /etc/php/8.3/apache2/php.ini” per iniziare a modificare il file. Scorrere fino in fondo al file tenendo premuto il tasto freccia giù per un periodo di tempo prolungato. In una nuova riga in fondo al file, aggiungere le seguenti righe:

apc.abilita_cli=1
dimensione apc.shm_=128M

Aggiungendo queste due righe il sistema potrà usare APCu come cache e impostare la dimensione della cache su 128 megabyte anziché sul valore predefinito di 32. Al termine, premere control (ctrl) + “O” e control (ctrl) + “X” per salvare il file e uscire da nano.

Per terminare l'attivazione della cache APCu, utilizzare “sudo nano /etc/php/8.3/mods-available/apcu.ini” e aggiungere “apc.enable_cli=1” in fondo al file di configurazione come abbiamo fatto per “php.ini” file. Utilizzare control (ctrl) + “O” e control (ctrl) + “X” di nuovo per salvare e uscire dal file di configurazione.

Abbiamo abilitato PHP per utilizzare APCu, ma ora dobbiamo istruire Nextcloud a utilizzarlo.

Tipologia “sudo nano /var/www/html/nextcloud/config/config.php” nella console e premi invio. Nel file di configurazione PHP di Nextcloud, aggiungeremo una riga per far sì che Nextcloud utilizzi APCu per la memorizzazione nella cache della memoria locale:

'memcache.local' => '\OC\Memcache\APCu',

Inserisci questa riga prima della parentesi “);” finale, seguendo le convenzioni di spaziatura delle righe del file di configurazione precedente. Ancora una volta, tieni premuto control (ctrl) e premi “O” e poi control (ctrl) e “X” per salvare e uscire.

Una volta salvato il file di configurazione PHP, utilizzare “sudo systemctl riavvia apache2” per riavviare il server web Apache e applicare le modifiche.

Se hai seguito tutti i passaggi per configurare correttamente APCu per la memorizzazione nella cache della memoria locale, le prestazioni del tuo server Nextcloud dovrebbero essere aumentate in modo sostanziale! Facciamo un ulteriore passo avanti e configuriamo Redis per un po' più di bontà nella memorizzazione nella cache della memoria.

Impostazione della memorizzazione nella cache della memoria – Redis

Potresti chiederti: "Perché il mio server web ha bisogno di due cache di memoria diverse? Non ne basta una?" La risposta a questa domanda è in realtà piuttosto semplice. Proprio come ogni strumento in un negozio ha il suo utilizzo, così fanno APCu e Redis. APCu è un'eccellente cache di memoria locale e supera notevolmente quest'ultima in questa categoria, mentre Redis brilla nel caching distribuito e nel blocco dei file transazionali.

Per iniziare con Redis, modificheremo il file di configurazione del sistema Redis inserendo
“sudo nano /etc/redis/redis.conf” nella console e premendo Invio. Di default, il servizio Redis ascolta una porta TCP per il caching e il traffico di blocco dei file di transazione, ma per una configurazione a server singolo, un socket Unix è il metodo di comunicazione preferito. Utilizzare una porta TCP avrebbe senso se stessimo fornendo il servizio Redis su una rete, ma un socket Unix è molto più efficiente per le comunicazioni tra i processi del server web Redis e Nextcloud.

Una volta inserito nano, tieni premuto il tasto Ctrl (Ctrl) e premi “W” per attivare la funzione di ricerca di nano. Digita “socket unix” nella barra di ricerca e premi invio, e nano salterà alla “Socket Unix” sezione di configurazione del file. Nella “Socket Unix” sezione, rimuovere il "#" caratteri e spazi vuoti davanti “unixsocket /run/redis/redis-server.sock” che a “unixsocketperm 700”. Cambiare il "700" a "770"e scorri verso l'alto fino a trovare la riga che dice “porta 6379”. Cambieremo questo valore in "0", dicendo in effetti al server Redis di non ascoltare su una porta TCP per le connessioni. Guarda le immagini sottostanti per convalidare il tuo file di configurazione prima di usare control (ctrl) + "O" e control (ctrl) + "X" per salvare e uscire dal file.

Con queste modifiche apportate al file di configurazione del sistema Redis, ora possiamo specificare che vogliamo usare Redis per il caching distribuito e il blocco dei file transazionali nel file di configurazione PHP di Nextcloud. Apri questo file in nano usando “sudo nano /var/www/html/nextcloud/config/config.php”.

In fondo al file di configurazione PHP di Nextcloud, prima della parentesi “);” finale, aggiungi queste righe, prestando molta attenzione alla spaziatura e alle virgole:

'memcache.distributed' => '\OC\Memcache\Redis', 'memcache.locking' => '\OC\Memcache\Redis', 'redis' => [ 'host' => '/run/redis/redis-server.sock', 'porta' => 0, ],

Se hai inserito le righe correttamente, la sezione di memorizzazione nella cache del tuo file di configurazione PHP dovrebbe apparire come questo frammento:

Prima di riavviare il server web Apache e Redis per applicare le modifiche, utilizzare “sudo usermod -a -G redis www-data” aggiungere il “www-dati” utente al “redi” gruppo, concedendo al server web l'accesso al socket Redis Unix. Infine, digita "sudo systemctl restart apache2 && sudo systemctl restart redis-server" nella console e premi Invio per applicare le modifiche e riavviare i servizi interessati.

Esporre Nextcloud a Internet

Siamo così vicini a finire! L'ultimo passaggio per distribuire il tuo server Nextcloud è renderlo accessibile alla rete Internet pubblica. Questo passaggio richiede di configurare il port forwarding sul tuo router e potrebbe comportare un po' di ricerca da parte tua. Utilizza il catalogo di guide al port forwarding su https://portforward.com/router.htm per provare a trovare il produttore del router e leggere la soluzione. Se non riesci a trovare il produttore del router nell'elenco o stai utilizzando un router aziendale/fatto in casa, potresti dover fare delle ricerche sul web finché non trovi il metodo corretto.

Durante la configurazione dell'inoltro delle porte, inoltra le porte 80 e 443 dall'indirizzo IP privato del tuo server Nextcloud (che può essere trovato utilizzando “nome host -I” comando) all'indirizzo IP pubblico del router. Se il tuo provider di servizi Internet non ti fornisce un indirizzo IP pubblico, devi usare un servizio come Tunnels di Cloudflare, che ti consente di creare un tunnel sicuro tra il tuo server web e i server di Cloudflare, che inoltrano il traffico dai visitatori del sito web a te.

Se possiedi un dominio o utilizzi un nome host da un provider di nomi host, assicurati che i tuoi record DNS siano impostati per puntare all'indirizzo IP pubblico del tuo server. Facoltativamente, alcuni provider di servizi offrono la possibilità di offuscare completamente il tuo indirizzo IP ai visitatori del sito Web e di trasportare in modo sicuro tali dati dai loro server al tuo.

Manutenzione e aggiornamento di Nextcloud

Assicurarti che il tuo server Nextcloud abbia gli ultimi aggiornamenti e patch di sicurezza è una parte importante per mantenere il tuo cloud storage veloce e sicuro. Prima di concludere, esaminiamo alcuni modi per mantenere il tuo server come nuovo!

Comandi post-distribuzione

Dopo aver distribuito il tuo server Nextcloud, potresti aver notato alcuni avvisi nella pagina "Panoramica" dopo aver cliccato su "Impostazioni di amministrazione" nel menu dell'immagine del profilo. Occasionalmente, questi avvisi includono anche comandi che possono essere eseguiti per risolvere immediatamente il problema a cui si riferisce l'avviso. In genere, i comandi devono essere eseguiti come “www-dati” utente ed esegui da “/var/www/html/nextcloud” directory. Tipo “cd /var/www/html/nextcloud” e premi invio per cambiare la directory di lavoro corrente nella cartella appropriata e inserisci “sudo -u www-data” prima di ciascuno dei comandi.

Ora possiamo eseguire alcuni di questi comandi per correggere gli avvisi prima che diventino problemi:

sudo -u www-data php occ db:add-missing colonne
sudo -u www-data php occ db:aggiungi-indici-mancanti
sudo -u www-data php occ db:aggiungi-chiavi-primarie-mancanti

Questi comandi assicureranno che il database sia impostato correttamente e che non manchi alcuna informazione critica. Felice database, felice vita! Giusto?

Mantenere Ubuntu Server aggiornato

Aggiornare regolarmente il sistema operativo e i pacchetti software del server è importante per mantenerlo sicuro e veloce. Individua un intervallo di tempo in cui l'utilizzo del server è basso ogni settimana o due ed esegui i seguenti comandi:

sudo apt update && sudo apt upgrade -y
sudo reboot

Questi comandi aggiorneranno il sistema operativo e i pacchetti software del server e riavvieranno il server in modo che le modifiche vengano applicate al successivo avvio.

Aggiornamento di Nextcloud

Poiché Nextcloud non è stato installato utilizzando un gestore di pacchetti, l'aggiornamento dei pacchetti software del server utilizzando “adatto” non spingerà automaticamente Nextcloud alla versione successiva. Per iniziare ad aggiornare il nostro server Nextcloud, dobbiamo cliccare sull'immagine del profilo dell'utente amministratore nell'angolo in alto a destra della pagina web e selezionare "Impostazioni di amministrazione" dal menu a discesa. Nella pagina "Panoramica", possiamo vedere che è disponibile un aggiornamento, in questo caso la versione 30.0.1. Se un'opzione di aggiornamento non appare nella pagina "Panoramica", non preoccuparti, hai già l'ultima versione! Torna qui di tanto in tanto per vedere quando diventa disponibile una nuova versione.

Una volta stabilito che è disponibile un aggiornamento e raggiunta una finestra di aggiornamento idonea, torna alla console del server e immetti questo comando:

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

Questo comando imposterà ricorsivamente il “www-dati” utente come proprietario del "Www" directory e tutte le sottodirectory e i file, assicurando che il processo di aggiornamento possa accedere e modificare qualsiasi file necessario.

Una volta completato il comando, torna alla pagina "Panoramica" nel menu "Impostazioni di amministrazione" e fai clic sul pulsante etichettato "Apri aggiornamento". Questo ti porterà al menu "Aggiornamento".

Da qui, puoi cliccare sul pulsante "Start update" per iniziare la verifica dell'aggiornamento e il processo di download di Nextcloud. Se tutto funziona correttamente, dovresti vedere dei segni di spunta verdi accanto a ogni passaggio prima di "Continue with web based updater".

Nota: se il processo di aggiornamento fallisce nella fase "Download", riprova il download finché non funziona. Potrebbero essere necessari diversi tentativi.

Una volta che tutti i segni di spunta verdi sono apparsi nel menu "Updater", fai clic sul pulsante etichettato "Disattiva la modalità di manutenzione e continua nell'aggiornamento basato sul Web". Nella schermata che appare dopo averlo fatto, fai clic su "Avvia aggiornamento" per terminare il processo di aggiornamento e iniziare ad applicarlo.

In alternativa, come suggerito dalla pagina per server più grandi o più lenti, puoi navigare verso “nuvola successiva” directory ed eseguire manualmente l'aggiornamento utilizzando i seguenti comandi:

cd / var / www / html / nextcloud
sudo -u www-data php occ aggiornamento

Una volta terminato l'aggiornamento, verrai reindirizzato alla pagina "Dashboard" sul sito web del tuo server Nextcloud. Il tuo server ora esegue la versione più recente e migliore di Nextcloud!

Congratulazioni! Ce l'hai fatta!

Ora sei l'orgoglioso proprietario e gestore di un server Nextcloud completamente funzionale, indurito e ad alte prestazioni. Ora puoi invitare familiari o amici a usare il tuo server per l'archiviazione cloud, se lo desideri. Ricorda, Nextcloud è una piattaforma altamente modulare, quindi non aver paura di provare nuove app o modificare la configurazione per soddisfare le tue esigenze! Assicurati di impostare backup regolari del server il prima possibile e tieni d'occhio le cose per assicurarti che tutto funzioni correttamente.

Un tour della configurazione Nextcloud dell'autore

Wow, ce l'hai fatta a superare tutto questo e vuoi ancora leggere altro? Consideraci impressionati! Ecco un rapido tour e alcune immagini della configurazione Nextcloud dell'autore, se stai cercando un po' di ispirazione:

  • Hardware:
    • Server di virtualizzazione:
      • Sistema operativo: Ambiente di virtualizzazione Proxmox
      • Telaio: Supermicro SC216 con gabbia per unità di avvio ridondante posteriore opzionale
      • Processore: Intel Xeon E5-2683
      • RAM: 4x 32 GB DDR4 2400 MHz ECC RDIMM
      • Scheda madre: Gigabyte MU70-SU0 (LGA 2011-3)
      • Interfaccia utente: Broadcom SAS 9305-24i
      • NIC: adattatore Intel X520-DA2 a 2 porte 10 GbE SFP+
      • Scheda grafica: NVIDIA Quadro K1200
      • Unità di avvio: 2x SSD Samsung 850 EVO 120 GB SATA
      • Unità dati: 24x SSD Samsung 860 EVO 250 GB SATA
    • NAS:
      • Sistema operativo: TrueNAS SCALE
      • Telaio: HPE ProLiant MicroServer Gen10 Plus
      • Processore: Intel Xeon E-2224
      • RAM: 2x 16 GB DDR4 2666 MHz ECC UDIMM
      • HBA: controller HPE Smart Array E208i-p SR Gen10 integrato
      • NIC: adattatore HPE Ethernet 560SFP+ a 2 porte 10 GbE SFP+
      • Unità di avvio: Micron M600 256 GB SATA SSD (collegato tramite USB)
      • Unità cache: 2x SSD Samsung 860 EVO 250 GB SATA (collegati tramite USB)
      • Unità dati: 4x HDD WD Red Plus da 4 TB a 5400 RPM
      • Unità di backup: WD Red Pro 14 TB 7200 RPM HDD (collegato tramite USB)
    • Modem:
      • Netgear CM1200
      • DOCSIS 3.1
      • 4 porte WAN RJ1 da 45 GbE (compatibili con l'aggregazione di link a 2 porte)
    • Router:
      • Sistema operativo: pfSense
      • Telaio: Dell OptiPlex 7040 SFF
      • CPU: Intel Core i5 6500
      • RAM: 8 GB DDR4
      • NIC: adattatore Intel E1G44ET RJ4 a 1 porte 45 GbE
      • Unità di avvio: 2x SSD Samsung 860 EVO 250 GB SATA
    • Interruttore principale:
      • Rete Dell N4032F
      • 24 porte SFP+ 10 GbE
      • 2 porte QSFP+ da 40 GbE
      • Porta di gestione da 1 GbE
    • Interruttore di accesso:
      • Rete Dell X1052
      • 48 porte RJ1 da 45 GbE
      • 4 porte SFP+ 10 GbE
    • Punti di accesso:
      • Sistema operativo: OpenWRT
      • Linksys EA8300 Max-Stream
      • AC2200
      • MU-MIMO
      • Wi-Fi 5 (802.11ac)
      • 1 porta LAN RJ1 da 45 GbE
      • 4 porte LAN RJ1 da 45 GbE
    • UPS:
      • Caricabatterie CyberPower CP1500AVRLCD3
      • 1500VA
      • 900W
  • Macchine virtuali:
    • Ambiente di virtualizzazione Proxmox:
      • 2x controller di dominio Windows Server 2022 Datacenter
      • Server web Ubuntu Server 24.04.1 Nextcloud
      • Server di gioco Windows Server 2022
    • SCALA TrueNAS:
      • Destinazione di backup del server di backup Proxmox

Andrew usa il suo server Nextcloud per ospitare servizi di archiviazione dati per i suoi cari. Utilizzando una combinazione di un dominio Active Directory con controller di dominio ridondanti, un NAS per contenere tutti quei dati utente e un server di virtualizzazione, Andrew ha ottimizzato la sua configurazione per fornire servizi di archiviazione ad alte prestazioni sia a casa che ovunque con una connessione Internet.

La spina dorsale della sua configurazione è il Dell Networking N4032F, che fornisce connessioni da 10 gigabit al secondo tra il suo server Proxmox VE e l'array di storage TrueNAS SCALE. Il traffico di dati, gestione e storage è stato separato in tre VLAN, che forniscono ulteriore sicurezza in caso di violazione. Il suo switch di accesso fornisce connessioni standard da 1 gigabit al secondo al suo PC da gioco, punti di accesso e altri vari dispositivi. Tutti i server e le macchine virtuali sono monitorati da un Raspberry Pi modello 3B+ che esegue Ubuntu Server e un'istanza Uptime Kuma. Non appena un server/VM si arresta, Andrew viene avvisato tramite e-mail e, in caso di interruzione di corrente, i server vengono spenti con grazia non appena l'UPS segnala un basso livello di carica.

Andrew ha anche personalizzato il suo server di virtualizzazione utilizzando uno chassis Supermicro 24U a 2 bay e parti ottenute da eBay e altre fonti "dubbie". In una configurazione ZFS RAIDZ2, questa matrice di 24 SSD di semplici unità di livello consumer può fornire una velocità di circa 8.2 gigabyte al secondo per le operazioni di lettura e 2.7 gigabyte al secondo per le operazioni di scrittura su macchine virtuali, come misurato qui su una VM Windows Server 2022:

La vera star dello show di archiviazione dati è l'HPE ProLiant MicroServer Gen10 Plus di Andrew, che contiene quattro dischi rigidi WD Red Plus da 4 TB ed è collegato in modo casuale tramite USB 3.2 Gen2 (10 Gbps) e Gen1 (5 Gbps) a un SSD Micron per l'avvio di TrueNAS, un'unità WD Red Pro da 14 TB per l'archiviazione di backup e altri due SSD Samsung 860 EVO per la memorizzazione nella cache. Per essere chiari, Andrew non consiglia di farlo, ma gli piace spingere al massimo il possibile con l'hardware che possiede. Cinque nove di affidabilità non sono assolutamente garantiti qui in nessuna circostanza, gente.

Altri dispositivi degni di nota includono un PC Dell OptiPlex 7040 SFF riadattato, che esegue pfSense per fornire servizi di routing per le varie subnet del suo homelab, e il modem Netgear CM1200, che sorprendentemente supporta l'aggregazione di link per qualche motivo. Abbiamo detto che ogni connessione dati del server, 1 o 10 GBps, è ridondante in caso di errore? Ciò consentirebbe al sistema di archiviazione di Andrew di condividere teoricamente i dati a una velocità di 20 Gbps in modo bidirezionale, in condizioni particolari, con più connessioni che si verificano simultaneamente. Se solo avesse le unità giuste per arrivare anche solo lontanamente a quella velocità!

Conclusione

Ci auguriamo che tu abbia trovato utile questa lunga ma dettagliata guida all'installazione di Nextcloud. Fare le cose nel modo più difficile ha spesso dei vantaggi e sapere di più sul funzionamento del tuo cloud storage è sempre una buona cosa. Se non l'hai ancora fatto, iscriviti a Newsletter di StorageReview per leggere altri articoli su server, sistemi di archiviazione e homelab, e seguici su YouTube, TikTok, X (in precedenza Twitter) o Instagram!

Riferimenti/Fonti:

Interagisci con StorageReview

Newsletter | YouTube | Podcast iTunes/Spotify | Instagram | Twitter | TikTok | RSS feed