@ Карта сайта News Автора!

Bog BOS: Sendmail 8.8.7

apache inn MySQL nntpcache Cyrus IMAP exim Squid ssh syslog tacacs ProFTPD wu-ftpd xntpd

Последние изменения:
2024.11.22: sysadmin: systemd-journald (централизованное хранение)
2024.11.11: sysadmin: Linux: пространства имён
2024.11.06: sysadmin: настройка TCP/IP в Linux: виртуальный интерфейс и виртуальный мост

Последнее изменение файла: 2009.10.29
Скопировано с www.bog.pp.ru: 2024.12.03

Bog BOS: Sendmail 8.8.7

Данный текст не менялся с 1999 года. Нашим основным почтовым сервером в настоящее время время является exim.

Версии

Версия 8.11.6 выпущена 20 августа 2001 (Red Hat 7.2). Версия 8.12.2 выпущена 13 января 2002 и пока (14 марта 2002) ни в одном дистрибутиве не поставляется. Основные отличия 8.12 от 8.11:

Установка sendmail 8.8, Solaris 2.5

  1. взять источник (sendmail.8.8.7.tar.gz)
  2. развернуть
  3. отредактировать файл sendmail-8.8.7/src/Makefiles/Makefile.SunOS.5.5:
  4. src/conf.h трогать не надо
  5. правим src/pathnames.h (#define _PATH_SENDMAILCF "/usr/local/etc/mail/sendmail.cf"), чтобы файл конфигурации не надо было задавать ключом.
  6. правим src/conf.c(checkcompat), чтобы запретить чужим использовать наш почтовый сервер как mailrelay и никого при этом не обидеть (сообщения об ошибках и return-receipt-to должны возвращаться). Если это удастся, то будет know-how: нигде я не видел аккуратной реализации (напоминаю, что речь идет о 8.8.7 - 1997 год ;).
  7. cd src and then ./makesendmail
  8. makesendmail install
  9. конфигурируем
  10. и пробуем - да уж...
    придется все делать вручную
  11. /etc/rc2.d/S88sendmail надо поправить
  12. права на /var/spool/mqueue ставим 750
  13. создаем makemap:
    1. ручками правим Makefile.dist
      1. убираем -DNDBM
      2. LIBDIRS=-L/usr/local/lib
      3. из LIBS убираем -ldbm
      4. BINDIR=/usr/local/sbin
    2. make -f Makefile.dist
    3. make -f Makefile.dist install (под root)
  14. старый /usr/lib/sendmail переименовываем и делаем линк под этим именем на новый
  15. если предполагается вместо обычного sh использовать smrsh, то
    1. зайти в поддиректорию smrsh
    2. оттранслировать его
      gcc -o smrsh smrsh.c
    3. запихнуть, например, в /usr/local/etc (определяется строкой Mprog в конфигурационном файле)
    4. создать директорию /usr/adm/sm.bin и зайти в нее
    5. насоздавать там линки на программы и командные файлы, которые только и будут использоваться в качестве адреса программы (начинется с вертикальной черты).

Теория (эх, старая у меня книжка... - про версию 8.6)

MX-записи не рекурсивны.

MX-запись должна показывать на A-запись (sendmail разрешает также и CNAME, но другие MTA

не используйте команду F для чтения файла, который не открыт на чтение для всех

любой файл, в который sendmail пишет, должен быть открыт на запись только для root (и весь путь тоже)

как запретить создавать файл (например .forward) в директории доступной для всех

прочитав файл конфигурации, sendmail делает chdir в директорию с почтовой очередью

Структура очереди

обычное имя директории, в которой хранится очередь: /var/spool/mqueue

права к ней д.б. root 700

Структура имени файла:

  1. первая буква - тип файла
  2. вторая буква - f
  3. дальнейшие буквы представляют собой уникальный идентификатор письма

Печать очереди производится командой mailq (sendmail -bp) в том порядке, в котором письма будут обрабатываться.

Сообщения об ошибках (не все)

Aliases

Формат файла алиасов (строчноориентированный):

Производится транзитивная подстановка алиасов.

~/.forward - если файл не безопасен (разрешен доступ кому-то кроме владельца), то он игнорируется. Формат и поведение аналогично :include:. Может включать почтовые имена, имена файлов, программ, другие :include:. Программы, специально предназначенные для использования в ~/.forward:

Журнал

facility: LOG_MAIL ("mail")

Уровни (опция LogLevel):

Статистика

  1. sendmail.st - в этом файле (его имя задается опцией S) для каждого агента суммируется ═количество переданых и полученных сообщений и байт. Чтобы статистика собиралась, файл должен существовать и быть открытым на запись (кому?). Получение статистики производится программой
    mailstat [-C config-file] [-f stat-file]
    (можно собирать и обнулять ее ежедневно)
  2. информация, извлекаемая из syslog. Есть уже готовые скрипты на perl

Запуск

Конфигурационный файл

Обычно называется sendmail.cf и лежит в /etc/sendmail.cf (в Solaris - /etc/mail/sendmail.cf, у меня - /usr/local/etc/mail/sendmail.cf).

Общий синтаксис: строчно-ориентирован, одна команда на строке, тип команды определяется первой буквой. # означает комментарий, также как и ПОЛНОСТЬЮ пустая строка, пробел или табуляция (иногда ВЫГЛЯДЯЩИЕ как пустые строки) - продолжение строки (перевод строки и пробелы с табуляциями НЕ УДАЛЯЮТСЯ из слитой строки). Если в строке есть #, то он, все что справа от него и предшествующие пробелы и табуляции рассматриваются как комментарии. Если нужно включить # сам по себе, то надо ставить перед ним обратную косую черту (за исключением оператора $#).

Ссылки

@ Карта сайта News Автора!

Bog BOS: Sendmail 8.8.7

apache inn MySQL nntpcache Cyrus IMAP exim Squid ssh syslog tacacs ProFTPD wu-ftpd xntpd

Последние изменения:
2024.11.22: sysadmin: systemd-journald (централизованное хранение)
2024.11.11: sysadmin: Linux: пространства имён
2024.11.06: sysadmin: настройка TCP/IP в Linux: виртуальный интерфейс и виртуальный мост



Copyright © 1996-2024 Sergey E. Bogomolov; www.bog.pp.ru