lunedì 29 febbraio 2016

Installare OwnCloud: il nostro Cloud personale

Dopo un mesetto abbondante di prove e installazioni su diversi dispositivi mi sento pronto a spiegarvi come installare OwnCloud e configurare i parametri fondamentali per ottenere un server Linux stabile e performante.
Se state leggendo questo post molto probabilmente avete avuto qualche problema con l'istallazione seguendo le indicazioni di altri siti o semplicemente non avete trovato alcuni dettagli che spero possiate trovare nel mio blog.
Innanzitutto che senso può avere il possedere un proprio cloud personale residente in una macchina di vostra proprietà quando colossi come Google vi offrono un sacco di spazio e servizi gratuitamente? Beh, per quanto mi riguarda il fatto che altri possano accedere a miei file, documenti e foto personali mi può dar un po' fastidio. Secondo motivo per me più significativo è che da nerd/geek che sono ho sempre la volontà di sperimentare cose nuove, amo le sfide e nutrirmi di soddisfazioni nel raggiungimento gli obiettivi.
Bando alle ciance e rimbocchiamoci le maniche.

Per prima cosa abbiamo molto probabilmente necessità di collegarci con i nostri dispositivi al nostro server anche fuori casa ma per far ciò dobbiamo conoscere l'IP che il nostro provider ci ha assegnato. Il sistema più pratico è quello di affidarci ad aziende che gestiscono i cosiddetti Dynamic DNS e che ci assegnano un dominio che punta costantemente al nostro IP di casa anche se quest'ultimo cambia spesso. Personalmente ho testato positivamente il servizio gratuito offerto da NO-IP.
Una volta registrati al servizio, confermata la vostra email, scelto il nome del dominio e aggiunto il vostro host (addHost) procedete in questo modo (in verde i comandi fondamentali da inserire nel terminale, in giallo quelli ausiliari):

CONFIGURIAMO NO-IP

1. aprite il terminale
2. mkdir /home/nome_utente/noip
3. cd /home/nome_utente/noip
4. wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
5. tar vzxf noip-duc-linux.tar.gz
6. cd noip-2.1.9-1

Nel caso non fosse installato il comando make procedete con l'installazione di quest'ultimo, in caso contrario passate al punto 7:

a) sudo apt-get install make
b) sudo apt-get install build-essential

7. make
8. sudo make install

Quando vi verranno richiesti inserite login e password con i quali vi siete registrati su NO-IP.

Creiamo ed editiamo il seguente file di testo con il seguente comando:

9. sudo nano /etc/init.d/noip2

Incolliamo quanto segue (premendo SHIFT + CTRL + V contemporaneamente)

#! /bin/sh
### BEGIN INIT INFO
# Provides:          noip2
# Required-Start:    $local_fs $remote_fs $network $syslog $named
# Required-Stop:     $local_fs $remote_fs $network $syslog $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/stop noip2
### END INIT INFO

case "$1" in
    start)
        echo "Starting noip2."
        /usr/bin/noip2
    ;;
    stop)
        echo -n "Shutting down noip2."
        killproc -TERM /usr/bin/noip2
    ;;
    *)
        echo "Usage: $0 {start|stop}"
        exit 1
esac
exit 0

A questo punto digitiamo:

10. sudo update-rc.d noip2 defaults
11. sudo chmod 755 /usr/local/bin/noip2
12. sudo chown root:root /usr/local/bin/noip2
13. sudo chmod 755 /etc/init.d/noip2
14. sudo chown root:root /etc/init.d/noip2
15. sudo chmod 755 /usr/local/etc/no-ip2.conf
16. sudo chown root:root /usr/local/etc/no-ip2.conf

17. sudo nano /etc/rc.local

Prima della riga "exit 0" incollate:

/etc/init.d/noip2 start

Ora procediamo con l'installazione di owncloud:

18. sudo apt-get install apache2 php5 php5-gd php-xml-parser php5-intl php5-sqlite php5-mysql smbclient curl libcurl3 php5-curl mysql-server mysql-client phpmyadmin

Scegliete il repository owncloud secondo la vostra distribuzione Linux https://download.owncloud.org/download/repositories/stable/owncloud/

19. sudo sh -c "echo 'deb http://download.owncloud.org/download/repositories/stable/Ubuntu_15.10/ /' >> /etc/apt/sources.list.d/owncloud.list"
20. sudo apt-key add - < Release.key
21. sudo apt-get update
22. sudo apt-get install owncloud
23. sudo chown -R www-data:www-data /var/www/

