Sendmail + UUCP HOWTO

Автор: Jamal Hadi Salim (jamal@glcom.com или hadi@cyberus.ca)

Перевод: Станислав Рогин, ASPLinux

История:


После того как я окончательно успокоился и прочитал документацию (точнее Bat Book), я разрешил загадку фараонов! Шаги, описанные ниже, тестировались с пакетом sendmail, поставляемом в Redhat. Возможно, надо было также отослать эти советы тому, кто сопровождает FAQ Sendmail-а, потому что там нет ни единого упоминания о взаимодействии sendmail и UUCP.
 

Для чего был написан этот документ

Здесь дана информация о том, как настроить отдельную машину, упоминаемую здесь как  me.com (как пример), не имеющую постоянного доступа в Интернет, так, чтобы она посылала вашу почту через sendmail и UUCP к "более совершенной" (smarter) машине, т.е. к вашему провайдеру.
Заодно, вы можете настроить вашу машину для пересылки почты с других машин, т.е. вам, в свою очередь, стать "более совершенной" машиной или шлюзом  (gateway).

Что в этом документе не описывается

Я получаю огромное количество вопросов, относящихся к темам, находящимся за пределами этого HOWTO. Этот документ не может охватить все, поэтому не присылайте вопросов типа:
 

а) Как настроить UUCP.

Читайте другие, не менее прекрасные источники, например:

 

б) как настроить DNS.

Читайте другие источники, например:

 

в) как настроить базы данных (кроме таблицы mailer-ов) для работы с sendmail.

Читайте другие источники, например:

г) как создавать или изменять наборы правил (rulesets) или mailer-ы.

Также вы можете обратиться к следующим группам новостей:
comp.mail.sendmail
comp.mail.uucp
comp.os.linux.networking
Каналы IRC
#linux, #unix
 


НАСТРОЙКА

Эта настройка приведена для системы, гипотетически названной me.com, чья почта отправляется только через UUCP. mysmarthost - это название машины провайдера, написанное в файле sys UUCP и me.com - это название машины, который мы используем, и который известен в Интернете в записях MX DNS.
mysmarthost подключена к Интернету. Мы на самом деле не знаем, как она
подключена, мы просто знаем, что она доставит нашу почту.
me.com, чья настройка описана ниже, собирает и пересылает (feed) почту машин down.com и system1.org и их подузлов (subnodes). me.com соединяется с down.com через TCP/IP и соединяется с system1.org через обычное UUCP соединение, с использованием телефонных линий.
Описание настройки приведено ниже:
 

        ------------------------
        |                       |
        |     Интернет          |
        |                       |
        -----------------------
                    |   
                    | PPP/выделенная линия, использующая TCP-IP
                    |
                -------------
                |            |
                |mysmarthost | Авторитетный (Authoritative)сервер DNS для
                |            | *.me.com, *.down.com, *.system1.org
                |            |
                --------------
                    |
                    | UUCP-соединение по телефонной линии, передающее почту
                    | для system1.org, *.system1.org,*.down.com, down.com,
                    | а также для me.com and *.me.com
                 ------------
                | * *****  *  |
   ------------ | * me.com *  | ------
                | *        *  |      |
   |            | * *****  *  |      |
   |             ------------        | 
   |UUCP по телефонной линии         | UUCP через TCP/IP
   |                                 |
 -----------                  -----------
|           |                |           |
|system1.org|                | down.com  |-------
|           |                |           |      |
 ----------                  ------------       |
     |                                          |
     |                                          |
     |                                          | Локальная сеть: SMTP к узлам
     | UUCP по телефонной линии
     |                                          |
-----------                             -------------
|         |                             | Локальная |
| подузлы |                             | сеть узла |
| system1 |                             |   down    |
|         |                             ------------
----------

Предварительные условия

1) Если у вас уже работает DNS, или есть ссылка на DNS-сервер (в файле /etc/resolv.conf), и у вас "живое" соединение с Интернетом, тогда пропустите эту часть. У вас все в порядке. Вам не надо делать ничего "очень умного". Спускайтесь к части 2)

