Owncloud 10 su Raspberry Pi 3 e Raspbian Stretch

 

Owncloud 10 su Raspberry Pi 3 e Raspbian Stretch

Owncloud 10 su Raspberry Pi 3 e Raspbian Stretch

Guida su come installare owncloud 10 su Raspberry Pi 3 con già installato Raspbian Stretch. Io ho sempre usato uno dei miei Raspberry come server cloud, accessibile soprattutto da remoto. In questa guida non mi soffermerò sui problemi di sicurezza ed i modi per limitare i danni derivanti da una macchina esposta su internet, ma bensì mi limiterò ai soli step per avere un server cloud pronto all'uso. Io preferisco archiviare i dati direttamente su una chiavetta usb da 128G, piuttosto che direttamente sul raspberry. Quindi, dopo avere installato Raspbian Stretch ed aver collegato alla porta usb la pen drive, servendosi di una prolunga usb che servirà a dissipare il calore, siamo pronti ad iniziare.

$ sudo su
# apt update; apt upgrade
# apt install apache2 mariadb-server libapache2-mod-php7.0 php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-intl php7.0-mcrypt php-imagick php7.0-zip php7.0-xml php7.0-mbstring ntfs-3g fail2ban
# cd /tmp
# wget https://download.owncloud.org/community/owncloud-10.0.7.tar.bz2
# tar -xvf owncloud-10.0.7.tar.bz2
# chown -R www-data:www-data owncloud
# mv owncloud /var/www/html/
# nano /etc/apache2/sites-available/owncloud.conf

ed incollare dentro:

Alias /owncloud "/var/www/html/owncloud/"

<Directory /var/www/html/owncloud/>
 Options +FollowSymlinks
 AllowOverride All

<IfModule mod_dav.c>
 Dav off
 </IfModule>

SetEnv HOME /var/www/html/owncloud
SetEnv HTTP_HOME /var/www/html/owncloud

</Directory>
# ln -s /etc/apache2/sites-available/owncloud.conf /etc/apache2/sites-enabled/owncloud.conf
# systemctl start apache2
# systemctl enable apache2

Creazione database ed user mysql:

# mysql -u root -p

inserire password di root, e poi i 5 comandi sotto, e settare la password per l'utente owncloud:

1) create database owncloud;
2) create user owncloud@localhost identified by 'password';
3) grant all privileges on owncloud.* to owncloud@localhost identified by 'password';
4) flush privileges;
5) exit;

Web Server Apache2 con SSL

sotto ci saranno alcune voci da riempire, ma quella più importante è COMMON NAME, che io ho fatto puntare al mio hostname DynDNS per l'accesso da remoto:

Owncloud 10 su Raspberry Pi 3 e Raspbian Stretch

Owncloud 10 su Raspberry Pi 3 e Raspbian Stretch

# cd --
# openssl genrsa -out server.key 4096
# openssl req -new -key server.key -out server.csr
# openssl x509 -req -days 1825 -in server.csr -signkey server.key -out server.crt -sha256
# chmod 400 server.key
# a2ensite default-ssl.conf
# systemctl reload apache2
# a2enmod ssl
# systemctl restart apache2

configurazione apache2:

# nano /etc/apache2/sites-available/default-ssl.conf

che dovrà essere come sotto, aggiungendo ip del server cloud, modificando le voci DocumentRoot, SSLCertificateFile, SSLCertificateKeyFile , e commentando le altre voci che fanno riferimento a SSL.

        <VirtualHost _default_:443>
                ServerAdmin webmaster@localhost
                ServerName IP-SERVER:443
                DocumentRoot /var/www/html/owncloud
                SSLCertificateFile /root/server.crt
                SSLCertificateKeyFile /root/server.key
# nano /etc/apache2/sites-available/000-default.conf

la DocumentRoot dovrà essere come sotto:

DocumentRoot /var/www/html/owncloud
# nano /etc/php/7.0/apache2/php.ini

