Страница 3 из 13
20.3 Настройка sendmail
Предоставил Christopher Shumway.
В FreeBSD по умолчанию программой передачи почты (Mail Transfer Agent, MTA) является sendmail(8). Работа sendmail заключается в приеме почты от почтовых программ пользователей (Mail User Agents, MUA) и отправке ее на соответствующий адрес, в соответствии с имеющимися настройками. sendmail может также принимать входящие соединения по сети и доставлять почту в локальные почтовые ящики или перенаправлять их другой программе.
sendmail использует следующие файлы настройки:
Имя файла |
Назначение |
/etc/mail/access |
Файл базы данных доступа sendmail |
/etc/mail/aliases |
Синонимы почтовых ящиков |
/etc/mail/local-host-names |
Список хостов, для которых sendmail принимает почту |
/etc/mail/mailer.conf |
Настройки почтовой программы |
/etc/mail/mailertable |
Таблица доставки почтовой программы |
/etc/mail/sendmail.cf |
Основной файл настройки sendmail |
/etc/mail/virtusertable |
Таблицы виртуальных пользователей и доменов |
20.3.1 /etc/mail/access
База данных доступа определяет список хостов или IP адресов, имеющих доступ к
локальному почтовому серверу, а также тип предоставляемого доступа. Хосты могут быть
перечислены как OK, REJECT, RELAY или просто переданы процедуре обработки ошибок sendmail с заданным сообщением об ошибке. Хостам, перечисленным с параметром по умолчанию OK, разрешено отправлять почты на этот
хост, если адрес назначения почты принадлежит локальной машине. Все почтовые соединения
от хостов, перечисленных с параметром REJECT, отбрасываются. Для хостов, перечисленных с параметром RELAY, разрешена передача через этот сервер почты с любым адресом назначения.
Example 20-1. Настройка базы данных доступа sendmail
cyberspammer.com 550 We don't accept mail from spammers
FREE.STEALTH.MAILER@ 550 We don't accept mail from spammers
another.source.of.spam REJECT
okay.cyberspammer.com OK
128.32 RELAY
В этом примере приведены пять записей. К отправителям, чей адрес соответствует записи
в левой части таблицы, применяется правило записанное в правой части таблицы. В первых
двух примерах код ошибки будет передан процедуре обработке ошибок sendmail. В этом случае на удаленном хосте будет получено
соответствующее сообщение. В следующем примере почта отбрасывается почта от определенного
хоста, another.source.of.spam. В четвертом примере разрешается
прием почты от хоста okay.cyberspammer.com, имя которого более
точно совпадает с этой записью, чем с cyberspammer.com в примере
выше. При более точном совпадении правила перезаписываются. В последнем примере
разрешается пересылка почты от хостов с IP адресами, начинающимися с 128.32. Эти хосты смогут отправлять почту через этот почтовый сервер
для других почтовых серверов.
После изменения этого файла для обновления базы данных вам потребуется запустить make в каталоге /etc/mail/.
20.3.2 /etc/mail/aliases
База данных синонимов содержит список виртуальных почтовых ящиков, принадлежащих
другим пользователям, файлам, программам, или другим синонимам. Вот несколько примеров,
которые могут быть использованы для /etc/mail/aliases:
Example 20-2. Mail Aliases
root: localuser
ftp-bugs: joe,eric,paul
bit.bucket: /dev/null
procmail: "|/usr/local/bin/procmail"
Формат файла прост; имя почтового ящика слева от двоеточия сопоставляется
назначению(ям) справа. В первом примере производится простое сопоставление почтового
ящика root почтовому ящику localuser,
для которого затем опять будет произведен поиск в базе данных синонимов. Если совпадений
не обнаружится, сообщение будет доставлено локальному пользователю localuser. В следующем примере приведен список рассылки. Почта на
адрес ftp-bugs рассылается на три локальных почтовых ящика: joe, eric и paul. Обратите внимание, что удаленный почтовый ящик может быть
задан в виде Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
. В следующем примере показана
запись почты в файл, в данном случае /dev/null. И в последнем
примере показано отправление почты программе, в данном случае почтовое сообщение
переправляется через канал UNIX® на стандартный вход
/usr/local/bin/procmail.
После обновления этого файла вам потребуется запустить make в
каталоге /etc/mail/ для обновления базы данных.
20.3.3 /etc/mail/local-host-names
В этом файле находится список имен хостов, принимаемых программой sendmail(8) в качестве
локальных. Поместите в этот файл любые домены или хосты, для которых sendmail должен принимать почту. Например, если этот почтовый
сервер должен принимать почту для домена example.com и хоста mail.example.com, его файл local-host-names
может выглядеть примерно так:
example.com
mail.example.com
После обновления этого файла необходимо перезапустить sendmail(8), чтобы он
смог перечитать изменения.
20.3.4 /etc/mail/sendmail.cf
Основной файл настройки sendmail, sendmail.cf управляет общим поведением sendmail, включая все, от перезаписи почтовых адресов до отправки
удаленным серверам сообщений об отказе от пересылки почты. Конечно, файл настройки с
таким многообразием возможностей очень сложен и подробное его описание выходит за рамки
данного раздела. К счастью, для стандартных почтовых серверов изменять этот файл придется
не часто.
Основной файл настройки sendmail может быть собран из макроса m4(1), определяющего
возможности и поведение sendmail. Подробнее этот процесс описан в файле /usr/src/contrib/sendmail/cf/README.
Для применения изменений после правки файла необходимо перезапустить sendmail.
20.3.5 /etc/mail/virtusertable
Файл virtusertable сопоставляет виртуальные почтовые домены
и почтовые ящики реальным почтовым ящикам. Эти почтовые ящики могут быть локальными,
удаленными, синонимами, определенными в /etc/mail/aliases, или
файлами.
Example 20-3. Пример таблицы виртуального домена
Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
root
Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
@example.com joe
В примере выше мы видим сопоставление адресов для домена example.com. Почта обрабатывается по первому совпадению с записью в
этом файле. Первая запись сопоставляет адрес Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
локальному почтовому ящику root. Вторая запись сопоставляет
Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
локальному почтовому ящику postmaster на хосте noc.example.net.
Наконец, до этого момента адрес в домене example.com не совпал ни
с одним из предыдущих, будет применено последнее сопоставление, в которому соответствует
всякое другое почтовое сообщение, отправленное на любой адрес в example.com. Это сообщение будет доставлено в локальный почтовый ящик
joe.
|