Server cloud personale con ownCloud

Chi, privato, professionista od azienda, avesse la necessità di utilizzare un servizio per la memorizzazione e l'accesso di file da remoto, può orientarsi su una delle tante piattaforme cloud oggi disponibili (Google Drive, OneDrive e D...

Chi, privato, professionista od azienda, avesse la necessità di utilizzare un servizio per la memorizzazione e l’accesso di file da remoto, può orientarsi su una delle tante piattaforme cloud oggi disponibili (Google Drive, OneDrive e Dropbox, giusto per fare qualche nome).
Se però si preferisse evitare di caricare i propri file, specie se contenenti dati sensibili, su server di terzi, uno dei software più interessanti è senza dubbio ownCloud

ownCloud consente di creare un server cloud personale per la gestione di un completo ed efficace servizio di file hosting.
Con ownCloud tutti i file restano all’interno della struttura aziendale e non debbono mai essere caricati su server cloud spesso distanti migliaia di chilometri e la cui memorizzazione dei dati è frequentemente soggetta alla legislazione straniera.

Installando ownCloud, software Linux opensource e distribuito con licenza libera, si possono gestire utenti e gruppi dando loro modo di caricare e scaricare file da remoto, servirsi di calendari e rubriche, usare i visualizzatori di file integrati nel pacchetto, abilitare lo scambio dei file con storage di terzi.

Requisiti per creare il server cloud personale

Per allestire un server cloud personale con ownCloud è necessario disporre di una macchina Linux sulla quale si potrà installare il pacchetto software.

Nel nostro caso installeremo ownCloud su un server CentOS 7 creato a partire dalla Minimal ISO scaricabile da questa pagina.

Server cloud personale con ownCloud

Dopo aver installato CentOS 7, si dovrà effettuare il login da riga di comando digitando root e la password scelta in fase d’installazione della distribuzione Linux.

I tre comandi che seguono permettono, innanzi tutto, di installare le utilità per la diagnostica della rete (ad esempio il comando ifconfig), l’editor Nano e di aggiornare tutti i pacchetti correntemente installati in CentOS:

yum -y install net-tools
yum -y install nano
yum -y update

Configurazione di un IP statico per il server ownCloud su CentOS

La macchina CentOS sulla quale, tra poco, andremo ad installare il software ownCloud, dovrà utilizzare un indirizzo IP locale statico (vedere 192.168.x.x: perché in rete locale vengono usati questi indirizzi?).
In questo modo, infatti, si potranno indirizzare le richieste di connessione dirette al server cloud personale ownCloud e provenienti dalla rete Internet verso la macchina CentOS.
Basterà infatti attivare sul router installato in ufficio, in azienda o a casa il cosiddetto port forwarding (inoltro delle porte): Aprire porte sul router e chiuderle quando non più necessario.
Dopo aver installato e correttamente configurato ownCloud sulla macchina CentOS, basterà inoltrare il traffico in ingresso sulla porta 80 (IP pubblico del router) verso l’IP privato (statico) utilizzato dal server CentOS-ownCloud.

Per assegnare un IP privato statico alla macchina CentOS, bisognerà dapprima digitare:

nmcli dev status

Server cloud personale con ownCloud

Così facendo si potrà verificare il nome dell’interfaccia di rete utilizzata da CentOS (generalmente è enp0s3).

A questo punto, con il comando seguente, si potranno modificare i parametri dell’interfaccia di rete:

nano /etc/sysconfig/network-scripts/ifcfg-enp0s3

Server cloud personale con ownCloud

I parametri indicati con le frecce rosse, dovranno essere aggiunti o modificati così come evidenziato in figura.

Come si vede, noi abbiamo scelto – come IP statico – l’indirizzo 192.168.1.80 ma, ovviamente, questo andrà scelto sulla base della configurazione del router e della rete locale.

