Внимание
Для управления ретрансляцией может использоваться также опция promiscuous_relay
, но применять ее не рекомендуется. Она открывает доступ к серверу для любого компьютера. Сконфигурированный подобным образом сервер рано или поздно будет обнаружен спамерами и использован для передачи рекламных сообщений.
Ниже приведен пример записи в конфигурационном файле m4
.
FEATURE(`access_db')
Данная запись часто устанавливается по умолчанию, но она не обеспечивает реальной ретрансляции писем, передаваемых с удаленных узлов, так как в файле access.db
, автоматически создаваемом при установке системы, указывается только локальный домен.
Как вы уже знаете, при запуске программа sendmail
читает содержимое файла access.db
. Этот файл обычно хранится в каталоге /etc
или /etc/mail
и создается на базе файла access
. Пример файла access
приведен ниже.
# Разрешить прием писем с localhost...
localhost.localdomain RELAY
localhost RELAY
127.0.0.1 RELAY
# Разрешить прием писем из локальной сети
192.168.99 RELAY
Первые три записи присутствуют практически в любой конфигурации. Они сообщают sendmail о том, что программа должна принимать письма с локального узла. Эти записи обеспечивают работу локальных почтовых программ. Последняя запись указывает на то, что сервер должен принимать для ретрансляции письма, отправленные из сети 192.168.99.0/24. Вместо IP-адресов можно указывать доменные имена, но IP-адреса сложнее фальсифицировать, поэтому при использовании их повышается уровень безопасности системы.
Все приведенные примеры оканчиваются опцией RELAY
, но кроме нее в файле access могут также использоваться и другие опции.
• OK
. Эта опция сообщает sendmail
о том, что локальные письма должны приниматься, несмотря на то, что другие правила требуют отвергать их.
• RELAY
. Как вы, возможно, догадались, данная опция обеспечивает обработку писем, переданных с указанного компьютера или из указанного домена. Она также сообщает, что сервер должен передавать письма, поступившие на эти компьютеры или в эти домены.
• REJECT
. Если вы собираетесь блокировать почту, поступающую с определенного узла или из определенного домена, вам следует использовать данную опцию. При этом письма будут возвращаться отправителю.
• DISCARD
. Данная опция выполняет те же действия, что и REJECT
, но письма не возвращаются отправителю.
• nnn текст
. Эта опция также работает подобно REJECT, но в возвращаемое сообщение она включает код ошибки nnn и указанный текст.
Отредактировав файл access
, вам необходимо сгенерировать двоичный файл базы данных. Для этого надо использовать команду makemap
, которая имеет следующий вид:
# makemap hash /etc/mail/access.db < /etc/mail/access
При инсталляции sendmail
такая команда часто включается в сценарий запуска, поэтому вызывать ее вручную не всегда нужно. В любом случае после внесения изменений в файл access необходимо перезапустить программу sendmail
.
Настройка sendmail
для передачи почты через ретранслятор
В предыдущем разделе рассматривался вопрос об использовании программы sendmail
для ретрансляции почты. Однако, настраивая почтовый сервер, необходимо также принимать во внимание и вопросы передачи писем через ретранслятор, функции которого выполняет другой сервер. Часто при организации работы небольшой сети и даже одного компьютера приходится использовать в качестве ретранслятора почтовый сервер провайдера. Несмотря на то что компьютер под управлением Linux, на котором установлена программа sendmail
, может передавать почту самостоятельно, многие провайдеры запрещают это, включая IP-адреса, предоставляемые своим клиентам, в списки адресов, предназначенные для борьбы со спамом. Кроме того, некоторые компьютеры бывают выключены в течение длительного времени, в результате чего становится невозможным их использование в качестве почтовых серверов. В особенности это относится к портативным компьютерам.
В большинстве случаев конфигурация sendmail
, установленная по умолчанию, не предполагает передачу писем через ретранслятор. Чтобы обеспечить такую возможность, надо включить в конфигурационный файл m4
следующую запись:
FEATURE(`nullclient', `outgoing.mail.relay')
В данном случае outgoing.mail.relay
— это имя компьютера, используемого для ретрансляции почты. После того как вы создадите файл sendmail.cf
и перезапустите sendmail
, вся исходящая почта будет передаваться через указанный почтовый сервер. Выполнив настройку sendmail
, убедитесь, что письма корректно доставляются адресатам.
Читать дальше