Назад | Перейти на главную страницу

sendmail только ретранслирует сообщения, привязанные к одному конкретному домену

Мне было интересно, не могли бы вы помочь мне с этой простой проблемой, но я, кажется, не могу ее понять.

У нас есть несколько серверов centos, на которых запущен sendmail (все внутренние серверы в локальной сети) - с очень упрощенной конфигурацией sendmail (все по умолчанию), кроме ретрансляции всего на наш сервер обмена, т.е. DSourexchangeserver. Теперь я хочу иметь эти centos. серверы конфигурации sendmail ТОЛЬКО ретранслируют электронные письма, предназначенные для домена нашей компании, т.е. me@mycompaniesdomain.com. Я не хочу, чтобы почта пересылалась куда-либо еще. Есть ли способ заставить sendmail проверять отправляемые на него письма и ретранслировать на наш сервер обмена только те, которые соответствуют требованию быть предназначенными для домена нашей компании, и останавливать все остальное?

Видеть: http://www.sendmail.org/tips/relaying

Самый простой подход - перечислить домены, которые вы хотите ретранслировать, в файле / etc / mail / relay-domains. Все, что указано в этом файле, будет принято для ретрансляции. Примечание: Sendmail необходимо перезапустить после изменения этого файла.

Этот и другие советы на этой странице должны помочь вам начать работу. В противном случае вы можете проверить SMTP AUTH, если вам нужно контролировать, кто может пересылать электронную почту.

Проблема с relay-domains заключается в том, что он разрешает ретрансляцию, если отправляющая система находится в этом домене.

Решением может быть использование базы данных доступа. В него положили:

Кому: mycompaniesdomain.com РЕЛЕ

Убедитесь, что все остальные параметры реле отключены. Sendmail - сложный зверь, и может быть полезно опубликовать ваш mc-файл.

Для этого не нужен milter. Вы можете сделать это через sendmail.mc. Добавьте эти строки в свой sendmail.mc:

#Define the smart host
define(`SMART_HOST', `exchange server here')dnl

#Define a class of domains we want to relay to the smart host
C{Exchange} example.com example.org

#Decide whether to delete outgoing email or not
LOCAL_RULE_0
#test the behavior of your system to see if you need the following line
R$* < @ $=w . > $*              $#OK
R$* < @ $={Exchange} . > $*     $#OK
R$*                             $#local $: bit-bucket

бит-ведро должно иметь псевдоним / dev / null в / etc / mail / aliases:

bit-bucket: /dev/null

Не забудьте после этого пересобрать sendmail.cf из файла sendmail.mv и перезапустить sendmail. Я не знаю, как это делается в CentOS. Debian sendmailconfg сделало меня немного ленивым. Также помните, что правила sendmail разделены табуляциями, а не пробелами, поэтому не копируйте и не вставляйте их. Введите вручную и разделите "левую" и "правую" части после LOCAL_RULE_0 табуляциями.

Вот как я это настроил:

1 сервер sendmail, на который отправляется вся электронная почта с машин nix и ретранслируется на сервер обмена в зависимости от того, куда направлено письмо.

Все клиентские конфигурации sendmail имеют опцию DS для указанного выше сервера.

На 1 сервере sendmail (на который все ваши конфигурации sendmail будут указывать параметр DS, который будет действовать как фильтр, выполните следующие действия:

  1. Убедитесь в sendmail.mc под /etc/mail он имеет: Feature('mailertable', 'hash -o /etc/mailertable.db' dnl линия в нем.

  2. Прокомментируйте строку, в которой говорится DAEMON_OPTIONS(``Port=smtp,Addr=127.0.0.1, Name=MTA')dnl (чтобы он мог ретранслировать для всех машин - очевидно, это не было бы хорошей идеей для машины с общедоступным IP-адресом, но я здесь не этим занимаюсь)

  3. vi mailertable и введите следующую строку: yourdomain.com ESMTP:[yourexchangeserverip]

  4. Создайте файл в /etc/mail называется relay-domains и введите следующую строку: yourdomain.com

  5. Бегать m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

  6. Бегать makemap hash /etc/mail/mailertabledb < /etc/mail/mailertable

  7. запустить или перезапустить демон sendmail, /etc/init.d/sendmail restart

Затем на всех машинах, на которых вы хотите установить фильтр электронной почты, просто зайдите в sendmail.cf и установите для параметра DS значение IP или имени хоста вашего сервера, указанного выше. Затем перезапустите sendmail.