fare una modifica al file php.ini, nella sezione File Uploads, portando upload_max_filesize = 5000.

# sed -i 's/AllowOverride None/AllowOverride All/'  /etc/apache2/apache2.conf
# systemctl restart apache2

creazione della cartella di storage e relativi permessi:

# mkdir /media/owncloud-usb
# groupadd www-data
# usermod -a -G www-data www-data
# chown -R www-data:www-data /media/owncloud-usb
# chmod -R 775 /media/owncloud-usb

a questo punto abbiamo bisogno di conoscere UUID della chiavetta usb ed user e group di www-data, che serviranno per configurare /etc/fstab per il montaggio automatico:

# id -u www-data; id -g www-data
# blkid
# nano /etc/fstab

ed aggiungere in una sola riga qualcosa del genere in /etc/fstab:

UUID=32E49E5027A4F8A7 /media/owncloud-usb auto nofail,uid=33,gid=33,umask=0027$,dmask=0027,noatime 0 0

come ultimo ritocco, aumentare la capacità di upload, andando a modificare il file .user.ini

# nano /var/www/html/owncloud/.user.ini

portando: php_value upload_max_filesize, e php_value post_max_size a 5000M

# reboot

Se tutto è andato bene andare all'indirizzo https://ip_del_raspberry ed apparirà la pagina iniziale, dove si dovrà scegliere nome utente e password per l'accesso al server owncloud, ed inserire il nome del database, user e password dell'utente owncloud:

Username: owncloud
Password: password
Database: owncloud
Server: localhost

Molto probabilmente al momento di accedere via FQDN, owncloud presenterà al login un errore di untrusted domain

Owncloud 10 su Raspberry Pi 3 e Raspbian Stretch

Owncloud 10 su Raspberry Pi 3 e Raspbian Stretch

si risolve andando a modificare il file config.php, aggiungendo ip server ed il proprio DDNS

