Перевод: Станислав Рогин, SWSoft Pte Ltd.
После того как я окончательно успокоился и прочитал документацию (точнее Bat Book), я разрешил загадку фараонов! Шаги, описанные ниже, тестировались с пакетом sendmail, поставляемом в Redhat. Возможно, надо было также отослать эти советы тому, кто сопровождает FAQ Sen
dmail-а, потому что там нет ни единого упоминания о взаимодействии sendmail и UUCP.Здесь дана информация о том, как настроить отдельную машину, упоминаемую здесь как me.com (как пример), не имеющую постоянного доступа в
Интернет, так, чтобы она посылала вашу почту через sendmail и UUCP к "более
совершенной" (smarter) машине, т.е. к вашему провайдеру.
Заодно, вы можете настроить вашу машину для
пересылки почты с других машин, т.е. вам, в свою очередь, стать "более
совершенной" машиной или шлюзом (gateway).
Я получаю огромное количество вопросов, относящихся к темам, находящимся за пределами этого HOWTO. Этот документ не может охватить все, поэтому не присылайте вопросов типа:
Читайте другие, не менее прекрасные источники, например:
Читайте другие источники, например:
Читайте другие источники, например:
Также вы можете обратиться к следующим группам новостей:
Эта настройка приведена для системы, гипотетически названной me.com, чья почта отправляется только через UUCP. mysmarthost - это название
машины провайдера, написанное в файле sys UUCP и me.com - это название
машины, который мы используем, и который известен в
Интернете в записях MX DNS.
mysmarthost подключена к Интернету. Мы на самом деле не знаем, как она
------------------------ | | | Интернет | | | ----------------------- | | 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;
ЧАСТЬ 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.
I) Создайте свой .mc-файл, с использованием вашего любимого редактора, я называю этот файл my.mc
a) Без DNS – отдельно стоящая машина
include(`../m4/cf.m4')
VERSIONID(`Настройка машины me.com c uucp, создана xxxx -- без DNS ')dnl
OSTYPE(linux)
Давайте подробно разберемся с этим:
Но me.com не подсоединен напрямую к Интернету по TCP/IP поэтому не страшно
б) С использованием DNS
include(`../m4/cf.m4')
VERSIONID(`Настройка машины me.com c uucp, создана xxxx -- с использованием
а) сохраните резервную копию вашего старого файла /etc/sendmail.cf
б) запишите новый файл sendmail.cf поверх старого
командой : m4 my.mc > /etc/sendmail.cf
в) проверьте, что ваш файл sendmail.cf был правильно создан на основе спецификации.
Самая частая ошибка, которая была у меня : - missing uucp-dom mailer (отсутствует способ доставки uucp-dom) Она возникала от того, что я не вставлял строку о способе доставки
Если вы никому не передаете 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. Последняя строчка отправляет почту на все наши субдомены (которых нет) назад.Если вы используете хешированные базы (hash):
makemap hash /etc/mailertable < /etc/mailertable
Если вы используете dbm:
makemap dbm /etc/mailertable </etc/mailertable
Если вы используете btree:
makem
И проделывайте это каждый раз после изменения файла /etc/mailertable.
а) sendmail -bv user@destination
б) запустите sendmail -bt и вводите различные адреса, используя набор правил 3,0, и смотрите, во что превращаются адреса, и какие правила при преобразовании используются.
У вас все настроено!
1) Добавить информацию, как настроить систему down.com (чтобы показать, как работать с теми SMTP-подузлами)
2) Добавить информацию, как пересылать новости (news) через UUCP
(предпочтителен INN). Это может потребовать изменения заголовка
данного документа.
Авторские права на русский перевод этого текста принадлежат © 2000 SWSoft Pte Ltd. Все права зарезервированы.
Этот документ является частью проекта Linux HOWTO.
Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе, физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но, так или иначе, автор текста и автор перевода желали бы знать о таких дистрибутивах.
Все переводы и производные работы, выполненные по документам Linux HOWTO, должны сопровождаться этой заметкой об авторских правах. Это делается в целях предотвращения случаев наложения дополнительных ограничений на распространение документов HOWTO. Исключения могут составить случаи получения специального разрешения у координатора Linux HOWTO, с которым можно связаться по адресу приведенному ниже.
Мы бы хотели распространить эту информацию по всем возможным каналам. Но при этом сохранить авторские права и быть уведомленными о всех планах распространения HOWTO. Если у вас возникли вопросы, пожалуйста, обратитесь к координатору проекта Linux HOWTO по электронной почте: <[email protected]> или к координатору русского перевода Linux HOWTO компании SWSoft Pte Ltd. по адресу <[email protected]>