Опубликован: 21.11.2006 | Уровень: специалист | Доступ: платный
Лекция 13:

Подключение почтового сервера к провайдеру Internet

Настройка РРР-соединения

Как уже говорилось в "Протокол РРР" , для установки РРР-соединения с узлом провайдера Internet применяется программа pppd. Для ее работы необходим сценарий chat, в котором программе даются инструкции о подключении к удаленному серверу с помощью модема. В листинге 13.1 представлен пример сценария chat, который вы можете использовать для организации соединения с сервером провайдера Internet.

1 ""
2 ATDT5551234
3 CONNECT
4 ""
5 "ogin:"
6 rich
7 "word:"
8 guitar
9 "rich]$"
10 "exec /usr/sbin/pppd silent modem crtscts proxyarp
10.0.0.100:10.0.0.2"
Листинг 13.1. Пример сценария isp.chat для pppd

В строке 2 листинга 13.1 замените номер телефона на номер, предоставленный вашим провайдером для дозвона к его серверу. Следует также заменить строки 6 и 8 с именем пользователя и паролем, необходимыми для получения доступа к серверу провайдера. В строке 9 замените фрагмент командной строки на фрагмент, выдаваемый сервером провайдера. В строке 10 задается команда на запуск pppd на сервере провайдера. Скорее всего, на сервере вашего провайдера для запуска этой программы используется несколько иная строка. Выясните у провайдера ее содержимое. Сохраните полученный сценарий в каталог, куда имеет доступ только пользователь root (помните: в этом файле в явном виде хранится имя пользователя и пароль доступа на сервер провайдера).

После создания сценария chat вы можете запустить программу pppd для подключения локального почтового сервера к серверу провайдера:

pppd ttyS1 38400 connect '/usr/sbin/chat -v -f /root/isp.chat' modem crtscts defaultroute

Замените имя устройства ttyS1 в соответствии с последовательным портом, к которому подключен модем. Замените также имя файла isp.chat и каталог, в котором он находится, на имеющиеся в вашей системе. После запуска приведенной выше команды должно быть установлено РРР-соединение. Команду на запуск pppd можно сохранить в виде файла сценария. Это облегчит ее повторный запуск при разрывах соединения.

Для того чтобы почтовый сервер на базе ОС Linux правильно преобразовывал доменные имена, необходимо в качестве переменной nameserver в /etc/resolv.conf указать имя сервера DNS провайдера Internet. В файле /etc/resolv.conf можно объявлять три переменных nameserver. Строка, где определяется сервер имен, выглядит следующим образом:

nameserver 192.168.10.6

Адрес IP, указанный с переменной nameserver, является адресом сервера имен провайдера. Это позволяет программе sendmail правильно интерпретировать доменные имена в адресной части почтовых сообщений и получать соответствующие МХ -хосты (почтовые серверы) для этих доменов.

Настройка sendmail

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

  • вся исходящая почта должна посылаться с использованием только доменного имени, без включения в поле адреса имени хоста, с которого она была отправлена;
  • вся исходящая почта доставляется получателю напрямую;
  • для доставки почты локальным пользователям используется программа procmail ;
  • локальным пользователям разрешается пересылка почты непосредственно в Internet.

Файл макросов sendmail должен приобрести следующий вид (листинг 13.2).

1 divert(-1)
2 divert(0)dnl
3 includel('/usr/lib/sendmail-cf/m4/cf.m4')dnl
4 OSTYPE('linux')dnl
5
6 FEATURE('allmasquerade')dnl
7 FEATURE('masquerade_envelope')dnl
8 FEATURE('local_procmail', '/usr/bin/procmail')dnl
9 FEATURE('access_db', ' /etc/mail/access.db')dnl
10 FEATURE('nocanonify')dnl
11
12 MAILER('smtp')dnl
13 MAILER('procmail')dnl
14
15 MASQUERADE_AS('smallorg.org')dnl
Листинг 13.2. Пример файла макросов direct.mc

В строках 6, 7 и 15 листинга 13.2 описана настройка подстановки адресов (маскарадинг). С помощью этой настройки в адресах всей исходящей почты может использоваться другой адрес или доменное имя (в нашем случае это доменное имя smallorg.org ). Настройка позволяет создавать пользователям адреса электронной почты с простым и понятным доменным именем, таким например, как, prez@smallorg.org. В строке 8 задается программа для локальной доставки почты пользователям на самом сервере. В нашем случае в этой роли выступает программа procmail. В строке 9 определяется файл access_db, содержащий хешированную базу данных, где указаны хосты, которым разрешено отправлять почту через данный почтовый сервер. При создании нового файла конфигурации для sendmail можно воспользоваться макропроцессором m4:

m4 direct.m4 > sendmail.cf

После создания нового файла конфигурации существующий файл sendmail.cf из каталога /etc нужно заменить вновь созданным.

Чтобы обеспечить передачу почты клиентам локальной сети через почтовый сервер на базе ОС Linux, необходимо создать базу данных управления доступом, где адресам локальной сети разрешается использовать свойство RELAY (см. "Конфигурирование клиентов ЛВС" , "Конфигурирование клиентов ЛВС"). В листинге 13.3 представлена текстовая версия подобной записи в базе данных управления доступом.

192.168.1 RELAY
Листинг 13.3. Пример базы данных управления доступом /etc/mail/access

Из листинга 13.3 видно, что IP-адреса локальной сети все находятся в сети с адресом 192.168.1.0. (Запись в базе данных приведена в качестве примера.) На самом деле вам нужно изменить IP-адреса на выданные провайдером или другой организацией по управлению сетью. Для создания новой базы данных из текстового файла воспользуйтесь утилитой makemap:

makemap hash /etc/mail/access.db 
< /etc/mail/access

После создания нового файла конфигурации sendmail и нового файла базы данных управления доступом необходимо перезапустить программу sendmail, чтобы внесенные в файлы изменения были приняты. В команде на запуск программы sendmail следует указать параметр -q, которым устанавливается интервал времени для проверки очереди почтовых сообщений на наличие новых сообщений:

/usr/sbin/sendmail -bd
-q30m

Вышеприведенной командой в фоновом режиме запускается демон-процесс sendmail и устанавливается интервал проверки почтовой очереди каждые 30 минут.

Автоматизация обработки почты

Запуск программы sendmail можно описывать в сценариях начальной загрузки ОС Linux. В большинство версий ОС Linux входит уже готовый сценарий запуска для sendmail. В случае его отсутствия с помощью программы linuxconf можно добавить запуск sendmail в сценарии начальной загрузки системы. На рис. 13.2 представлено окно конфигурации, где разрешается запуск sendmail во время начальной загрузки.



Окно конфигурации программы linuxconf

Рис. 13.2. Окно конфигурации программы linuxconf
Евгений Швачко
Евгений Швачко
Россия, Москва