2d illustration of Cloud computing, Cloud Computing Concept, Cloud computing technology internet concept background

NextCloud è una piattaforma open source per il cloud storage e la condivisione di file, che permette di accedere ai propri dati da qualsiasi dispositivo e da qualsiasi luogo. È molto simile ad altre piattaforme cloud come Dropbox o Google Drive, ma con l’importante differenza che NextCloud è completamente open source e quindi personalizzabile e configurabile.

NextCloud è molto utile per le organizzazioni che vogliono avere un controllo totale sui propri dati e la propria privacy. Può essere utilizzato sia da piccole imprese che da grandi aziende, ma anche da singoli utenti che vogliono gestire i propri dati in modo sicuro e privato. Inoltre, NextCloud offre una vasta gamma di funzionalità, tra cui la condivisione di file, la sincronizzazione, la collaborazione su documenti, l’integrazione con app di terze parti e molto altro.

Inoltre, Nextcloud ha funzionalità di sicurezza avanzate, come la crittografia end-to-end, la protezione dei dati con password e la gestione dei permessi per garantire che solo le persone autorizzate possano accedere ai file.

NextCloud è anche molto flessibile e può essere installato su un server di una infrastruttura locale (On-Premises) o su un’infrastruttura cloud, su una vasta gamma di piattaforme, inclusi server Linux, Windows, macOS e anche dispositivi a basso costo come Raspberry Pi. La sua flessibilità e la sua capacità di personalizzazione lo rendono una scelta popolare tra le persone che desiderano una soluzione di gestione dei dati su misura per le proprie esigenze specifiche.

Installazione via Appliance VM Ubuntu

Per lo scaricamento e la configurazione dell’appliance VM questi sono i passi da eseguire:

  1. Eseguire il download del file Nextcloud-VM.ova a questo link: Download
  2. Lanciare VMWare Player / Workstation oppure VirtualBOX
  3. Selezionare File > Open e selezionare il file: Official-Nextcloud-VM.ova
  4. Cambiate il nome della VM in NextCloud Ubuntu e specificate il path di destinazione della VM
  5. Cliccate sul bottone di import per completare l’importazione della VM
  6. Quando il processo di import è completato, selezionare NextCloud VM e cliccate su Avvio della VM
  7. Al login inserite Username: ncadmin Password: nextcloud
  8. Successivamente allo startup della VM e all’avvenuto login si avvierà in automatico un procedura guidata per la configurazione del corretto layout della tastiera, cambio utente e password e altre informazioni.

Ora esamineremo alcuni importanti passaggi successivi all’installazione.

Domini attendibili

Tutti gli URL utilizzati per accedere al tuo server Nextcloud devono essere inseriti nella whitelist nel tuo config.php file, sotto la voce trusted_domains impostazione. Gli utenti possono accedere a Nextcloud solo quando indirizzano i propri browser a un URL elencato nell’impostazione trusted_domains. Questo non è un elenco di domini lato client o indirizzi IP consentiti. Puoi utilizzare indirizzi IP e nomi di dominio. Una configurazione tipica è simile a questa:

'trusted_domains' =>
  array (
   0 => 'localhost',
   1 => 'server1.example.com',
   2 => '192.168.1.50',
   3 => '[fe80::1:50]',
),

Nota:

L’indirizzo di loopback, 127.0.0.1, viene automaticamente inserito nella whitelist, quindi finché hai accesso al server fisico puoi sempre accedere. Intestazione host inoltrato. Quando un utente tenta un URL non inserito nella whitelist, viene visualizzato il seguente errore:

Aggiornamento di NextCloud da riga di comando

Il programma di aggiornamento basato sulla riga di comando funziona esattamente nello stesso modo in cui funziona il programma di aggiornamento basato sul Web. I passaggi e i controlli sono gli stessi.

Warning…

APCu è disabilitato per impostazione predefinita sulla CLI, il che potrebbe causare problemi con il programma di aggiornamento basato sulla riga di comando di nextcloud. Assicurati di impostare apc.enable_cli su 1 nel tuo php.ini file di configurazione o di aggiungerlo alla chiamata di aggiornamento basata sulla riga di comando (come ). –define apc.enable_cli=1

$ sudo -u www-data php -- define apc.enable_cli=1 /var/www/nextcloud/updater/updater.phar

