Table des matières
Installer Owncloud sur Raspberry Pi
Prérequis
- avoir une Raspberry Pi en Raspbian raccordée en filaire à la box ou au routeur ;
- La Rasberry doit disposer d'une adresse IP fixe ;
- Pour accéder à votre Owncloud depuis internet, vous devez disposer d'un nom de domaine pointant vers l'adresse IP publique de votre Box/routeur. (cf no-ip.org, dyndns, …).
<note importante> /!\ pour les cartes SD, il est nécessaire d'étendre la partition :
sudo raspi-config expand_rootfs
</note> <note> Avec l'éditeur nano, pour enregistrer : Ctrl+O et pour quitter Ctrl+X. </note>
- Il est également important que la Raspberry soit à jour :
sudo apt-get update sudo apt-get upgrade
Configuration de SSH
Editer /etc/ssh/sshd_config avec nano par exemple :
sudo nano /etc/ssh/sshd_config
Il est plutôt conseillé de changer le numéro de port d'écoute qui par défaut est le 22. Il est possible de le changer. Dans ce cas, en choisir un au delà du numéro 1024, par exemple : 12345.
A la ligne PermitRootLogin pour changer yes en no afin d'éviter de se retrouver root à distance tant en local qu'à travers internet.
Ajoutez aussi à la fin du fichier la ligne AllowUsers pi, pour n'autoriser que pi (votre utilisateur par défaut sur une Raspberry Pi) à se connecter à SSH.
Sur le NAT de votre box ou routeur, faire que votre ip publique de type xxx.xxx.xxx.xxx sur le port 12345 soit renvoyée vers le port 22 de votre adresse ip privée de type 192.168.xxx.xxx:22 (l'adresse IP statique de la Raspberry Pi). De la sorte nous disposons d'un accès SSH à la Raspberry Pi sur le port 12345 de l'adresse IP publique du routeur/box. Il faut également rediriger les ports sources 80 et 443 respectivement vers les port 80 et 443 de la Raspberry Pi afin de permettre l'accès à l'interface web Owncloud.
Soit au niveau du NAT dans la box ou le routeur :
- xxx.xxx.xxx.xxx:12345 vers 192.168.xxx.xxx:22
- xxx.xxx.xxx.xxx:80 vers 192.168.xxx.xxx:80
- xxx.xxx.xxx.xxx:443 vers 192.168.xxx.xxx:443
Pour finir :
sudo service ssh restart
Configuration de l'interface réseau
Il faut éditer le fichier /etc/network/interfaces en commentant tout avec un # devant chaque ligne puis en rectifiant comme suit :
sudo nano /etc/network/interfaces auto lo iface lo inet loopback iface eth0 inet static address 192.168.xxx.xxx gateway 192.168.xxx.yyy netmask 255.255.255.0
Installation d'Apache2 et php5
sudo apt-get install apache2 php5 libapache2-mod-php5
Installation de MySQL:
sudo apt-get install mysql-server mysql-client php5-mysql
/!\ L'identifiant sera par défaut root, et le mot de passe choisi seront ceux à recopier plus tard lors de la finalisation de l'installation d'owncloud.
sudo service apache2 restart
Installation de fail2ban :
Cela permet de bannir les adresses ip essayant de se connecter “furieusement”.
sudo apt-get install fail2ban
Ensuite, il faut éditer le fichier de configuration afin de donner une adresse mail afin d'envoyer les rapports de ban.
sudo nano /etc/fail2ban/jail.conf
destemail = votre@email.com
Toujours dans ce même fichier, rechercher la ligne qui commence par action = afin de rajouter mwl après le _ afin d'avoir un rapport complet.
action =%(action_mwl)s
Ensuite, toujours dans le même fichier, afin d'avoir les rapports sur les principaux services, il faut remplacer false par true dans les parties suiavntes :
- ssh ;
- ssh-ddos ;
- apache ;
- apache-noscript ;
- apache-overflows.
Installation de sendmail
C'est pour pouvoir envoyer, entre autres, les rapports de fail2ban.
sudo apt-get install sendmail
Installation de owncloud
sudo apt-get install owncloud
Ensuite, se connecter à l'interface de owncloud via un navigateur web :
- en local (avec votre ip privée) :
http://192.168.xxx.yyy/owncloud
ou depuis le net (avec votre ip publique) :
http://xxx.xxx.xxx.xxx/owncloud
afin de compléter les champs suivants :
- choisir un nom pour le compte administrateur d'owncloud avec son mot de passe associé ;
- redonner le couple utilisateur/mot de passe de mysql (par défaut : root/le mot de passe que vous avez choisi lors de l'installation de mysql) ;
- donner un nom pour la base sql d'owncloud (owncloud fera l'affaire).
Activer le support SSL
Editer le fichier /etc/owncloud/config.php pour y forcer le ssl et ainsi passer automatiquement de http vers https lors de la connection à owncloud.
sudo nano /etc/owncloud/config.php
ajouter dans les différentes options la ligne suivante :
"forcessl" => true,
Arrêter Apache2 :
sudo /etc/init.d/apache2 stop
Activer le mode ssl dans Apache2
sudo a2enmod ssl
Créer un fichier owncloud.https :
sudo nano /etc/apache2/sites-available/owncloud.https
Dans lequel vous entrerez ces lignes :
NameVirtualHost *:443 <VirtualHost *:443> SSLEngine On SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire SSLCertificateFile /etc/ssl/certs/owncloud.crt SSLCertificateKeyFile /etc/ssl/private/owncloud.key </VirtualHost>
Activer le site owncloud en https
sudo a2ensite owncloud.https
Par défaut, le serveur Apache2 écoute à priori le port 443. Si ça n'était pas le cas, ajouter Listen 443 dans le fichier /etc/apache2/ports.conf.
sudo nano /etc/apache2/ports.conf
Listen 443
Se positionner dans le répertoire /etc/ssl afin d'y générer clés et certificat nécessaires. Les certificats ne seront pas protégés par une “passe-phrase” et ne seront pas validés par une autorité. Mais cela fonctionnera quand même et suffira pour son nuage personnel.
cd /etc/ssl/
Générer les clés
sudo openssl genrsa -out owncloud.key 2048 sudo openssl req -new -key owncloud.key -out owncloud.csr
Compléter ensuite, par exemple et à personnaliser, les renseignements relatifs au certificat comme suit :
Country Name (2 letter code) [AU]: FR State or Province Name (full name) [Some-State]: France Locality Name (eg, city) []: Avignon Organization Name (eg, company) [Internet Widgits Pty Ltd]:AviGNU Organizational Unit Name (eg, section) []:owncloud Common Name (eg, YOUR name) []:avignu.tuxfamily.org Email Address []:avignu@mon.domaine.ndd
Générer le certificat
sudo openssl x509 -req -days 365 -in owncloud.csr -signkey owncloud.key -out owncloud.crt
Copier clé et certificat dans le répertoire qui a été précisé dans le fichier owncloud.https :
sudo cp owncloud.crt /etc/ssl/certs sudo cp owncloud.key /etc/ssl/private
Redémarrer Apache2 :
sudo /etc/init.d/apache2 start
PouetPouetRatatouille dit merci @Flo|va_nu_pied
p.s. : un lien pour réaliser l'installation sans passer par les dépôts (non testé)
http://robindavid.comli.com/raspberry-pi-first-config-and-services-configuration/