Внимание
Для управления ретрансляцией может использоваться также опция 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, убедитесь, что письма корректно доставляются адресатам.
Читать дальше