I passaggi sono fondamentalmente gli stessi dell’aggiornamento basato sul Web:

  1. Dovresti vedere una notifica nella parte superiore di qualsiasi pagina Nextcloud quando è disponibile un nuovo aggiornamento. Vai alla pagina delle impostazioni di amministrazione e scorri fino alla sezione “Versione”. Questa sezione ha un pulsante per aprire il programma di aggiornamento. Questa sezione e la notifica di aggiornamento sono disponibili solo se l’app di notifica dell’aggiornamento è abilitata nella gestione delle app.
  1. Invece di fare clic su quel pulsante, ora puoi richiamare l’aggiornamento basato sulla riga di comando accedendo alla directory updater/ nella directory Nextcloud ed eseguendo updater.phar come utente del server web. (cioè )
    $ sudo -u www-data php /var/www/nextcloud/updater/updater.phar
  1. Verificare le informazioni visualizzate e immettere “Y” per avviare l’aggiornamento.
  1. Nel caso in cui si verifichi un errore o il controllo fallisca, il programma di aggiornamento interrompe l’elaborazione e fornisce un feedback. Ora puoi provare a risolvere il problema ed eseguire nuovamente il comando di aggiornamento. Ciò continuerà l’aggiornamento ed eseguirà nuovamente il passaggio non riuscito. Non rieseguirà i precedenti passaggi riusciti.
  2. Una volta eseguiti tutti i passaggi, il programma di aggiornamento ti chiederà un’ultima domanda: “Il comando “occ upgrade” dovrebbe essere eseguito?”. Ciò consente di eseguire direttamente la procedura di aggiornamento basata sulla riga di comando ( ). Se selezioni “No”, terminerà con “./occ upgrade” per terminare l’aggiornamento. .occ upgrade
  3. Al termine, ti viene chiesto se la modalità di manutenzione deve essere mantenuta attiva. occ upgrade

Modalità batch per l’aggiornamento basato sulla riga di comando

È possibile eseguire il programma di aggiornamento basato sulla riga di comando in modalità non interattiva. Il programma di aggiornamento quindi non pone alcuna domanda interattiva. Si presume che se è disponibile un aggiornamento, dovrebbe essere installato e anche il comando viene eseguito. Dopo aver terminato la modalità di manutenzione verrà disattivata tranne che si è verificato un errore durante la sostituzione del codice.occ upgrade occ upgrade

Per eseguire ciò, eseguire il comando con l’opzione –no-interaction .

$ sudo -u www-data php /var/www/nextcloud/updater/updater.phar --no-interaction

Installazione Completa su UBUNTU 22.04

In questo post del blog, spiegheremo passo dopo passo come installare l’ultima versione di NextCloud su Ubuntu 22.04.

NextCloud è un servizio di cloud storage open source utilizzato per archiviare, condividere e sincronizzare i dati su più dispositivi. Il software di archiviazione NextCloud è scritto in PHP e Javascript, il che lo rende molto facile da installare. In questo tutorial, installeremo e configureremo NextCloud con lo stack LAMP.

L’installazione di NextCloud con lo stack LAMP può richiedere fino a 15 minuti. Facciamo funzionare le cose!

Prerequisiti

  • Un server con Ubuntu 22.04 come sistema operativo
  • Privilegi utente: utente root o non root con privilegi sudo

Passo 1. Aggiorniamo il il sistema

Prima di installare il servizio di archiviazione NextCloud aggiorneremo i pacchetti di sistema alle ultime versioni disponibili.

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

Passo 2. Installare Apache Web Server

Installare il server Web Apache con il seguente comando:

sudo apt install apache2

Una volta installato, avviare e abilitare il servizio.

sudo systemctl enable apache2 && sudo systemctl start apache2

Controlla se il servizio è attivo e funzionante:

sudo systemctl status apache2

Dovrebbe essere visualizzato il seguente output:

root@host:~# sudo systemctl status apache2
? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-03-11 22:03:46 UTC; 4 days ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 84157 (apache2)
      Tasks: 8 (limit: 4566)
     Memory: 350.2M
        CPU: 21ms
     CGroup: /system.slice/apache2.service
             |  84157 /usr/sbin/apache2 -k start
             | 150719 /usr/sbin/apache2 -k start
             | 150720 /usr/sbin/apache2 -k start
             | 150721 /usr/sbin/apache2 -k start
             | 150722 /usr/sbin/apache2 -k start
             | 150723 /usr/sbin/apache2 -k start
             | 150724 /usr/sbin/apache2 -k start
             | 150943 /usr/sbin/apache2 -k start

