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, dans le fichier 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

Activation des mises à jour via l’interface Web

Pour activer les mises à jour via l’interface Web d’ownCloud, vous aurez peut-être besoin d’autoriser l’écriture dans les répertoires d’ownCloud

setsebool httpd_unified on

Quand la mise à jour est terminée, enlever les droits en écriture

setsebool -P  httpd_unified  off

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

Pour des raisons de sécurité, il est suggéré de désactiver l’accès en écriture sur tous les répertoires dans /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

Autorisation d’accès au réseau memcache

Ce paramètre n’est pas nécessaire si httpd_can_network_connect est déjà défini à « 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

Autorisation d’accès à FuseFS

Si votre dossier data d’ownCloud réside sur une système de fichiers Fuse (par ex. : EncFS etc), ce paramètre est également requis

setsebool -P httpd_use_fusefs on

Autorisation d’accès de GPG pour Rainloop

ISi vous utilisez un client 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 pour le dépannage est d’activer une règle dans votre répertoire ownCloud

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

Il est beaucoup plus sûr d’avoir une granularité des règles comme dans les exemples décrits au début, aussi, n’utilisez ceci que pour les tests et le dépannage. Cela a un effet similaire à la désactivation de SELinux, n’utilisez donc pas ceci sur des systèmes en production.

Consulter cette discussion sur GitHub pour en apprendre plus la configuration correcte de SELinux pour ownCloud.

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