Изменение sendmail.cf FreeBSD

Помните, я говорил, как ужасен конфигурационный файл /etc/mail/ sendmail.cf? Да, вам придется изменять его. Однако не нужно редактировать sendmail.cf напрямую. На самом деле, у Sendmail есть инструменты для сборки этого конфигурационного файла из других конфигурационных файлов. Сегодня звучит странновато, но во время появления Sendmail это считалось передовым достижением. (Думаю, молодежь скажет: «Старая школа – это отпад».)

Операционная система FreeBSD включает два файла с расширением .cf – sendmail.cf и submit.cf. Файл sendmail.cf содержит настройки Sendmail, которые определяют порядок пересылки почты другим системам и ее получения процессом приема почты, если таковой запущен. Файл submit.cf используется только в конфигурации передачи почты и только для обслуживания очереди неотправленных сообщений. В действительности файл submit.cf намного проще своего собрата, если у вас хватит стойкости и желания читать его. Эти два файла создаются автоматически, за счет применения правил из двух отдельных файлов, freebsd.mc и freebsd.submit.mc.

Файлы с расширением .тс – это конфигурационные файлы процессора макроязыка т4. Команда т4(1) читает инструкции из этих файлов и определения из /usr/share/sendmail,/cf и на их основе создает файлы .cf. Желательное поведение Sendmail определяется в файлах .тс, а затем на их основе с помощью команды т4 создаются соответствующие конфигурационные файлы Sendmail. Например, рассмотрим файл freebsd.mc.

Хотя файл начинается с символа решетки (#), обозначающего комментарии, тем не менее после начала конфигурационных определений символ решетки больше не встречается – вместо него, если нужно добавить комментарий, который будет игнорироваться утилитой т4, используется строка символов dnl. Некоторые из строк в этом файле выглядят достаточно очевидными:

FEATURE(access_db, O’hash -о -T<TMPF> /etc/mail/access©’)

FEATURE(mailertable, ‘hash -o /etc/mail/mailertable’) FEATURE(virtusertable, ‘hash -o /etc/mail/virtusertable’)

Мы только что говорили о файлах access, mailertable и virtusertablel Эти инструкции предписывают утилите т4(1) включить эти особенности с помощью хешей, созданных из указанных имен файлов. Пока все это не очень пугает.

Однако взгляните на эти инструкции внимательнее. Здесь определены имена особенностей и за ними указаны имена конфигурационных файлов в апострофах. Первый апостроф – это на самом деле обратная одиночная кавычка О, а второй – обычная одиночная кавычка ©. Апострофы следует указывать именно в таком виде и в таком порядке, в противном случае т4(1) не сможет корректно интерпретировать файл.

Здесь также можно встретить ряд конфигурационных параметров, закомментированных с помощью строки dnl:

dnl Dialuр users should uncomment and define this appropriately dnl define(‘SMART_HOST’, ‘your.isp.mail.server’)

Если вы хотите использовать интеллектуальный хост, то удалите символы dnl в начале второй строки и впишите имя хоста своего почтового сервера. Подробнее об интеллектуальных хостах мы поговорим ниже в этой главе.

Изменяя записи в файле .тс и пересобирая конфигурационный файл, вы можете управлять работой Sendmail. Мы задействуем эту возможность для настройки системы. Ниже я продемонстрирую два простых примера, а полученные знания мы используем в последующих разделах.

Нестандартные файлы .тс

Файлы с инструкциями (Makefile) для сборки конфигурационных файлов Sendmail по умолчанию имеют имена, составленные из имени хоста системы с расширением .тс. Например, на моем ноутбуке pes- ty.blackhelicopters.org имеются два файла .тс: /etc/mail/pesty.blackhelicopters.org.тс и /etc/mail/pesty.blackhelicopters.org.submit.тс. Если

такие файлы у вас отсутствуют, make(l) создаст их, скопировав содержимое файлов sendmail.mc и submit.mc.

Я не попадал в ситуации, когда приходилось бы редактировать файл submit.mc. Не исключая появления таких ситуаций, я полагаю, что желание отредактировать этот файл, скорее всего, лишнее. Практически всегда вам придется иметь дело только с файлом <имя_хоста>.тс.

Для начала скопируем файл freebsd.mc в <имя_хоста>.тс и затем внесем в него все необходимые изменения. Первым сконфигурируем интеллектуальный хост.

Интеллектуальные хосты

Интеллектуальный хост (smart host) – это локальный почтовый сервер, который знает, как отправить почту за пределы локальной сети. Я не желаю, чтобы мой ноутбук контактировал с удаленными почтовыми серверами напрямую; предпочитаю вручать свою почту моему выделенному почтовому серверу, который возьмет на себя всю грязную работу по поиску МХ-записей, идентификации серверов, а также передаче и повторной передаче моей электронной почты, пока удаленный сервер не снизойдет до того, чтобы принять ее. Ноутбук должен быть свободен для моих более важных дел, как то: слушать МРЗ-фай- лы и писать всю эту чепуху.

Вы можете настроить интеллектуальный хост в своем файле <имя_хос- та>.тс. Помните пример интеллектуального хоста из предыдущего раздела? Просто укажите имя своего интеллектуального хоста и пересоберите файл sendmail.cf. В качестве интеллектуального хоста у себя в сети я использую перегруженный bewilderbeast.blackhelicopters.org, поэтому отредактирую свой файл /etc/mail/pesty.blackhelicopters.org.тс так:

dnl Dialuр users should uncomment and define this appropriately define(‘SMART_HOST’, ‘bewilderbeast.blackhelicopters.org’)

Здесь я удалил символы dnl в начале второй строки. Тем самым я раскомментировал определение параметра SMART HOST, сделав его доступным для т4(1). Я благоразумно не тронул символы апострофов, заключив в них имя хоста своего почтового ретранслятора. Теперь мне нужно пересобрать sendmail.cf с помощью команды make all и установить его командой make install:

#     cd /etc/mail

#     make all

/usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/ /usr/share/sendmail/cf/m4/cf.m4 pesty. blackhelicopters.org.mc > pesty. blackhelicopters.org.cf

#     make install

install -m 444 pesty.blackhelicopters.org.cf /etc/mail/sendmail.cf install -m 444 pesty. blackhelicopters.org.submit.cf /etc/mail/submit.cf

Здесь видно, что m4(l) использует файл <имя_хоста>.тс для сборки файла <имя_хоста>.cf, который затем устанавливается как send- mail.cf. Мои изменения вступят в силу сразу после перезапуска sendmail^). Теперь мой ноутбук будет отправлять всю электронную почту серверу bewilderbeast.blackhelicopters.org, который и доставит ее удаленным серверам.

Если вместо файла <имя_хоста>.тс используется другой файл, укажите полный путь к этому файлу в переменной SENDMAIL МС в файле / etc/make.conf.

Источник: ЛукасМ. FreeBSD. Подробное руководство, 2-е издание. – Пер. с англ. – СПб.: Символ- Плюс, 2009. – 864 е., ил.

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий