Configuration SELinux

Quand SELinux est activé sur votre distribution Linux, vous pouvez rencontrer des problèmes de permissions après une nouvelle installation d’ownCloud et voir des erreurs permission denied dans vos journaux ownCloud.

Les paramètres suivants devraient fonctionner pour la plupart des systèmes SELinux utilisant les profils par défaut de la distribution. Exécutez ces commandes en tant que root et ajustez les chemins d’accès des fichiers en fonction de votre installation :

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/data(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/apps(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/assets(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/.htaccess'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/.user.ini'

restorecon -Rv '/var/www/html/owncloud/'

Si vous désinstallez ownCloud, vous devez supprimer les libellés de répertoires d’ownCloud. Pour cela, exécutez les commandes suivantes en tant que root après avoir désinstallé ownCloud :

semanage fcontext -d '/var/www/html/owncloud/data(/.*)?'
semanage fcontext -d '/var/www/html/owncloud/config(/.*)?'
semanage fcontext -d '/var/www/html/owncloud/apps(/.*)?'
semanage fcontext -d '/var/www/html/owncloud/assets(/.*)?'
semanage fcontext -d '/var/www/html/owncloud/.htaccess'
semanage fcontext -d '/var/www/html/owncloud/.user.ini'

restorecon -Rv '/var/www/html/owncloud/'

Note : Le dossier « assets » n’est nécessaire que si « JavaScript and CSS Asset Management » est activé. ('asset-pipeline.enabled' => true, in config.php).

Si vous avez des politiques SELinux personnalisées et que ces exemples ne fonctionnent pas, vous devez donner les droits en écriture au serveur HTTP sur ces répertoires :

/var/www/html/owncloud/data
/var/www/html/owncloud/config
/var/www/html/owncloud/apps
/var/www/html/owncloud/assets

Activer les mises à jour dans l’interface Web

Pour activer les mises à jour dans l’interface Web d’ownCloud, vous devez activer l’accès en écriture dans les répertoire d’ownCloud

setsebool httpd_unified on

Quand la mise à jour est terminée, désactivez l’accès en écriture

setsebool -P  httpd_unified  off

Empêcher l’accès en écriture dans tout le répertoire Web

Pour des raisons de sécurité, il est suggéré de désactiver l’accès en écriture dans tous les dossiers de /var/www/ (par défaut)

setsebool -P  httpd_unified  off

Autorisation d’accès à une base de données distante

Un paramètre supplémentaire est nécessaire si votre installation se connecte sur une base de données distante :

setsebool -P httpd_can_network_connect_db on

Autorisation d’accès à un serveur LDAP

Utiliser ce paramètre pour autoriser les connexions LDAP :

setsebool -P httpd_can_connect_ldap on

Autorisation d’accès à un réseau distant

ownCloud nécssite d’accéder à des réseaux distants pour des fonctions comme le partage de serveur à serveur, les stockages externes our le magasin d’applications. Pour permettre ceci, utiliser le paamètre suivant :

setsebool -P httpd_can_network_connect on

Autoriser l’accès au réseau memcache

Ce parmètre n’est pas nécessaire si httpd_can_network_connect est déjà à on

setsebool -P httpd_can_network_memcache on

Autorisation d’accès à SMTP/sendmail

Si vous voulez autoriser ownCloud à envoyer des courriels de notification par sendmail, utilisez le paramètre suivant :

setsebool -P httpd_can_sendmail on

Autorisation d’accès à CIFS/SMB

Si le répertoire de données est situé sur un partage CIFS/SMB, utiliser le paramètre suivant :

setsebool -P httpd_use_cifs on

Autoriser l’accès à FuseFS

Si votre dossier data d’ownCloud réside dans un système de fichiers Fuse (par exemple EncFS, etc.), ce paramètre est aussi requis

setsebool -P httpd_use_fusefs on

Autoriser l’accès à GPG pour Rainloop

Si vous utilisez l’application de messagerie Web Rainloop qui gère GPG/PGP, vous pourriez avoir besoin de ceci

setsebool -P httpd_use_gpg on

Dépannage

Pour le dépannage de SELinux et de ses profils, essayez d’installer setroubleshoot et exécutez la commande :

sealert -a /var/log/audit/audit.log > /path/to/mylogfile.txt

pour obtenir un rapport qui vous aidera à configurer vos profils SELinux.

Un autre outil de dépannage est d’activer un jeu de règles pour votre répertoire ownCloud

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud(/.*)?'
restorecon -RF /var/www/html/owncloud

La sécurité est plus forte si vous appliquez une granularité fine pour les jeux de règles, comme au début de ce document. Aussi, n’utilisez ceci que pour des tests ou de dépannage. Cela a les mêmes effets que de désactiver SELinux, veuillez donc ne pas l’utiliser sur des systèmes en production.

Lire cette discussion sur GitHub pour en apprendre plus sur la manière de configurer correctement SELinux pour ownCloud.

Toute la documentation est sous licence Creative Commons Attribution 3.0 Unported license — Traduction : Cédric Corazza.