riavviamo il PC

24. sudo reboot

Nel caso siate interessati ad archiviare i dati in un HardDisk esterno seguite quanto segue altrimenti passate alla configurazione.

Montiamo HDD esterno
a. sudo blkid

Prendete nota dell'UUID
b. sudo mkdir /media/owncloud

Modificate il file /etc/fstab
c. sudo nano /etc/fstab

Inserite UUID_DELLA_PARTIZIONE    /media/PUNTO_DI_MOUNT ext4  rw,defaults  0    0

d. sudo mount -a

Verifichiamo se tutto funziona

e. sudo umount -a
f. sudo mount -a

Creiamo la cartella data e cambiamo il proprietario della cartella

g. cd /media/owncloud
h. sudo mkdir data

i. sudo chown -R www-data:www-data /media/owncloud/


Configuriamo OwnCloud utilizzando il browser ed inserendo l'IP del server   ###.###.###.###

inserite nella barra degli indirizzi ###.###.###.###/phpmyadmin e create il database owncloud

ora inserite ###.###.###.###/owncloud

impostate utente password

percorso della cartella data se diversa da quella di default ad esempio se avete installato l'HDD esterno /media/owncloud/data

il nome del database mysql poco prima creato

ORA IL VOSTRO È INSTALLATO MA NON ANCORA OTTIMIZZATO. SEGUENDO LE PROSSIME INDICAZIONI AVRETE UN SERVER OWNCLOUD MAGGIORMENTE PERFORMANTE.

Per attivare SSL -> http://www.chimerarevo.com/linux/guida-owncloud-cloud-personale-180906/

25. sudo apt-get install openssl
26. sudo a2enmod ssl
27. sudo mkdir /etc/apache2/ssl
28. sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/apache2/ssl/owncloud.key -out /etc/apache2/ssl/owncloud.crt

Ora inseriamo i nostri dati

29. sudo nano /etc/apache2/sites-available/default-ssl­.conf
aggiungere o modificare con le righe seguenti:

ServerName mycloud.ddns.net (l'indirizzo del nostro cloud)
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/owncloud.crt
SSLCertificateKeyFile /etc/apache2/ssl/owncloud.key

30. sudo a2ensite default-ssl
31. service apache2 reload
32. sudo service apache2 restart

Per risolvere l'avviso "L'intestazione HTTP "Strict-Transport-Security" non è configurata con un valore almeno di "15768000" secondi."

32. sudo nano /etc/apache2/sites-available/default-ssl.conf

inserite dopo la voce ServerName ...

<IfModule mod_headers.c>
    Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
</IfModule>

33. sudo a2enmod headers
34. sudo service apache2 restart

Per attivare la menchache

Per distribuzioni Debian/Ubuntu/Mint installate php-apc e riavviate il vostro Web server.

35. sudo apt-get install php-apc
36. sudo service apache2 restart

37. nano /var/www/owncloud/config/config.php

inserite:


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

BENE. ORA DIVERTITI AD INSTALLARE APPLICAZIONI, CONFIGURARE SERVIZI AGGIUNTIVI, CREARE UTENTI ACCEDENDO COME AMMINISTARTORE NEL MENÙ ADMIN.

Per accedere ai vostri dati anche da remoto potete installare i diversi client presenti negli store della maggior parte dei sistemi operativi. Per maggiori informazioni visitate https://owncloud.org/install/
Credo di aver scritto tutto il necessario, buon cloud personale a tutti !!!

4 commenti:

  1. Ciao!! Grazie mille della guida, avevo seguito quella molto scarsa di chimerarevo. S3eguendo la tua finalmente ho attivato ssl. Nell installazione, uso ubuntu 16.04 non mi ha accettato nessun pacchetto php dandomi come risposta che non ha candidati da installare. Per installare io ho usato il repo come da guida di chimerarevo ed usato swllite di default. In pratica ho solo un problema, non riesco ad accedere dall esterno ne con http e ne con https. H0 apeerto la porta 443 ma non c'e' verso. Sapresti aiutarmi? Grazie comunque.

    RispondiElimina
  2. Prego di nulla. Hai modificato l'inoltro delle porte (forwarding) del router verso l'IP del tuo dispositivo cloud?

    RispondiElimina
  3. Ciao guarda alla fine sono riuscito a far girare tutto e funziona, si le porte l' avevo aperte, il rpoblema era iptables che ho configurato su uno script e mi parte all avvio, me ne scordo sempre. :)

    RispondiElimina