Если у вас машина, использующая UUCP для почты, то вам, на самом деле, не надо собирать bind/resolv в sendmail;

Как справиться с канонизацией имен на отдельной машине, не имеющей DNS

ЧАСТЬ I
Если у вас заранее собранный sendmail с поддержкой BIND, вы сможете жить и с ним (Как в случае с Redhat, в поставку которого входит sendmail).

а) Используйте мое решение, основанное на m4-файле, описанном ниже. Попробуйте этот вариант, если вы не настаиваете на пунктах б) или в), приведенных ниже;

б) Если вы переговорите со мной, я могу снабдить вас собранным sendmail-ом без BIND (версии 8.8.5). Возможно, Redhat стоит снабдить свою поставку двумя собранными пакетами sendmail (как в Slackware) - один с BIND, а другой без;

в) Наиболее быстрый способ получить sendmail без поддержки BIND - отредактировать файл src/conf.h так, как показано ниже:

# ifndef NAMED_BIND conf.h:# define NAMED_BIND 0 /* исп. Berkeley Internet Domain Server */

ЧАСТЬ II:
Sendmail обычно настаивает на произведении поиска имени (name look ups) , чтобы получить имя машины(resolve), используя gethostbyaddr() для каждого письма, которое он посылает (даже если вы запретите ему канонизировать имена).

а) используйте IP адреса в соответствии с RFC1597 IP (10.0.0.0-10.255.255.255, 172.16.0.0-172.31.255.255, 192.168.0.0-192.168.255.255)
Отредактируйте файл /etc/hosts и добавьте в него строки, в соответствии с примером для myhost:
10.0.0.1 myhost.me.com myhost или
б) Если вы используете NIS (кстати вроде и NIS собран в sendmail в дистрибутиве Redhat), то убедитесь в том, что ваш файл /etc/nsswitch.conf содержит:
hosts: files dns  
и в файл /etc/hosts
добавьте в него строки, в соответствии с примером для myhost [снова используя IP-адреса, в соответствии с RFC1597]
10.0.0.1 myhost.me.com myhost

ЗАМЕЧАНИЕ: ---- В обоих случаях важно, чтобы вы использовали в файле /etc/hosts полное (fully qualified) имя домена, то есть в строке должно быть написано 10.0.0.1 myhost.me.com myhost, а не 10.0.0.1 myhost 
Вам также придется определить макрос $w для сохранения myhost.me.com
Добавьте следующую строчку в файл /etc/sendmail.cf после того, как он будет собран:
Djmyhost.me.com  
(или вы можете использовать функцию MASQUAREADE_AS(myhost.me.com) в  .mc-файле, которые приведен ниже)

ВНИМАНИЕ!!!!! myhost - это имя машины, данное для примера; вы не должны использовать его. Выберите себе собственное имя машины, если у вас его еще нет.


2) Убедитесь в том, что у вас есть makemap, и он поддерживает хешированный формат или наиболее распространенный dbm формат, или хотя бы формат btree (Версия в Redhat не поддерживает dbm). Makemap обычно поставляется вместе с sendmail.

НАСТРОЙКА (mc-файл)

I) Создайте свой .mc-файл, с использованием вашего любимого редактора, я называю этот файл my.mc

a) Без DNS – отдельно стоящая машина