# nano /var/www/html/owncloud/config/config.php
$CONFIG = array (
  'instanceid' => 'oc8foxmontqb',
  'passwordsalt' => 'PBMACOGPeaL9S/Lfq+a80nhE9Bi6ke',
  'secret' => 'EtvIi0rDN2kmFUBdTL4xehQTRUBD1NDmvDipQ3qyVK1gj8SI',
  'trusted_domains' =>
  array (
    0 => '192.X.X.X','myddns'
  ),
  'datadirectory' => '/media/owncloud-usb',
  'overwrite.cli.url' => 'https://192.X.X.X',
  'dbtype' => 'mysql',
  'version' => '10.0.7.2',
  'dbname' => 'owncloud',
  'dbhost' => 'localhost',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'owncloud',
  'dbpassword' => 'abcd2134retfd5678hjbnfh58gbf',
  'logtimezone' => 'UTC',
  'installed' => true,

enjoy 😉

 

Owncloud 9 Apache Mysql su Raspberry Pi 3 e Raspbian

 

Owncloud 9 Apache Mysql su Raspberry Pi 3 e Raspbian

 

Owncloud 9 Apache Mysql su Raspberry Pi 3 e Raspbian. Io su Raspberry Pi 3, ho un server Webdav e mi trovo bene, qua la guida. ma ho voluto provare Owncloud, poichè è molto più personalizzabile, e ti permette di condividere link, con password e data di scadenza. Io ho utilizzato come disco esterno una pen drive da 128G, formattata in NTFS, ma si può utilizzare anche un hard disk esterno, possibilmente alimentato. 

sudo mkdir /media/usb-hdd

identificare la chiavetta con:

sudo tail -f /var/log/messages

oppure:

sudo fdisk -l

conoscere UUID per procedere con il mount automatico:

sudo blkid /dev/sda1

il comando sopra restituirà qualcosa del genere:

/dev/sda1: UUID="10C67902162A661E" TYPE="ntfs" PARTUUID="eaf9ab2e-01"

quindi configurare fstab:

sudo nano /etc/fstab

che dovrebbe essere come sotto:

UUID=10C67902162A661E /media/usb-hdd/ ntfs-3g permissions,defaults,auto

poi:

sudo reboot

 

Installazione di Owncloud ed i servizi necessari:

 

wget -nv https://download.owncloud.org/download/repositories/stable/Debian_8.0/Release.key -O Release.key
sudo apt-key add - < Release.key
sudo sh -c "echo 'deb https://download.owncloud.org/download/repositories/stable/Debian_8.0/ /' >> /etc/apt/sources.list.d/owncloud.list"
sudo apt-get update && sudo apt-get install owncloud

verrà chiesto di scegliere una password per mysql.

 

Configurazione Mysql:

 

sudo mysql -u root -p

inserire la password di mysql, e poi i 4 comandi sotto, scegliendo Utente e Password per l'utente owncloud:

CREATE DATABASE owncloud;
GRANT ALL PRIVILEGES ON owncloud.* TO USER@localhost IDENTIFIED BY 'PASSWORD';
FLUSH PRIVILEGES;
exit

riavviare mysql:

sudo service mysql restart

 

Web Server Apache2 con SSL:

 

sudo openssl genrsa -out server.key 4096
sudo openssl req -new -key server.key -out server.csr

ci saranno alcune voci da riempire, ma quella più importante è COMMON NAME, che io ho fatto puntare al mio hostname DynDNS per l'accesso da remoto:

Owncloud 9 Apache Mysql su Raspberry Pi 3 e Raspbian

Owncloud 9 Apache Mysql su Raspberry Pi 3 e Raspbian

 

sudo openssl x509 -req -days 1825 -in server.csr -signkey server.key -out server.crt -sha256
sudo chmod 400 server.key
sudo mv server.key /root/server.key
sudo mv server.crt /root/server.crt
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf_bak
sudo nano /etc/apache2/sites-available/000-default.conf

e modificare DocumentRoot come sotto:

DocumentRoot /var/www/owncloud

poi ancora:

sudo rm -rf /var/www/html/
sudo nano /etc/apache2/sites-available/default-ssl.conf

e modificare le voci DocumentRoot, SSLCertificateFile, SSLCertificateKeyFile, come sotto:

DocumentRoot /var/www/owncloud
SSLCertificateFile /root/server.crt
SSLCertificateKeyFile /root/server.key

abilitare la crittografia:

sudo a2ensite default-ssl.conf
sudo service apache2 reload
sudo a2enmod ssl
sudo service apache2 restart

alcune modifiche necessarie:

sudo nano /etc/php5/apache2/php.ini

fare una modifica al file php.ini, nella sezione File Uploads, portando upload_max_filesize = 5000.

sudo sed -i 's/AllowOverride None/AllowOverride All/'  /etc/apache2/apache2.conf
sudo /etc/init.d/apache2 restart

creazione della cartella di storage e relativi permessi:

sudo mkdir -p /media/usb-hdd/owncloud/dati
sudo chown -R www-data:www-data /media/usb-hdd/owncloud/dati
sudo chmod 0770 /media/usb-hdd/owncloud/dati
sudo reboot

come ultimo ritocco, aumentare la capacità di upload, andando a modificare il file .htacces, ed installare fail2ban:

sudo nano /var/www/owncloud/.htaccess

portando: php_value upload_max_filesize, e php_value post_max_size a 5000M

sudo apt-get install fail2ban

Se tutto è andato bene andare all'indirizzo https://ip_del_raspberry/owncloud ed apparirà la pagina iniziale, dove si dovrà scegliere nome utente e password per l'accesso, ed inserire il nome del database ed user e password dell'utente owncloud.

Owncloud 9 Apache Mysql su Raspberry Pi 3 e Raspbian

 

enjoy 😉