May 18 00:00:04 host.test.vps systemd[1]: Reloading The Apache HTTP Server...

Passo 3. Installare PHP8.1 con dipendenze

Per installare PHP8.1 insieme alle estensioni eseguire il seguente comando:

sudo apt-get install php8.1 php8.1-cli php8.1-common php8.1-imap php8.1-redis php8.1-snmp php8.1-xml php8.1-zip php8.1-mbstring php8.1-curl php8.1-gd php8.1-mysql php8.1-intl

Passo 4. Installare il server di database MariaDB

Per installare il server di database MariaDB, eseguire il comando seguente.

$ sudo apt install mariadb-server

Avviare e abilitare mariadb.service con i seguenti comandi:

$ sudo systemctl start mariadb && sudo systemctl enable mariadb

Controlla lo stato del mariadb.service

$ sudo systemctl status mariadb

Dovrebbe essere visualizzato il seguente output:

$ sudo systemctl status mariadb
| mariadb.service - MariaDB 10.6.7 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-05-16 19:40:12 UTC; 5 days ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 42716 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 7 (limit: 4566)
     Memory: 56.9M
        CPU: 2min 51.567s
     CGroup: /system.slice/mariadb.service
             ??42716 /usr/sbin/mariadbd

May 16 19:40:12 host.test.vps mariadbd[42716]: Version: '10.6.7-MariaDB-2ubuntu1'  socket: '/run/mysqld/mysqld.sock'  port: 3306  Ubuntu 22.04
May 16 19:40:12 host.test.vps systemd[1]: Started MariaDB 10.6.7 database server.

Per verificare la versione del database MariaDB installata è possibile eseguire il seguente comando:

mysql -V

Dovrebbe essere visualizzato il seguente output:

root@vps:~# mysql -V
mysql  Ver 15.1 Distrib 10.6.7-MariaDB, for debian-linux-gnu (x86_64) using  EditLine wrapper

Passo 5. Crea database e utente del database

I database supportati da NextCloud sono MySQL, MariaDB, Oracle 11g e PostgreSQL si consiglia MySQL/MariaDB.

Dobbiamo creare un database e un utente del database prima di installare NextCloud.

$ sudo mysql -u root
CREATE DATABASE nextcloud;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'ncadmin'@'localhost' IDENTIFIED BY 'YourStrongPasswordHere';
FLUSH PRIVILEGES;
exit;

Passo 5.1. Gia che ci siamo installiamo anche PhpMyAdmin

Spendo due parorle su PhpMyAdmin,

PHPMyAdmin è un’applicazione web gratuita e open-source che consente agli utenti di gestire facilmente i propri database MySQL o MariaDB attraverso un’interfaccia utente basata sul web.

PHPMyAdmin è scritto principalmente in PHP e utilizza JavaScript per alcune funzionalità lato client. Tra le sue caratteristiche principali ci sono:

  • Accesso e gestione di database MySQL o MariaDB tramite il browser web
  • Creazione e gestione di tabelle, campi, indici e relazioni
  • Importazione ed esportazione di dati in diversi formati (ad esempio CSV, SQL, XML)
  • Creazione e modifica di query SQL
  • Gestione degli utenti e dei privilegi di accesso al database
  • Monitoraggio delle prestazioni del database

PHPMyAdmin è ampiamente utilizzato da sviluppatori web, amministratori di database e utenti finali, ed è compatibile con la maggior parte dei browser web e dei sistemi operativi. Tuttavia, come qualsiasi altra applicazione web, richiede un’adeguata protezione e configurazione per garantire la sicurezza dei dati contenuti nei database.

Con il seguente comando installiamo PhpMyAdmin:

$ sudo apt install phpmyadmin php-mbstring php-gettext

Nelle schemate che ti appariranno durante l’installazione conferma Apache2 come Web Server utilizzato selezionando il tab relativo con lo spazio, e alla schermata successiva conferma la configurazione del database con configdb-common selezionando Yes e successivamente Enter come ultima opzione ti verrà chiesto di impostare la password di default per l’utente phpmyadmin. Potrai entrare anche utilizzando le credenziali dell’utenza ncadmin definita con il comando GRANT ALL PRIVILEGES……. YourStrongPasswordHere‘.

