J'ai installé un système CentOS minimal avec Apache, PHP et SELinux dans une configuration par défaut :
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 29
Si je veux changer le répertoire racine d'Apache, je dois renommer ce nouveau répertoire sinon SELinux bloque l'accès. Mais j'ai découvert, avec les scripts de PHP, qu'il est possible de faire beaucoup plus que ce que je pensais. Par exemple, je peux faire les actions suivantes sans aucune alerte :
- lire
/etc/passwd
, - liste
/var/tmp
, - afficher la version du noyau,
- établir une connexion avec des hôtes externes
Cependant, je reçois des alertes AVC lorsque j'essaie de lire les attributs de l'article. /etc/shadow
ou lorsque j'essaie d'accéder au répertoire personnel.
Tout d'abord, est-ce normal ? Et comment puis-je modifier SELinux pour restreindre davantage les actions de PHP ?
J'utilise CentOS 7 et ma version de selinux-policy est 3.13.1-23.el7_1.7. (J'ai également essayé la même chose avec Fedora et j'obtiens les mêmes résultats)