Table des matières

Installer Owncloud sur Raspberry Pi

Prérequis

<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>

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 :

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 :

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 :

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/