SystemdDoctor
служба не работает почта сокеты права

Фильтр почты недоступен почтовой службе: сокет и группы

Фильтр почты и почтовая служба работают от разных пользователей и общаются через локальный сокет. Права на сокет определяет фильтр, а читать его должна почтовая служба — их нужно согласовать заранее, иначе письма пойдут без проверки или будут отклоняться.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Права на сокет не дают доступа почтовой службе

    Сокет создан с правами только для владельца. Почтовая служба от своего пользователя получает отказ.

  2. Каталог сокета не создаётся при загрузке

    Каталог во временной файловой системе исчезает, и фильтр не может создать в нём сокет.

  3. Письма проходят без проверки при недоступном фильтре

    Почтовая служба может быть настроена пропускать письма, если фильтр недоступен. Тогда отказ остаётся незамеченным.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Существует ли сокет фильтра и с какими правами.

sudo ls -l /run/rspamd/

Сообщения фильтра о слушателях.

journalctl -u rspamd -n 30 --no-pager

Что получает почтовая служба при обращении к фильтру.

sudo journalctl -u postfix -n 20 --no-pager | grep -i milter

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Права на сокет не дают доступа почтовой службе
Почему происходит
Сокет создан с правами только для владельца. Почтовая служба от своего пользователя получает отказ.
Как проверить
Посмотрите права сокета и пользователей обеих служб.
sudo ls -l /run/rspamd/*.sock 2>/dev/null
systemctl show rspamd -p User -p Group 2>/dev/null; systemctl show postfix -p User 2>/dev/null
Как исправить
Задайте владельца и режим доступа сокета так, чтобы группа почтовой службы могла писать. Общая группа для двух служб — обычная и правильная схема.
2. Каталог сокета не создаётся при загрузке
Почему происходит
Каталог во временной файловой системе исчезает, и фильтр не может создать в нём сокет.
Как проверить
Посмотрите каталог и параметры службы.
systemctl show rspamd -p RuntimeDirectory -p RuntimeDirectoryMode 2>/dev/null
sudo ls -ld /run/rspamd 2>/dev/null
Как исправить
Объявите каталог через RuntimeDirectory= с нужным режимом: systemd создаст его при каждом запуске.
3. Письма проходят без проверки при недоступном фильтре
Почему происходит
Почтовая служба может быть настроена пропускать письма, если фильтр недоступен. Тогда отказ остаётся незамеченным.
Как проверить
Посмотрите настройку поведения при недоступности фильтра.
postconf 2>/dev/null | grep -iE "milter_default_action|smtpd_milters"
Как исправить
Выберите поведение осознанно: пропускать письма без проверки или отклонять их. Молчаливый пропуск удобен, но означает отсутствие фильтрации при любом сбое.

Пример вывода

Почтовая служба не может писать в сокет фильтра. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

postfix/cleanup[8200]: warning: connect to Milter service unix:/run/rspamd/milter.sock: Permission denied
postfix/cleanup[8200]: warning: milter unix:/run/rspamd/milter.sock: can't read SMFIC_BODYEOB reply

$ sudo ls -l /run/rspamd/milter.sock
srw------- 1 _rspamd _rspamd 0 Sep 15 18:02 /run/rspamd/milter.sock

Связанные ошибки

Источники

  • systemd.exec(5)
    RuntimeDirectory= и режим доступа к каталогу времени работы.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Документация Rspamd документация программы
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено сокетом с правами только для владельца.
    собственная проверка, systemd 255
    сверено 15 сентября 2026