Per salvare qualunque file di testo con Nano, è sufficiente utilizzare le combinazioni di tasti CTRL+O e CTRL+X per uscire dal programma.

Digitando il comando seguente, si potrà impostare l’IP del gateway (l’indirizzo locale del router) ed assegnare un nome alla macchina CentOS:

nano /etc/sysconfig/network

Server cloud personale con ownCloud

Infine, impostiamo dei server DNS statici: utilizzeremo quelli di Google (IP 8.8.8.8 e 8.8.4.4).
Per procedere, si dovrà digitare il comando seguente ed aggiungere le righe evidenziate in figura con una freccia di colore rosso:

nano /etc/resolv.conf

Server cloud personale con ownCloud

A questo punto digitando il comando reboot si potrà riavviare la macchina CentOS.

Al rientro, previo login con l’account root, digitando ifconfig si potrà verificare la correttezza dell’IP utilizzato dall’interfaccia di rete.

Installazione dei componenti necessari per il funzionamento di ownCloud

A questo punto si potrà richiedere l’installazione, in CentOS, dei componenti necessari per il corretto funzionamento del server cloud personale ownCloud.
Per procedere, basterà impartire il comando che segue:

yum -y install httpd php php-mysql mariadb-server mariadb sqlite php-dom php-mbstring php-gd php-pdo wget bzip2 mod_ssl

Oltre al web server Apache httpd, il comando consente di caricare sul server PHP, il DBMS MariaDB (“fork” di MySQL) e l’utilità wget per il download di file da server remoti.
ownCloud è compatibile sia con i database MySQL che con quelli MariaDB. Abbiamo scelto quest’ultimo, comunque, trattandosi di un prodotto interamente rilasciato con licenza libera.

SELinux è un modulo del kernel di Linux che fornisce una serie di strumenti per attuare e monitorare politiche di sicurezza. Il comando seguente permetterà ad ownCloud di scrivere dati:

setsebool -P httpd_unified 1

Quindi, digitando alcuni comandi, si potrà abilitare il traffico web (HTTP e HTTPS) attraverso il firewall:

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

A questo punto si possono avviare sia il server Apache che il server MariaDB:

systemctl start httpd.service
systemctl start mariadb.service

Da ultimo, si può fare in modo che i due servizi vengano automaticamente caricati ad ogni avvio della macchina CentOS:

systemctl enable httpd.service
systemctl enable mariadb.service

Installare il server cloud ownCloud. Attivazione della connessione cifrata

Installazione del server cloud personale ownCloud

L’installazione del server cloud personale ownCloud si concretizza in pochi semplici passaggi:

wget https://download.owncloud.org/community/owncloud-8.0.2.tar.bz2
tar -jxvf owncloud-8.0.2.tar.bz2 -C /var/www/html/
chown -R apache.apache /var/www/html/owncloud/

Il primo comando consente di scaricare il pacchetto d’installazione di ownCloud, il secondo di estrarne il contenuto nella directory radice del server web Apache httpd mentre il terzo assegna i permessi in lettura e scrittura al server web sulla cartella di ownCloud.

Configurazione del database e del server web

Prima di passare alla configurazione vera e propria di ownCloud, si dovrà innanzi tutto impostare il DBMS MariaDB:

mysql_secure_installation

Alla comparsa del messaggio Enter current password for root basterà premere Invio per continuare.
Dopo aver premuto il tasto Invio o digitato Y (Yes), si dovrà scegliere una password per l’account root del DBMS MariaDB.

Server cloud personale con ownCloud

Si dovrà quindi rispondere Y (pressione del tasto Invio) a tutti i seguenti quesiti:

– Set root password?
– Remove anonymous users?
– Disallow root login remotely?
– Remove test database and access to it?
– Reload privilege tables now?

A questo punto si è pronti per creare il database che si destinerà ad ownCloud. Per procedere, è necessario digitare i comandi che seguono:

mysql -u root -pPASSWORD

