Owncloud

De DiouxX's Wiki
Révision datée du 20 mai 2014 à 09:57 par Ddevleeschauwer (discussion | contributions) (Page créée avec « {{ Introduction | Cette page permet d'installer et configurer le service Owncloud }} == Installation == === Prérequis === ==== Database ==== Owncloud se connecte à u... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher
Cette page permet d'installer et configurer le service Owncloud

Installation

Prérequis

Database

Owncloud se connecte à une base de donnée ( MySQL, PostgreSQL, SQLite). Dans notre exemple, nous allons utilisé MySQL. Vous pouvez créer la base de donnée soit avec un outil graphique ou en ligne de commande :

CREATE SCHEMA `ownclouddb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;


  • ownclouddb : est le nom de la DB
  • utf8 : est le type d'encodage de la DB

On crée également un utilisateur spécifique pour la connexion à la base de données.

Serveur Web

Pour installé Owncloud, le serveur qui va l'accueillir à besoin de plusieurs paquets installé apache2 et php5

Konsole.png
[root@ordi ~]# sudo apt-get install apache2 php5 php5-cli php5-commin php5-curl php5-gd php5-imagick php5-ldap php5-mysql php5-odbc php5-pgsql php5-xlmrpc libapache2-mod-php5


Owncloud

Installation

On récupère la dernière version de owncloud que l'on va placer dans le répertoire du serveur web

Konsole.png
[root@ordi ~]# cd /var/www && sudo wget http://download.owncloud.org/community/owncloud-latest.tar.bz2 && sudo tar -xjf owncloud-latest.tar.bz2
[root@ordi ~]# sudo chown -R www-data:www-data owncloud


Une fois désarchivé, vous devriez avoir accès à owncloud soit via l'adresse IP du serveur http://IP/owncloud ou via le nom DNS que vous aurez configuré comme décrit ici

Configuration

Apache

Administrateur et base de donnée

Une fois arrivé sur la page pour la première fois, vous devez compléter les informations concernant l'utilisateur administrateur et les informations de connexion pour la base de données.

Authentification OpenLDAP

Pour mettre en place l'authentification LDAP, il faut ajouter une application. Pour ce faire, on se rend dans le panneau d'administration


Et on clique sur la croix permettant d’accéder aux applications disponibles.


On choisis LDAP user and group backend et on active l'application


Maintenant, si on retourne dans la panneau d'administration, on retrouve différents champs qui vont nous permettre de configurer l'authentification via LDAP. On remplit d'abord les infos de connexion au serveur LDAP :

On sélectionne dans la fenêtre suivante, les classes d'objets pour les utilisateurs pouvant se connecter à Owncloud. Cela permet de restreindre éventuellement l'accès à Owncloud aux utilisateurs ne possédant pas ces différentes classes d'objets.

Dans la fenêtre suivante, on spécifie via quel attribut les utilisateurs vont pouvoir se connecter : nom d'utilisateur et/ou adresse email et les champs correspondant dans le LDAP

fail2ban

Pour mettre en place fail2ban pour owncloud, nous allons devoir modifier un peu le code source de Owncloud. Pas de panique, cela n'engendre aucun dysfonctionnement à Owncloud.

Tout d'abord, on va créé un fichier de log spécifique :

Konsole.png
[root@ordi ~]# sudo touch /var/log/owncloud-fail.log && sudo chown www-data:www-data /var/log/owncloud-fail.log


On va insérer un code dans la fonction checkPassword du fichier /var/www/owncloud/lib/private/user/database.php, juste avant le “return false”. Ce qui donne ceci :

else {
                        $today = new DateTime();
                        date_timezone_set($today, timezone_open('Europe/Paris'));
                        $IPClient= $_SERVER['REMOTE_ADDR'];     
                        $logAuth = fopen('/var/log/owncloud-fail.log', 'a+');
                        fputs($logAuth, date_format($today, 'Y/m/d H:i:s') . " Password check failed for: \t" . $
                        fclose($logAuth);
                        return false;
                }

On passe à présent à la création de la prison Fail2ban dans /etc/fail2ban/filter.d/owncloud.conf

	
#Owncloud jail
[Definition]
failregex = <HOST>$

On test que la regex match bien. (Effectuez une erreur de login sur l’interface avant)

Konsole.png
[user@ordi ~]$ fail2ban-regex /var/log/owncloud-fail.log /etc/fail2ban/filter.d/owncloud.conf


On ajoute cette prison à la configuration dans /etc/fail2ban/jail.conf

[owncloud]
enabled = true
port = http,https
filter = owncloud
logpath = /var/log/owncloud-fail.log
maxretry = 3

On redémarre fail2ban pour prendre en compte les nouveaux changements

Konsole.png
[root@ordi ~]# sudo service fail2ban restart


Warning.png
Attention !
Il faut quand même garder en tête que les lignes dans le php seront à réécrire à chaque mise à jour de Owncloud.


Envoi de mail

S'il n'y a pas de serveur mail installé sur le même serveur que l'instance OwnCloud, il est nécessaire de préciser un serveur SMTP pour qu'OwnCloud puisse envoyer des emails.

Il nous faut éditer le fichier /var/www/owncloud/config/config.php et rajouter les paramètres suivants :

  'mail_smtpmode'  => 'smtp',
  'mail_smtphost'  => '192.168.100.5',
  'mail_smtpport'  => 25,
  'mail_smtptimeout'  => 30,
  • mail_smtphost : l'IP ou le nom DNS du serveur SMTP
  • mail_smtpport : le numéro de port du serveur SMTP
  • mail_smtptimeout : si un scanner de malware ou SPAM tourne sur le serveur SMTP, il est nécessaire d'augmenter le timeout SMTP ( 30s ou 60s ont l'air d’être des valeurs corrects)

Troubleshooting

Procédures

Mise à jour

On se rend dans le dossier du répertoire web

Konsole.png
[user@ordi ~]$ cd /var/www


On réalise un backup du dossier

Konsole.png
[root@ordi ~]# sudo rsync -a owncloud/ owncloud_bkp`date +"%Y%m%d"`/


On réalise un backup de la base de donnée

Konsole.png
[root@ordi ~]# mysqldump --lock-tables -h [server] -u [username] -p[password] > owncloud-sqlbkp_`date +"%Y%m%d"`.bak


Pour SQLite
sqlite3 data/owncloud.db .dump > owncloud-sqlbkp_`date +"%Y%m%d"`.bak
Pour PostgreSQL
PGPASSWORD="password" pg_dump owncloud -h [server] -U [username] -f owncloud-sqlbkp_`date +"%Y%m%d"`.bak

On supprime tous les dossier sauf le dossier config et data

Konsole.png
[root@ordi ~]# cd owncloud
[root@ordi ~]# ll
[root@ordi ~]# sudo find . -mindepth 1 -maxdepth 1 ! -path ./data ! -path ./config -exec rm -rf {} \;
[root@ordi ~]# ll


On télécharge et désarchive la derniere version

Konsole.png
[root@ordi ~]# cd ..
[root@ordi ~]# sudo wget http://download.owncloud.org/community/owncloud-latest.tar.bz2
[root@ordi ~]# sudo tar -xjf owncloud-latest.tar.bz2
[root@ordi ~]# ls owncloud


On remet les droits correct

Konsole.png
[root@ordi ~]# sudo chown -R www-data:www-data owncloud