GNU/Linux (Slackware)

Настройка sendmail

ПРЕДИСЛОВИЕ
ЧТО ТАКОЕ LINUX
ИНСТАЛЛЯЦИЯ SLACKWARE
НАСТРОЙКА SLACKWARE:
Настройка LILO
Настройка ядра
Защита системы
Настройка X-Window
Русификация
Модем
Поддержка звука
Настройка Sendmail
Подключение сканера
Пример
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ИЗ РОССИИ

Если быть последовательным, надо было бы сначала рассказать о настройке сети, но эта тема настолько обширна, что я решил пока ее не затрагивать целиком, а рассказать лишь некоторые куски. В будущем, я собираюсь все переделать. Поэтому потерпите... Я попытаюсь сделать обзор страниц, посвященных настройке разных сетевых портов, созданных разными людьми, кое-чего поправив и изменив (надеюсь, GPL мне дает на это право).

Автор первоначального текста -- Вячеслав Калошин

Темой этого номера я решил сделать sendmail (для версий >= 8.10.0 !!!). Это MTA - Mail Transfer Agent. Именно sendmail занимается приемом и отправкой почты по SMTP(Simple Mail Transport Protocol -- ethernet) или UUCP(Unix USENET Common Protocol; -- modem).

Со Slackware уже поставлется два простых конфигурационных файла для sendmail. В программе setup в настройке есть меню, где задается вопрос какой из этих конфигурационных файлов будет в /etc/mail/sendmail.cfg. Можно их вручную скопировать:

cat /usr/src/sendmail/linux.smtp.cf > /etc/mail/sendmail.cfg
(или linux.uucp.cf).
Для большинства людей этого вполне хватает. Я лишь хочу показать
несколько вещей, которые иногда могут быть полезны.

Настройка и установка sendmail в большинстве случаев считается чем-то из ряда вон выходящим, крутым и очень сложным. На людей, которые сами могут настроить sendmail , смотрят как на полубогов. В общем, в этом номере я попытаюсь немного развеять этот миф. Для почтовой машины без особых изысков в доставке почты настроить sendmail не так то уж сложно.

Для начала глянем на /etc/mail/aliases

# Basic system aliases -- these MUST be present.
MAILER-DAEMON:  postmaster
postmaster:     root

# General redirections for pseudo accounts.
bin:            root
daemon:         root
games:          root
ingres:         root
nobody:         root
system:         root
toor:           root
uucp:           root
# Well-known aliases.
manager:        root
dumper:         root
operator:       root
webmaster:      root
abuse:          root

# trap decode to catch security attacks
decode:         root