include(`../m4/cf.m4')
VERSIONID(`Настройка машины me.com c  uucp, создана xxxx -- без DNS ')dnl 
OSTYPE(linux)

FEATURE(nodns)dnl
FEATURE(nocanonify)dnl
FEATURE(always_add_domain)dnl
FEATURE(mailertable, hash /etc/mailertable)dnl
MAILER(local)dnl
MAILER(smtp)dnl
MAILER(uucp)
define(`SMART_HOST', uucp-dom:mysmarthost)


Давайте подробно разберемся с этим:

Но me.com не подсоединен напрямую к Интернету по TCP/IP поэтому не страшно

 

б) С использованием DNS



include(`../m4/cf.m4')
VERSIONID(`Настройка машины me.com c  uucp, создана xxxx -- с использованием
DNS ')dnl 
OSTYPE(linux)
FEATURE(always_add_domain)dnl
FEATURE(mailertable, hash /etc/mailertable)dnl
MAILER(local)dnl
MAILER(smtp)dnl
MAILER(uucp)
define(`SMART_HOST', uucp-dom:mysmarthost)


II) Создаем собственный файл sendmail.cf

а) сохраните резервную копию вашего старого файла /etc/sendmail.cf  
б) запишите новый файл sendmail.cf поверх старого командой : m4 my.mc > /etc/sendmail.cf
в) проверьте, что ваш файл sendmail.cf был правильно создан на основе спецификации.
Самая частая ошибка, которая была у меня : - missing uucp-dom mailer (отсутствует способ доставки uucp-dom) Она возникала от того, что я не вставлял строку о способе доставки
smtp. Как я понимаю, важно, чтобы эта строка шла раньше способа доставки uucp
 

III) Создаем таблицу /etc/mailertable

Если вы никому не передаете UUCP-почту, то вы можете пропустить этот пункт

а) создаем/редактируем файл /etc/mailertable

Пример возможного файла /etc/mailertable:


system1.org uucp-dom:system1
.system1.org uucp-dom:system1
down.com uucp-dom:down
up.down.com  error: Машина неизвестна me.com
.down.com uucp-dom:down
.me.com error: Машина неизвестна me.com


Здесь сказано, что все, что посылается на адрес system1.org или *.system1.org, будет пересылаться системе system1, с использованием доставки uucp-dom (система system1 должна быть определена в файле sys UUCP), другими словами, мы производим маршрутизацию почты для *.system1.org ; похожий механизм применен для down.com и его субдоменов, только с некоторой дополнительной фильтрацией; мы возвращаем назад любую почту, идущую на домен up.down.com, используя встроенный "способ доставки" error (ошибка) с сообщением "Машина неизвестна me.com"; Это строка добавлена по просьбе администратора машины down.com. Последняя строчка отправляет почту на все наши субдомены (которых нет) назад.
б) создайте базу данных с помощью makemap

Если вы используете хешированные базы (hash):
makemap hash /etc/mailertable < /etc/mailertable
Если вы используете dbm:
makemap dbm /etc/mailertable </etc/mailertable
Если вы используете btree:
makem
ap btree /etc/mailertable </etc/mailertable

И проделывайте это каждый раз после изменения файла /etc/mailertable.
 

IV) Перезапустите sendmail

V) Протестируйте sendmail

а) sendmail -bv user@destination
б) запустите sendmail -bt и вводите различные адреса, используя набор правил 3,0, и смотрите, во что превращаются адреса, и какие правила при преобразовании используются.

У вас все настроено!


ЧТО НУЖНО ДОПИСАТЬ

1) Добавить информацию, как настроить систему down.com (чтобы показать, как работать с теми SMTP-подузлами)
2) Добавить информацию, как пересылать новости (news) через UUCP
(предпочтителен INN). Это может потребовать изменения заголовка данного документа.
 


Авторские права

Авторские права на русский перевод этого текста принадлежат © 2000 ASPLinux Все права зарезервированы.

Этот документ является частью проекта Linux HOWTO.

Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе, физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но, так или иначе, автор текста и автор перевода желали бы знать о таких дистрибутивах.

Все переводы и производные работы, выполненные по документам Linux HOWTO, должны сопровождаться этой заметкой об авторских правах. Это делается в целях предотвращения случаев наложения дополнительных ограничений на распространение документов HOWTO. Исключения могут составить случаи получения специального разрешения у координатора Linux HOWTO, с которым можно связаться по адресу приведенному ниже.

Мы бы хотели распространить эту информацию по всем возможным каналам. Но при этом сохранить авторские права и быть уведомленными о всех планах распространения HOWTO. Если у вас возникли вопросы, пожалуйста, обратитесь к координатору проекта Linux HOWTO по электронной почте: <linux-howto@metalab.unc.edu> или к координатору русского перевода Linux HOWTO компании ASPLinux по адресу <linux-howto@asplinux.ru>

 

Hosted by uCoz