Article ID: 6998, created on Jan 8, 2010, last review on May 5, 2012

  • Applies to:
  • Plesk 8.6 for Linux/Unix

Symptômes

Il existe un script PHP pour envoyer les mails. Par exemple :

HTTPD_VHOSTS_D/domain.tld/httpdocs/testmail.php
--->8---
<?php
mail("someperson@domain.tld","test","test");
echo "OK";
?>
---8<---


someperson@domain.tld correspond à l'adresse mail correcte.

Si SELinux est en mode Enforcing, le mail ne sera pas envoyé à l'appel du script via http://domain.tld/testmail.php

~# getenforce
Enforcing
~#


Si SELinux est en mode Permissive, le mail sera envoyé.

~# getenforce
Permissive
~#

Cause

la fonction php mail() ne peut pas appeler qmail-inject en raison de la restriction SELinux. La notification suivante s'affiche dans le log du système dans les deux cas :

/var/log/messages:
--->8---
Aug 26 20:22:21 plesk server: type=1400 audit(1251336141.066:6165): avc: denied { read } for pid=21983 comm="qmail-inject" name="me" dev=md3 ino=7340271 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:etc_mail_t:s0 tclass=file
Aug 26 20:22:21 plesk server: type=1400 audit(1251336141.149:6166): avc: denied { write } for pid=21986 comm="qmail-queue.mov" name="trigger" dev=md3 ino=7340196 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:mail_spool_t:s0 tclass=fifo_file
---8<---


Le problème peut être reproduit avec le schéma suivant :

1. Désactivez SELinux
2. Installez Parallels Panel 8.4
3. Mettez à niveau Parallels Panel vers la version 8.6
4. Activez SELinux
 

Résolution

Ce problème a été résolu dans Parallels Panel depuis la version 9.0. Les politiques SELinux s'appliquent correctement lors de la mise à niveau vers version 9.x.

Comme solution temporaire, nous vous conseillons de procéder aux étapes suivantes pour Parallels Panel 8.6 :

1. Activez le mode Enforcing de SELinux :

~# setenforce 1

2. Téléchargez et réinstallez le pack psa-selinux. Le pack est disponible sur le site Web http://autoinstall.plesk.com. Ouvrez l'URL et choisissez la version de Parallels Panel 8.6.0, puis entrez le répertoire qui correspond à votre système d'exploitation et à votre architecture. Le pack est situé dans le répertoire /base. Par ex., pour Parallels Panel 8.6.0, CentOS5, 32bi, le fichier est http://autoinstall.plesk.com/PSA_8.6.0/dist-rpm-CentOS-5-i386/base/psa-selinux-8.6.0-cos5.build86090814.11.noarch.rpm.

N'utilisez pas l'URL ci-dessus, choisissez votre système d'exploitation et votre architecture.

Réinstallez le pack :

~# rpm -U --force /PATH/TO/FILE/psa-selinux-version-os.build.rpm

b8ef5052d936e902043e41759118114e a914db3fdc7a53ddcfd1b2db8f5a1b9c 29d1e90fd304f01e6420fbe60f66f838 9fa0130c84cac4b292697ade62270a40 56797cefb1efc9130f7c48a7d1db0f0c

Email subscription for changes to this article
Save as PDF