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.