Skip to content


Как сделать open-relay из sendmail

sendmail - open-relay howto

Это я, почтальон Печкин!


Иногда очень утомляет делать одно и то же по сути рутинное действие больше одного раза. Например, разрешать пересылку почты через почтовый сервер с установленным sendmail для определённого IP-адреса сначала на уровне firewall-а, а потом еще и в конфигах самого sendmail-а. Поэтому я принял ответственное решение разрешить sendmail-у relaying для всех, но firewall-ом пускать только избранных, чтобы всякие ушлые спамеры не поимели наш сервер. Далее расписано как это делать, поскольку процедура оказалась слегка не очевидная.

  1. В файл access добавить строчку
    *.* RELAY
  2. В sendmail.mc найти строчку "dnl FEATURE(`relay_mail_from')dnl" и поменять её, чтобы она выглядела так:

    FEATURE(promiscuous_relay)dnl
  3. Выполнить команду make и перезапустить sendmail:
    make ; service sendmail restart

Вся эта последовательность действий может быть выполнена следующим bash-скриптом:

cd /etc/mail
cp -p sendmail.mc sendmail.mc.bak
grep -E "^FEATURE\(promiscuous_relay\)" sendmail.mc || sed -i "/use_ct_file/ aFEATURE(promiscuous_relay)dnl" sendmail.mc
sed -i "/127.0.0.1/ a# WARNING! FEATURE(promiscuous_relay) was set. Be careful!" access
make
diff sendmail.mc.bak sendmail.mc || service sendmail restart

На всякий случай: мой Makefile из директории /etc/mail можно скачать по этой ссылке.

ПРЕДУПРЕЖДЕНИЕ: если Вы захотите сделать вышеописанное у себя, обязательно убедитесь, что сервер не открыт для всего Интернета. Иначе об этом быстро узнают спамеры и будут слать через него свою нечисть, Ваш сервер попадёт в чёрные списки и в самом худшем случае провайдер может вообще прекратить предоставление сервиса.

Posted in *nix, Howto.

Tagged with .


One Response

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Рантье says

    В файл access на самом деле ничего добавлять необязательно.

You must be logged in to post a comment.