Инструменты пользователя

Инструменты сайта


Боковая панель

Связь

sendmail

Sendmail

Sendmail - агент пересылки почты (MTA). Sendmail является ТОЛЬКО MTA с тьюринг- полным языком для контроля *ВСЕХ* аспектов передачи почты! Sendmail обеспечивает безопасность и защиту от SPAM/UCE/UBE несколькими способами. Sendmail не содержит пользовательских почтовых клиентов (MUA), вы можете сами выбрать нужный из множества существующих (mutt, vm, и т.д.). Этот пакет поддерживает RegExp, DB, NIS, NIS+, LDAP, DNS таблицы, и включает TCPWrappers, IPv6, LockFile, SMTP AUTH(SASL), STARTTLS(SSL).

Режимы работы Sendmail. Конфигурационные файлы.

  • Sendmail умеет работать в двух режимах:
  1. Основной режим (почтовый сервер) - конфигурационный файл: sendmail.cf. Используется порт 25 TCP. Для включения режима используются ключи -Аm
  2. Режим подачи почты - конфигурационный файл: submit.cf. Используется порт 587 TCP. Для включения режима используются ключи -Аc
  • 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 Таблицы виртуальных пользователей и доменов

sendmail.cf

Основной файл настройки sendmail, sendmail.cf управляет общим поведением sendmail, включая все, от перезаписи почтовых адресов до отправки удаленным серверам сообщений об отказе от пересылки почты. sendmail.cf находится в /etc/mail/. Файл sendmail.cf на прямую редактировать не надо, обычно создает новый файл с расширением .mc, например mail.mc. В файле строится конфигурация сервера, а потом командой

# m4 mail.mc>sendmail.cf

создается sendmail.cf, который и будет использоваться при работе Sendmail. Шаблон присутствующий в любом файле конфигурации

divert(-1)dnl
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`darkfire test for ASPLinux')dnl
OSTYPE(`linux')dnl

MAILER(smtp)dnl
MAILER(procmail)dnl

, где

  • divert(-1) - очищает буфер макросов от данных предыдущих попыток команды m4
  • include - подключаем библиотеку с описанием макросов
  • VERSIONID - служит для идентификации версий создаваемого файла.
  • OSTYPE - версия ОС, по умолчанию Linux
  • DOMAIN - позволяет использовать файл с расширением m4, который нужно расположить в каталоге /usr/share/sendmail/cf/domain/. В файл можно внести часто повторяемые параметры настройки сервера, например если используется несколько конфигураций сервера.
  • Макросы FEATURE, DAEMON_OPTIONS define могут в конфигурационном файле встречаться много раз. Эти макросы расширяют функционал сервера.
  • Макрос MAILER должен всегда находится в конце файла.

Дополнительная конфигурация Sendmail

Дополнительные параметры можно указать с помощью макроса define. Например PRIVACY_FLAGS определяет ограничения на применение методов протокола SMTP: могут ли пользователи просматривать очередь сообщений или какие сведения о системе можно выводить в SMTP диалоге.

define(`confPRIVACY_FLAGS',dnl
`needmailhelo,needexpnhelo,needvrfyhelo,restrictqrun,restrictexpand,nobodyreturn,authwarnings')dnl

access база данных доступа sendmail

/etc/mail/access - файл базы данных доступа sendmail. В файле по умолчанию разрешено применять From: Чтобы можно было применять макрос To: нужно добавить макрос ??? в sendmail.cf

Для применения изменений нужно выполнить команду:

# makemap hash access<access

Настройка простого почтового сервера

Sendmail установлен. Но для запуска его в режиме почтового сервера, нужно преодолеть 3 ограничения, с которыми sendmail устанавливается по умолчанию.

  1. Sendmail принимает почту только для сервера на котором он установлен. По умолчанию требует адрес почтового ящика с указанием названия компьютера на котором запущен сервер sendmail. Т.е. bob@pk1.example.org, а нужно в виде bob@example.org
  2. Разрешается отсылка почты только пользователям непосредственно работающим на сервер. Т.е. RELAY по умолчанию запрещен.
  3. Sendmail слушает только петлевой интерфейс lo 127.0.0.1

Для устранения этих ограничений нужно:

  1. DNS: Прописать MX записи в файле описания зоны. Нужно добавить макрос FEATURE(use_cw_file), который укажет sendmail обращаться к файлу /etc/mail/local-host-names. В файле local-host-names находится список имен хостов, принимаемых программой sendmail в качестве локальных. Поместите в этот файл любые домены или хосты, для которых sendmail должен принимать почту.
  2. Макрос FEATURE(`access_db',`hash -T<TMPF> -o /etc/mail/access.db') укаpывает sendmail обращаться к файлу access.db, в котором содержится база данных доступа определяет список хостов или IP адресов, имеющих доступ к локальному почтовому серверу, а также тип предоставляемого доступа. После изменения этого файла для обновления базы данных потребуется выполнить команду:
    # makemap hash access<access
  3. Для того чтобы прослушивать несколько интерфейсов нужно добавить макросы DAEMON_OPTIONS и необязательный макрос define(`confDONT_PROBE_INTERFACES',true), который заставляет sendmail игнорировать другие сетевые алиасы на этом компьютере.
divert(-1)dnl
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`Simple Mail Server')dnl
OSTYPE(`linux')dnl

FEATURE(use_cw_file)dnl
FEATURE(`access_db',`hash -T<TMPF> -o /etc/mail/access.db')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=10.5.21.24, Name=MTA')dnl
define(`confDONT_PROBE_INTERFACES',true)dnl

MAILER(smtp)dnl
MAILER(procmail)dnl

sendmail пересылка системных уведомлений

aptitude install sendmail
nano /etc/aliases
newaliases
/etc/init.d/sendmail restart

Удаление очереди почты

> /etc/rc.d/sendmail stop
> rm -f /var/spool/mqueue/*
> /etc/rc.d/sendmail start
> mailq
/var/spool/mqueue is empty
                Total requests: 0



sendmail.txt · Последние изменения: 2015/01/24 09:10 (внешнее изменение)