Una volta completata l’installazione, un file di configurazione di phpMyAdmin verrà aggiunto nel seguente percorso: 

/etc/apache2/conf-enabled/phpmyadmin.conf

L’unica cosa che dovrai fare sarà attivare l’estensione PHP mbstring. Per farlo digita:

$ sudo phpenmod mbstring

Per poter applicare tutte le modifiche riavvia Apache digitando:

$ sudo systemctl restart apache2

Passo 6. Installa Nextcloud

L’ultima versione stabile di NextCloud al momento è NextCloud 26.0.0 vai nella radice del documento Apache e scarica l’ultima versione:

$ cd /var/www/html
$ sudo wget https://download.nextcloud.com/server/releases/nextcloud-26.0.0.zip

Una volta scaricata l’installazione, estrarla con il seguente comando.

$ sudo unzip nextcloud-26.0.0.zip

Dopo l’estrazione, dobbiamo impostare le autorizzazioni giuste:

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

Passo 7. Crea file Apache Virtual Host e configura SSL

Per poter accedere a NextCloud tramite nome di dominio abbiamo bisogno di creare il file Apache Virtual Host ma prima dobbiamo configurare le di misure di sicurezza aggiuntive per Nextcloud quali ad esempio la navigazione SSL.

Innanzitutto, creiamo il file di configurazione con il seguente comando:

$ sudo touch /etc/apache2/sites-available/nextcloud.conf

Ora passiamo alla creazione dei certificati SSL:

Creazione Certificato e Chiave Privata

La generazione della coppia chiave privata – certificato avviene con il comando:

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

Gli argomenti utilizzati nella riga di comando controllano il comportamento dell’utility openssl:

req indica il comando opnessl da eseguire. In questo caso, vogliamo effettuare una richiesta di emissione di certificato X.509 (X.509 CSR).
-x509 specifica che la richiesta CSR verrà eseguita direttamente, invece di essere trasmessa successivamente ad una CA. Questo comando permette quindi la generazione di un certificato autofirmato.
-nodes disabilita la richiesta di una password per l’accesso alla chiave privata. Poiché la chiave privata sarà utilizzata da Apache la presenza di una password richiederebbe l’inserimento della stessa da parte dell’utente amministratore ad ogni avvio del server
-days 365 specifica la durata temporale del certificato (1 anno in questo caso). Alla scadenza il certificato andrà rigenerato.
-newkey rsa:2048 richiede la generazione di una chiave privata e di un certificato contemporaneamente. Inoltre, specifica l’algoritmo (RSA) e la lunghezza della chiave (2048 bit).
-keyout specifica il percorso in cui salvare la chiave privata.
-out specifica il percorso in cui salvare il certificato.

Passo 8. Configurare i parametri SSL di Apache

Procediamo impostando le direttive per la connessione protetta che Apache andrà a creare. Per farlo creiamo il file ssl-params.conf all’interno della directory conf-available di Apache:

$ sudo nano /etc/apache2/conf-available/ssl-params.conf

Incolla la seguente configurazione base all’interno del file appena creato:

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder On

Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff

# Requires Apache >= 2.4
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"

# Requires Apache >= 2.4.11
SSLSessionTickets Off

Quindi salva e chiudi il file.

Torniamo ora alla configurazione del Virtual Host Aprire il file /etc/apache2/sites-available/nextcloud.conf e incollare le seguenti righe di codice avendo l’accortezza di modificare in accordo alle vostre esigenze i path di DocumentRoot, Directory, ErrorLog, CustomLog:

<VirtualHost *:80>
ServerName yourdomain.com
DocumentRoot /var/www/html/nextcloud

<Directory /var/www/html/nextcloud/>
 Require all granted
 Options FollowSymlinks MultiViews
 AllowOverride All
 <IfModule mod_dav.c>
 Dav off
 </IfModule>
</Directory>

ErrorLog /var/log/apache2/yourdomain.com.error_log
CustomLog /var/log/apache2/yourdomain.com.access_log common
</VirtualHost>