(al posto di PASSWORD va indicata la password scelta per l’account root di MariaDB)

create database owncloud;
create user 'owncloud'@'localhost' identified by 'PASSWORD2';
grant all on owncloud.* to 'owncloud'@'localhost';
flush privileges;
quit;

Al posto di PASSWORD2 va scelta una password da assegnare al nuovo account utente MariaDB denominato owncloud.
Gli account possono essere gestiti anche installando l’applicazione web phpMyAdmin, come visto nell’articolo Come configurare server cloud Aruba.
In questo modo, anziché agire dalla riga di comando di CentOS, si potrà intervenire da una comodissima interfaccia web.

Da ultimo, si dovrà digitare il comando seguente:

nano /etc/httpd/conf.d/owncloud.conf

All’interno del file di configurazione così creato, si salvi quanto segue:
<IfModule mod_alias.c>
Alias /owncloud /var/www/html/owncloud
</IfModule>
<Directory "/var/www/html/owncloud">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>

Da ultimo, è consigliabile impostare il set di caratteri UTF-8 nel file php.ini:

nano /etc/php.ini

Per attivare l’uso del set di caratteri UTF-8, basterà eliminare il punto e virgola (;) dalla direttiva default_charset.

Server cloud personale con ownCloud

Una volta salvato il file, si potranno riavviare i servizi Apache httpd e MariaDB:

systemctl restart httpd.service
systemctl restart mariadb.service

Configurazione del server cloud personale ownCloud

È giunto finalmente il momento di configurare il server cloud personale ownCloud.
Per procedere, basta aprire un qualunque browser web su un sistema collegato in rete locale e digitare quanto segue nella barra degli indirizzi:

http://192.168.1.80/owncloud

Al posto dell’IP indicato, si dovrà sostituire l’IP privato assegnato in precedenza (come indirizzo statico) all’interfaccia di rete della macchina CentOS.

Server cloud personale con ownCloud

Nelle caselle Nome utente e Password si dovranno scegliere le credenziali d’accesso per l’account amministratore del server cloud personale ownCloud (impostare una password sufficientemente “forte”).

Poco più sotto, bisognerà fare clic su Archiviazione e database quindi scegliere MySQL/MariaDB.
I vari campi per l’accesso al database MariaDB, dovranno essere impostati così come segue, introducendo la password scelta in precedenza:

Server cloud personale con ownCloud

A questo punto, la configurazione di ownCloud è terminata e l’applicazione è pronta per essere utilizzata.

Server cloud personale con ownCloud

Cliccando sul pulsante in alto a destra, nell’interfaccia web di ownCloud, si potranno creare nuovi account utente e gestirne i permessi.

Server cloud personale con ownCloud

Lo spazio a disposizione sul server cloud personale è, ovviamente, uguale allo spazio libero disponibile sull’hard disk della macchina CentOS.

Collegarsi in maniera sicura a ownCloud da remoto: attivare SSL/TLS

Allo stato attuale, dopo aver installato e configurato ownCloud, i file scambiati con il server cloud personale non vengono crittografati. Un malintenzionato che si ponesse in posizione intermedia potrebbe quindi sottrarre informazioni personali e dati sensibili.

Per scongiurare questi rischi, è caldamente consigliato attivare l’utilizzo del protocollo SSL/TLS sul server ownCloud (vedere Certificato di protezione del sito web: cosa fare quando c’è un problema e Certificati digitali SSL gratuiti: a cosa servono e come ottenerne uno in pochi minuti).

Ecco i comandi da usare:

mkdir /etc/httpd/ssl
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt

Il comando openssl permetterà di generare autonomamente una coppia di certificati digitali che saranno usati per crittografare tutti i dati scambiati con il server ownCloud.
Il meccanismo di generazione dei certificati digitali richiederà l’inserimento di alcune informazioni.

Server cloud personale con ownCloud

