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

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


sendmail

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

sendmail [2018/08/26 02:43] (текущий)
Строка 1: Строка 1:
 +====== 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.blam_sistema_jelektronnoj_pochty_na_osnove_linux.zip|}} Или читать/​купить [[http://​www.intuit.ru/​shop/​ebooks/​product.xhtml?​id=2493777|www.intuit.ru]]
 +  * [[http://​www.freebsd.org/​doc/​ru/​books/​handbook/​mail.html|Руководство FreeBSD: Электронная почта]]
 +====== Режимы работы Sendmail. Конфигурационные файлы. ======
 +  * **Sendmail умеет работать в двух режимах:​**
 +  - Основной режим (почтовый сервер) - конфигурационный файл: sendmail.cf. Используется порт 25 TCP. Для включения режима используются ключи -Аm
 +  - Режим подачи почты - конфигурационный файл: 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. В файле строится конфигурация сервера,​ а потом командой<​file>​
 +# m4 mail.mc>​sendmail.cf
 +</​file>​ создается sendmail.cf,​ который и будет использоваться при работе Sendmail.
 +Шаблон присутствующий в любом файле конфигурации
 +<​file>​
 +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
 +</​file>,​ где
 +  * 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 диалоге.
 +<​file>​
 +define(`confPRIVACY_FLAGS',​dnl
 +`needmailhelo,​needexpnhelo,​needvrfyhelo,​restrictqrun,​restrictexpand,​nobodyreturn,​authwarnings'​)dnl
 +</​file>​
 +===== access база данных доступа sendmail =====
 +/​etc/​mail/​access - файл базы данных доступа sendmail.
 +В файле по умолчанию разрешено применять **From:** Чтобы можно было применять макрос **To:** нужно добавить макрос ??? в sendmail.cf ​
 +
 +Для применения изменений нужно выполнить команду:​
 +<​file>​
 +# makemap hash access<​access
 +</​file>​
 +===== Настройка простого почтового сервера =====
 +Sendmail установлен. Но для запуска его в режиме почтового сервера,​ нужно преодолеть 3 ограничения,​ с которыми sendmail устанавливается по умолчанию.
 +  - Sendmail принимает почту только для сервера на котором он установлен. По умолчанию требует адрес почтового ящика с указанием названия компьютера на котором запущен сервер sendmail. Т.е. bob@pk1.example.org,​ а нужно в виде bob@example.org
 +  - Разрешается отсылка почты только пользователям непосредственно работающим на сервер. Т.е. RELAY по умолчанию запрещен.
 +  - Sendmail слушает только петлевой интерфейс lo 127.0.0.1
 +Для устранения этих ограничений нужно:
 +  - [[DNS]]: Прописать MX записи в файле описания зоны. Нужно добавить макрос FEATURE(use_cw_file),​ который укажет sendmail обращаться к файлу /​etc/​mail/​local-host-names. В файле local-host-names находится список имен хостов,​ принимаемых программой sendmail в качестве локальных. Поместите в этот файл любые домены или хосты, для которых sendmail должен принимать почту.
 +  - Макрос FEATURE(`access_db',​`hash -T<​TMPF>​ -o /​etc/​mail/​access.db'​) укаpывает sendmail обращаться к файлу access.db, в котором содержится база данных доступа определяет список хостов или IP адресов,​ имеющих доступ к локальному почтовому серверу,​ а также тип предоставляемого доступа. После изменения этого файла для обновления базы данных потребуется выполнить команду:<​code>#​ makemap hash access<​access</​code>​
 +  - Для того чтобы прослушивать несколько интерфейсов нужно добавить макросы DAEMON_OPTIONS и необязательный макрос define(`confDONT_PROBE_INTERFACES',​true),​ который заставляет sendmail игнорировать другие сетевые алиасы на этом компьютере.
 +<​file>​
 +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
 +</​file>​
 +===== sendmail пересылка системных уведомлений =====
 +<​file>​
 +aptitude install sendmail
 +nano /​etc/​aliases
 +newaliases
 +/​etc/​init.d/​sendmail restart
 +</​file>​
 +====== Удаление очереди почты ======
 +<​file>​
 +> /​etc/​rc.d/​sendmail stop
 +> rm -f /​var/​spool/​mqueue/​*
 +> /​etc/​rc.d/​sendmail start
 +> mailq
 +/​var/​spool/​mqueue is empty
 +                Total requests: 0
 +</​file>​
  
sendmail.txt · Последние изменения: 2018/08/26 02:43 (внешнее изменение)