<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin webmaster@gcportal.com
                ServerName nextcloud

                DocumentRoot /var/www/html/nextcloud

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined

                SSLEngine on
                SSLCertificateFile      /etc/ssl/certs/certificato.crt
                SSLCertificateKeyFile /etc/ssl/private/privata.key

                <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                                SSLOptions +StdEnvVars
                </Directory>
        </VirtualHost>
</IfModule>

Passo 9. Configurare Apache

A questo punto sei pronto ad apportare le modifiche alla configurazione di Apache.

Abilita i moduli mod_ssl e mod_headers:

$ sudo a2enmod ssl
$ sudo a2enmod headers

Abilita la lettura della configurazione SSL che hai creato in precedenza:

$ sudo a2enconf ssl-params

Abilita il Virtual Host SSL di default:

$ sudo a2ensite nextcloud.conf
$ sudo a2enmod rewrite

Verifica di non aver commesso errori di sintassi nei file di configurazione di Apache:

$ sudo apache2ctl configtest   oppure  $sudo apachectl -t

Se appare a schermo il messaggio “Syntax OK” puoi procedere con il riavvio di Apache:

$ sudo systemctl restart apache2

Passo 10. Configuriamo il Firewall

Se sul tuo sistema è presente un firewall allora dovrai impostarlo per abilitare il traffico HTTP e il traffico HTTPS verso la tua macchina.
Nel caso in cui utilizzassi il firewall UFW, avrai a disposizione dei profili preinstallati per Apache. Vediamo quindi come abilitarli.
Per verificare i profili disponibili installati nel firewall UFW esegui questo comando:

$ sudo ufw app list
Verrà mostrata a schermo una lista simile a questa:

Available applications:
  Apache
  Apache Full
  Apache Secure
  OpenSSH

Per consentire il traffico HTTP (Porta 80) e HTTPS (Porta 443), dovrai utilizzare il profilo "Apache Full". 

Puoi verificare le informazioni del profilo in questo modo:

$ sudo ufw app info "Apache Full"
Apparirà la descrizione del profilo a schermo:

Profile: Apache Full

Title: Web Server (HTTP,HTTPS)
Description: Apache v2 is the next generation of the omnipresent Apache web
server.

Ports:
80,443/tcp
Dopo aver verificato il profilo, potrai abilitarlo:

$ sudo ufw allow in "Apache Full"

Passo 11. Verificare la connessione protetta

Apri il tuo browser collegandoti al dominio o all’indirizzo IP del Virtual Host che hai configurato, facendo attenzione a utilizzare il protocollo https://

https://nextcloud

Se vedete la pagina di configurazione allora potete passare allo step successivo.

Passo 12. Configurazione NextCloud

Quando i prerequisiti Nextcloud sono soddisfatti e tutti i file Nextcloud sono installati, l’ultimo passaggio per completare l’installazione è l’esecuzione dell’Installazione guidata. Sono solo tre passaggi:

  1. Punta il tuo browser Web su https://localhost/nextcloud
  2. Inserisci il nome utente e la password dell’amministratore desiderati.
  3. Fare clic su Termina configurazione .

Hai finito e puoi iniziare a utilizzare il tuo nuovo server Nextcloud.

Naturalmente, c’è molto di più che puoi fare per configurare il tuo server Nextcloud per le migliori prestazioni e sicurezza. Nelle sezioni seguenti tratteremo importanti fasi di installazione e post-installazione.

  • Posizione della directory dei dati
  • Scelta del database
  • Domini fidati

Posizione della directory dei dati

Fare clic su Archiviazione e database per esporre ulteriori opzioni di configurazione dell’installazione per la directory dei dati e il database di Nextcloud.

Dovresti localizzare la tua directory dei dati Nextcloud al di fuori della tua radice Web se stai usando un server HTTP diverso da Apache, oppure potresti voler archiviare i tuoi dati Nextcloud in una posizione diversa per altri motivi (ad esempio su un server di archiviazione). È meglio configurare la posizione della directory dei dati al momento dell’installazione, poiché è difficile spostarla dopo l’installazione. Puoi metterlo ovunque; in questo esempio si trova in /opt/nextcloud/. Questa directory deve già esistere e deve essere di proprietà del tuo utente HTTP.

Riferimenti

Banner per il consenso ai cookie di Real Cookie Banner