Particolare attenzione deve essere riposta nella richiesta Common name: qui bisognerà indicare l’indirizzo IP pubblico (statico) assegnato al router oppure l’indirizzo mnemonico impostato a livello DNS o, ancora, quello impostato servendosi di strumenti di Dynamic DNS (Creare un IP statico con DynDNS: si può ed è gratis).

Si dovrà quindi digitare:

nano /etc/httpd/conf.d/ssl.conf

Server cloud personale con ownCloud

In corrispondenza della sezione <VirtualHost _default_:443>, bisognerà togliere il simbolo del commento (#) dalle righe DocumentRoot e ServerName.

In ServerName dovrà essere indicato l’IP pubblico (statico), l’indirizzo DDNS o l’indirizzo mnemonico impostato a livello DNS.
Si tratta dello stesso parametro precedentemente inserito in corrispondenza del campo Common name nel certificato digitale.

Le successive direttive dovranno poi essere impostate così come segue:

SSLCertificateFile /etc/httpd/ssl/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl/apache.key

Server cloud personale con ownCloud

A questo punto, si potrà riavviare il server web:

systemctl restart httpd.service

Digitando https://192.168.1.80/owncloud nella barra degli indirizzi di un browser web installato su un sistema connesso in rete locale (si noti l’uso del protocollo HTTPS), lo scambio del file avverrà esclusivamente in forma cifrata.
Al solito, aposto dell’IP indicato, si dovrà sostituire l’IP privato assegnato in precedenza (come indirizzo statico) all’interfaccia di rete della macchina CentOS.

Il fatto che i browser mostrino messaggi d’allerta simili al seguente (vedere Certificato di protezione del sito web: cosa fare quando c’è un problema) è assolutamente normale e non deve destare alcun allarme.

Server cloud personale con ownCloud

Ciò è dovuto al fatto che i certificati digitali utilizzati per instaurare la connessione HTTPS sono stati generati in proprio e non sono stati firmati da una autorità di certificazione riconosciuta.

Per risolvere il problema, è possibile richiedere la generazione di un certificato digitale gratuito – firmato da un’autorità di certificazione riconosciuta – seguendo le istruzioni riportate nell’articolo Certificati digitali SSL gratuiti: a cosa servono e come ottenerne uno in pochi minuti.
I certificati potranno poi essere importati nella cartella /etc/httpd/ssl/ e richiamati attraverso il file di configurazione /etc/httpd/conf.d/ssl.conf, così come già visto in precedenza.

Nel caso dei certificati “autofirmati”, comunque, basterà cliccare su Continua con il sito web per proseguire con l’utilizzo di ownCloud e, magari, inserire un’eccezione nel browser in uso.

Utilizzando i comandi che seguono si potranno disabilitare le connessioni HTTP in chiaro consentendo solamente quelle cifrate attraverso l’utilizzo di HTTPS e dei certificati digitali:

firewall-cmd --permanent --zone=public --remove-service=http
firewall-cmd --reload

ownCloud contiene comunque l’impostazione Forza HTTPS (sezione Protezione delle impostazioni) che impedisce la possibilità di usare l’applicazione con il semplice protocollo HTTP.

Inoltro delle porte sul router

Come ultimo passo, per collegarsi da remoto al server ownCloud ospitato sulla macchina CentOS collegata in rete locale, basterà inoltrare il traffico in arrivo sulla porta HTTPS (443) verso l’IP privato del server (nel nostro esempio, 192.168.1.80).

Questa configurazione (che si chiama port forwarding) dev’essere impostata sul pannello di amministrazione del router.

OwnCloud è gestibile, dai sistemi remoti, non soltanto attraverso la comoda interfaccia web ma anche installando uno dei software client per Windows, Mac OS X, Linux, Android ed Apple iOS, prelevabili da questa pagina cliccando su Desktop clients e Mobile clients.

Ti consigliamo anche

Link copiato negli appunti