|
| ||||||||||||
| ||||||||||||
4. Настройка sendmail V8Если sendmail установлен, вы должны установить набор конфигурационных файлов, которые в дистрибутиве Slackware спрятаны в архиве smailcnf.tgz. Вы найдете их в /usr/src/sendmail/cf. В этом каталоге должен быть README размером примерно 50KB, коотрый описывает новый метод настройки. sendmail управляется через настроечный файл (размером примерно 20KB) (/etc/sendmail.cf), который вы не должны переписывать под себя (как думают многие, кто боится sendmail). Вам также нужен макропроцессор M4, и маленький конфигурационный файл (mc-File) в /usr/src/sendmail/cf/cf. M4 создаст ваш /etc/sendmail.cf из этого файла и несколько других настроечных файлов, которые вам не нужно изменять. Вот объяснение, что означает "F=8mDMFhuSC, S=51/31, R=21" в вашем файле sendmail.cf в определении агента отправки в fidonet: F секция содержит флаги, которые описывают поведение агентов доставки. Ниже расписаны флаги:
Флаг C указывает sendmail добавить домен адресата без one (домен отправителя.
Полезно для отправки кому-либо на вашей собственной BBS); и флаг S указывает
sendmail выполнить агента доставки (в случае ifmail) с использованием его
собственных UID и GID, указанных выражением U= . Если U= выражение пропущено
или 0, sendmail запускает агента доставки от root (заметьте: в версиях sendmail
выше v8.7, нет выражения U= , так что флаг S указывает sendmail всегда
запускать агента доставки от root). У меня не указано выражение U= , так что
ifmail запускается от root, что меня вполне устраивает.
Секция S указывает набор правил записи отправителя; правило 51 для "конверта" и правило 31, используемое для заголовка. Наконец, секция R указывает набор правил записи адресата. В этом случае набор правил 21 используется для записи и заголовка, и "конверта". Посмотрите ваш файл sendmail.cf, чтобы найти правила и узнать, что они делают. Между прочим, эта информация почерпнута из книги "sendmail, 2nd edition" Bryan Costales и Eric Allman (автора sendmail), выпущенной O'Reilly & Associates (ISBN 1-56592-222-0). Я настойчиво рекомендую ее каждому, кто работает с sendmail. Она очень понятно и доходчиво написана, с большим количеством примеров. Затем надо рассказать о IFMAIL. Поэтому вам следует создать файл /usr/src/sendmail/cf/mailer/ftn.m4 со следующим содержимым:
Как видите настройка ifmail не так сложна, и мы не совершаем чего-то из ряда
вон выходящего, мы просто используем определение мейлера "ftn" так же, как и
предопределенные мейлеры "smtp", "uucp" и т.д.
Сейчас давайте займемся настройкой mc-файла. Я назвал его /mymachine.mc, но имя не так важно, главное, чтобы он располагался в /usr/src/sendmail/cf/cf. mymachine.mc выглядит примерно так:
В начале определяется операционная система (linux), затем мы определяем, что
вся MAILERDAEMON-почта также должна отправляться postmaster`у, т.о. он сможет
найти ошибки быстрее и исправить их. Затем даны некоторые опции для моей
настройки, но вы можете переделать их под ваши нужды. Кроме того определены
мейлеры "local" (для пользователей на той же машине, которые отправляются
deliver, mail.local или procmail), "ftn" (Fido-соместимые сети через ifmail),
"smtp" (отправка через online-mail-protocol SMTP) и "uucp" (отправка через
UUCP). Последние два не нужны для системы, подключенной к Интернет только через
ifmail, но мейлер "ftn" основан на них (вот почему ftn.m4 такой короткий). В
строках, начинающихся с Cw определены различные имена моего компьютера:
вся почта которая не ущла другими путями будет отправлена через ifmail моему
fido-аплинку. если у вас есть UUCP-аплинк, то вы можете заместить эти строки:
которые отправляют такую почту моему UUCP-аплинку с именем some-uucp-host-name.
В конце mymachine.mc я поместил специальные конструкции:
Здесь z1.fidonet.org,..,z6.fidonet.org отображаются в f33.n125.z1.fidonet.org
и все *.prognet в f1.n221.z21.prognet, т.о. вся Fido-почта, адресованная в
различные Fidonet-зоны будет отправлена моим аплинкам, которые отправят их через
FTP (вметсо UUCP). Пожалуйста заметьте: Должен быть как минимум один символ
табуляции между $* и $1 (не только пробелы).
Поэтому мы выше определили файл /etc/sendmail/mailertable. В этом файле определены "исключения" из маршрута по умолчанию, например маршрут через фидо.
Как видно вся фидопочта идет через фидо. Эта mailertable должна быть
скомпилирована в базу данных после любых изменений. Используйте следующие
команды в каталоге /etc/sendmail:
Если вы получили ошибку "makemap: Type hash not supported in this version", то
кажется вы установили Slackware 3.0, который не поддерживает hash-типы
(не спрашивайте меня почему). Тогда вы должны использовать такую команду:
в том же каталоге. Но сейчас в должны изменить строку mailertable в файле
mymachine.mc с hash на dbm. Измените строку так:
Проблемы исчезнут.
После редактирования mymachine.mc, мы можем создать из него sendmail.cf . Перейдите в каталог /usr/src/sendmail/cf/cf и выполните здесь pmake mymachine.cf . Этим вы создадите /usr/src/sendmail/cf/cf/obj/mymachine.cf Переименуйте этот файл в /etc/sendmail.cf и настройа готова. Если pmake не установлен, то сделайте так:
Есть несколько других вещей, нужных вам для ручного редактирования sendmail.cf .
Во-первых, посморите опцию O MatchGECOS и раскомментируйте ее. Это позволит
использовать полные имена типа Greg Frydenlund вместо логинов типа gfryde01.
Во-вторых, посмотрите секцию доверенных (trusted) пользователей и добавьте
"Tfnet uucp". Это позволит sendmail применять SUID для fnet.uucp при выполнении
ifmail.
Проделав все это вы готовы создать ваш почтовый alias-файл. Mine looks something like this. Применение почтовых алиасов - только одна из мощных возможностей sendmail, которая позволяет перенаправлять почту другим сайтам и пользователям. Его не тяжело администрировать. Почта для пользователя слева перенаправляется пользователю справа. Мой файл alias:
Этот файл должен быть скомпилирован командой newaliases после каждого изменения.
Сейчас запустим sendmail как демон:
Добавьте вышеприведенную команду в /etc/rc.d/rc.local. На большинстве систем
она уже определена в /etc/rc.d/rc.M . Кроме того можно запускать sendmail по
cron, и заставить inetd слушать порт. Для этого вставляем в crontab
пользователя root:
а /etc/inetd.conf вставляем:
Не забудьте выполнить kill -HUP inetd после изменения inetd.conf, чтобы
информировать inetd об изменениях.
sendmail будет писать свои журнальные сообщения через syslogd. Я рекомендцю следующую запись в /etc/syslog.conf:
Не забывайтеперезапустить syslogd после этих изменений через killall -1 как
уже описано в главе Настройка ifcico.
Чтобы проверить записывающие правила sendmail для fidonet-адресов, запустите sendmail командой
Введите эту команду в строке приглашения, и вы должны увидеть примерно вот это.
Последняя строка в этом спискее ниже представляет интерес для нас.
Вы можете видеть внизу этого списка, что мейлер ftn - это как раз то, что мы
хотим. Я предлагаю вам испытать другой адрес (me@localhost), чтобы
удостовериться, что sendmail обрабатвает все правила соответственно для вашей
собственной системы.
Вперед Назад Содержание |
|
CITForum © 1997–2025