root:           dio@gong.astro.spbu.ru
dio:            dio@gong.astro.spbu.ru
Вот такой у меня этот файлик. Формат его очень простой - <имя_пользователя_к_которому_письмо>: <имя_или_адрес_пользователя_которому_пересылается письмо>. В данном примере вся почта, которая приходит на адрес root@astro.spbu.ru и dio@astro.spbu.ru, не попадает в почтовый спул на моей машине, а сразу отправляется на dio@gong.astro.spbu.ru. Таким образом я могу читать почту, адресованную мне,с одного места. Того же самого я смог бы добиться, если бы в своем домашнем каталоге создал был файлик .forward внутри которого был бы адрес(а), куда мне пересылать почту...В этом месте есть лишь одно место, которого следует опасаться - это зацикливание почты.То есть если бы я в своем домашнем каталоге на машине gong.astro.spbu.ru создал бы файлик .forward с содержанием dio@astro.spbu.ru, то мое письмо зациклилось бы между 2 почтовыми серверами (на самом деле серверов в данном случае больше, но это мелочи). Что бы такого не происходило, в настройках по умолчанию sendmail'a стоит, что если письмо прошло больше 17 узлов, оно кладется в почтовый ящик отправителя с указанием ошибки.
Основной конфигурационный файл sendmail'a лежит в /etc/mail/sendmail.cf. Посмотрите на него ... Вы хоть что-нибудь понимаете ? ;-). Лично я - очччень мало ... но Вы не беспокойтесь - существуют умные люди, которым тоже надоело вручную править это безобразие и они создали очень хорошую программу m4, с помощью которой очень легко отконфигурить sendmail так, как Вам надо.
идем в каталог /usr/src/sendmail/cf. Если у Вас его нет, то Вам необходимо поставить пакеты sendmail.tgz и smailcfg.tgz из поставки slackware. Итак,в том каталоге есть еще подкаталоги
cf - Примеры файлов .mc для отдельных машин от создателей sendmail'a.
domain - Примеры файлов .m4 для доменов.
feature - Фрагменты файлов .m4 для всяких фичечек.
hack - Сомнительные фишечки.
m4 - Базовый файл конфигурации.
ostype - Описание операционных систем.
mailer - Описание программ-почтальонов.
sh - Сценарии для имен пользователей.
siteconfig - Примеры для UUCP.
переходим в каталог cf и создаем файл astro.mc (ну естественно, что у Вас он может называться совершенно по другому, главное, что бы расширение было .mc).Ниже пойдет его содержание ...
divert(-1)
Эта опция разрешает вырезание комментариев из файла. Если ее не указывать, то все строчки, начинающиеся на # будут переданы в конфиг sendmail - будьте осторожны.
include(../m4/cf.m4)
Включает настройки по умолчанию препроцессора.
VERSIONID(`linux for smtp-only setup')dnl
Информация о версии препроцессора.
OSTYPE(linux)
Тип ОС - linux.
define('confCOPY_ERRORS_TO', 'postmaster')
Указание, что при всех ошибках в работе почты посылать сообщение с заголовками пользователю postmaster.
MASQUERADE_AS(spbu.ru)dnl
Я хочу, чтобы имя машины в поле адреса письма FROM при отправке было: user@spbu.ru, а не полное имя (по умолчанию было бы user@astro.spbu.ru).
Следующие строчки указывают на то, какими программами-пересыльщиками (упрощенно) мы разрешим sendmail'у пользоваться.
MAILER(local)
Локальная почта - чтобы можно было читать локальным пользователям почту через mail,mailx,elm, etc...
MAILER(smtp)
Доставка почты по smtp - оставьте, иначе ваш sendmail не сможет связаться с себе подобными.

Дальнейшие строки -- уже мои добавления и Вам скорее всего это не надо.

FEATURE(virtusertable)
Возможность использовать "виртуальных" пользователей для писем.
FEATURE(rbl)
Борьба со спамом. Эта опция позволяет автоматически отвергать письма, пришедшие с адресов, которые попали в базу данных спамеров Realtime Blackhole List, поддерживаемый проектом MAPS.

Теперь говорим m4 astro.mc >sendmail.cf и смотрим, на что сругается m4. Исправляем, если есть что исправлять, и добиваемся, чтобы sendmail.cf был сделан без единой ошибки. Можете спокойно копировать полученный sendmail.cf в /etc/mail/ и перезапускать sendmail. Можете проверять хождение почты. ;-) я пускаю sendmail таким скриптиком из /etc/rc.d/rc.M

# Start the sendmail daemon:
if [ -x /usr/sbin/sendmail ]; then
  echo "Starting sendmail daemon (/usr/sbin/sendmail -bd -q15m)..."
  /usr/sbin/sendmail -bd -q15m
fi    
Он указывает sendmail'у стартовать в режиме демона (-bd) с опросом почтовой очереди в 15 минут (-q15m). Вообще-то RFC1123 не рекомендует устанавливать данный интервал меньше 30 минут, но у моей машины слабая почтовая загрузка, и я решил установить промежуток поменьше. ;-))))
После всех запусков и прочего проверьте, как запустился sendmail
bash$ ps -ax|grep sendmail
25420  ?  S    0:00 sendmail: accepting connections on port 25 
26431  p7 S    0:00 grep sendmail 
bash$
Должно быть, похоже, ... можете писать письма ...;-)
Назад Дальше
HTML by Igor Drozdovsky
Последнее обновление: