Настройка sendmail за брандмауэром - PullRequest
7 голосов
/ 04 сентября 2008

Я настраиваю сервер, который находится в сети за брандмауэром, и я хочу, чтобы программы на этом компьютере могли использовать sendmail для отправки писем на любой адрес электронной почты. В этой сети работает SMTP-сервер (назовем его mailrelay.example.com), и именно так мы должны получать исходящие сообщения через брандмауэр.

Так как мне настроить sendmail на отправку всей почты через mailrelay.example.com? Google еще не дал мне ответа и только показал, что конфигурация sendmail чрезвычайно сложна и раздражает.

Ответы [ 3 ]

13 голосов
/ 20 сентября 2008

@ eli: прямое изменение sendmail.cf обычно не рекомендуется, так как оно генерируется компилятором макроса.

Измените /etc/mail/sendmail.mc, добавив в него строку:

  define(`SMART_HOST',`mailrelay.example.com')dnl 

После изменения файла конфигурации макроса sendmail.mc его необходимо перекомпилировать создать файл конфигурации sendmail.

  # m4 /etc/mail/sendmail.mc > /etc/sendmail.cf

И перезапустите службу sendmail (Linux):

  # /etc/init.d/sendmail restart

Помимо настройки smarthost, вы можете также отключить настройку разрешения имен и, возможно, переместить sendmail на нестандартный порт или отключить режим демона.

Отключить разрешение имен

Серверы, которые находятся в сетях с защищенными стенами или используют сетевой адрес При трансляции (NAT) могут быть недоступны службы DNS или NIS. Это создает проблема для sendmail, так как он будет использовать DNS по умолчанию, и если это не так доступно вы увидите такие сообщения в mailq:

  host map: lookup (mydomain.com): deferred)

Если вы не готовы настроить соответствующую службу DNS или NIS, которая sendmail может использовать, в этой ситуации вы обычно настраиваете имя разрешение должно быть сделано с помощью файла / etc / hosts. Это делается путем включения файл 'service.switch' с указанием разрешения по файлу следующим образом:

1: включить service.switch для sendmail Отредактируйте /etc/mail/sendmail.mc, добавив в него строки:

  define(`confSERVICE_SWITCH_FILE',`/etc/mail/service.switch')dnl

2: настройка service.switch для файлов Создайте или измените /etc/mail/service.switch, чтобы он ссылался только на / etc / hosts для имени разрешение: 1024 * *

  # cat /etc/mail/service.switch
  hosts files

3: Перекомпилируйте sendmail.mc и перезапустите sendmail, чтобы этот параметр вступил в силу.

Переключение sendmail на нестандартный порт или отключение режима демона

По умолчанию sendmail будет прослушивать порт 25. Возможно, вы захотите изменить этот порт или отключите режим демона sendmail по разным причинам: - если есть политика безопасности, запрещающая использование известных портов - если на том же хосте должен быть запущен другой продукт / процесс SMTP на стандартном порту - если вы вообще не хотите принимать почту через smtp, просто отправьте ее с помощью sendmail

1: чтобы перевести sendmail на нестандартный порт. Отредактируйте /etc/mail/sendmail.mc и измените параметр «Порт» в строке:

  DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')

Например, чтобы sendmail использовал порт 125:

  DAEMON_OPTIONS(`Port=125,Addr=127.0.0.1, Name=MTA')

Для этого потребуется перекомпиляция sendmail.mc и перезапуск sendmail.

2: В качестве альтернативы можно вообще отключить демон-демон sendmail (Linux) Отредактируйте / etc / sysconfig / sendmail и измените настройку «DAEMON» на:

  DAEMON=no

Это изменение потребует перезапуска sendmail.

5 голосов
/ 04 сентября 2008

http://www.elandsys.com/resources/sendmail/smarthost.html

Sendmail Smarthost

Smarthost - это хост, через который исходящая почта ретранслируется. Некоторые интернет-провайдеры заблокировать исходящий SMTP-трафик (порт 25) и требовать от своих пользователей рассылать вся почта через почту провайдера сервер. Sendmail можно настроить на использовать почтовый сервер провайдера в качестве смарт хозяйничать.

Прочтите связанную статью, чтобы узнать, как ее настроить.

3 голосов
/ 04 сентября 2008

@ Espo: Спасибо за отличный совет, с чего начать. Ваша ссылка была бы лучше, если бы я настраивал sendmail для его первого использования вместо того, чтобы брать существующую конфигурацию и вносить это небольшое изменение. Однако, как только я узнал, что нужно искать в «SmartHost», я нашел более простой способ.

Все, что мне нужно было сделать, это отредактировать мой файл /etc/mail/sendmail.cf, чтобы изменить

DS

до

DSmailrelay.example.com

затем перезапустите sendmail и все заработало.

...