Per avere un proprio Server Cloud WebDav su Raspberry pi 2 e Debian Jessie, da utilizzare sia in locale che da remoto, alla stregua di Dropbox, Box.com, OneDrive ecc ecc, i passi da seguire sono i seguenti:
sudo apt-get install apache2
sudo a2enmod dav_fs
sudo a2enmod auth_digest
sudo service apache2 restart
sudo mkdir -p /webdav
sudo chown www-data /webdav
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
che deve essere come sotto, inserendo al posto delle xxx.xxx.x.x, l' IP del Raspberry:
<VirtualHost xxx.xxx.x.x:80> ServerAdmin webmaster@localhost DocumentRoot /webdav <Directory /webdav> Options Indexes MultiViews AllowOverride None Order allow,deny allow from all </Directory> Alias /webdav /webdav <Location /webdav> DAV On AuthType Basic AuthName "webdav" AuthUserFile /webdav/passwd.dav Require valid-user </Location> </VirtualHost>
sudo service apache2 restart sudo htpasswd -c /webdav/passwd.dav nome_utente_Raspberry
per chi deve accedere da Windows al server WebDav:
sudo htpasswd /webdav/passwd.dav xxx.xxx.x.x\\nome_utente_Raspberry
poi:
sudo chown root:www-data /webdav/passwd.dav
sudo chmod 640 /webdav/passwd.dav
sudo service apache2 restart
Il server sarà raggiungibile all'indirizzo https://ip_server/webdav
Adesso un minimo di protezione per il nostro server cloud installando Fail2ban, così da bloccare dopo 3 tentativi l'IP di che tenta di accedere senza le giuste credenziali:
sudo apt-get install fail2ban
sudo nano /etc/fail2ban/jail.local
ed inserire:
[apache]
enabled = true
port = https,https
filter = apache-auth
logpath = /var/log/apache*/*error.log
maxretry = 6
[apache-noscript]
enabled = true
port = https,https
filter = apache-noscript
logpath = /var/log/apache*/*error.log
maxretry = 6
[apache-overflows]
enabled = true
port = https,https
filter = apache-overflows
logpath = /var/log/apache*/*error.log
maxretry = 2
[apache-nohome]
enabled = true
port = https,https
filter = apache-nohome
logpath = /var/log/apache*/*error.log
maxretry = 2
riavviare fail2ban:
sudo service fail2ban restart
adesso siamo pronti ad utilizzare il nostro server cloud.
enjoy 😉