Рейтинг:2

SELinux - блокирует отправку писем с постфиксом из веб-приложения.

флаг cn

Моя системная среда: Centos-7.9, Apache2.4, Php-fpm, PHP-7.4.

У меня есть настройка postfix для отправки электронных писем с веб-сайта, который работает в автономных тестовых электронных письмах и когда я выключаю SELinux.

Однако, если SELinux включен, он будет блокировать отправку электронных писем с сервера с приведенной ниже ошибкой в /var/журнал/журнал почты

 postfix/sendmail[10883]: фатальный: execv /usr/libexec/postfix/smtpd: Отказано в доступе

Когда я делаю

  судо setenforce 0

Однако он отправляет электронные письма, я не хочу отключать SELinux, но я хотел бы разрешить моему веб-приложению отправлять электронные письма в белый список. Я пробовал ниже, но это не сработало

sudo setsebool -P httpd_can_sendmail 1

Любая идея о том, как решить эту проблему?

Рейтинг:0
флаг cn

Что бы я сделал здесь, это

Переведите SELinux в разрешающий режим

0

Поверните журналы аудита, чтобы получить чистый список отклонений AVC.

kill -USR1 $(cat /run/auditd.pid) 

Причина Возникновение проблемы и создание сообщений аудита

Создайте модуль локальной политики

grep запрещен /var/log/audit/audit.log | Audit2allow -m mypolicy > mypolicy.te 

Убедитесь, что сгенерированный файл политики выглядит так, как я ожидаю, и не «выдает» то, что мне не нужно, и отредактируйте его по мере необходимости.

Создайте и установите политику

checkmodule -M -m -o mypolicy.mod mypolicy.te
semodule_package -o mypolicy.pp -m mypolicy.mod
семодуль -i mypolicy.pp 

Возможно, вам будет проще поместить все отказы AVC в отдельный файл, а затем удалить те, которые не относятся к проблеме, которую вы пытаетесь решить, прежде чем использовать в файле audit2alow. Если это работает лучше для вас, вы можете пропустить промежуточные шаги и сразу перейти к файлу .pp.

кот myavcs.log | Audit2allow -M моя политика
Рейтинг:0
флаг vn

Это известная ошибка в RHEL 7.7 и выше при использовании php-fpm вместо апача mod_php. Поскольку вы используете CentOS 7.9, это применимо.

Вы можете прочитать больше о проблеме на Bugzilla Red Hat: http://bugzilla.redhat.com/show_bug.cgi?id=1754622

Что касается решения вашей проблемы, то первое и наиболее очевидное — это отключение SELinux, но в качестве второго варианта я бы рекомендовал следующее:

  1. Установить пакет policycoreutils-python
  2. Использовать аудит2почему и аудит2разрешить для создания пользовательских правил, чтобы включить php-fpm для работы с включенным SELinux.
  3. хвост -ф на /var/log/аудит/audit.log и попробуйте отправить письмо с httpd. Получите вывод и проведите его через аудит2почему и аудит2разрешить. Это было бы самоочевидно.
  4. Примените правила, рекомендованные обеими программами.

Третьим решением было бы поставить httpd_t или же system_mail_t (в зависимости от выхода аудит2разрешить) в разрешающем режиме, если вы не хотите создавать пользовательские правила, специфичные для этой машины. Но имейте в виду, что при этом вы отключите SELinux для всего контекста.

Это будет сделано с помощью следующей команды: semanage разрешительный -a httpd_t или же semanage разрешительный -a system_mail_t. Чтобы отменить изменения, просто измените к .

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.