Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
net_tech / Лабораторнаработа 5 (E-mail).doc
Скачиваний:
27
Добавлен:
10.12.2013
Размер:
269.82 Кб
Скачать

Обсуждение

Sendmail по-видимому является наиболее легендарной программой из обоймы Unix. Он ведет свою историю с того времени, когда действовало и было широко распространено множество служб электронной почты. Для того, чтобы правильно обрабатывать сообщения всех возможных форматов и подстраиваться под любые изменения, потребовалось развить достаточно изощренный язык файла конфигурации программы. Хотя этот язык не так сложен, как кажется на первый взгляд, с точки зрения настоящего положения вещей - унификации и стандартизации Интернет - он кажется неколько избыточным. Однако, богатство возможностей, предоставляемых администратору, окупает усилия, потраченные на изучение формата файла sendmail.cf.

Существует также возможность автоматически генерировать файл sendmail.cf с помощью макропроцессора m4. Необходимые сценарии поставляются вместе с sendmail. Для получения желаемой конфигурации следует составить инструкции для m4, где указываются типовой сценарий sendmail.cf и дополнительные опции. Несомненно, этот подход имеет большие преимущества при создании sendmail.cf с нуля, но это редко требуется, так как система поставляется как правило уже с готовым конфигурационным файлом. Но при внесении изменений в конфигурацию непосредственное редактирование sendmail.cf - более простой и наглядный способ. Подбробнее о конфигурировании sendmail с помощью m4 см. в литературе.

Более того, в большинстве случаев все, что нужно сделать администратору, - это проконтролировать, что макрос j содержит полное доменное имя хоста, а класс w содержит весь список почтовых доменов, для которых данных хост принимает почту. Более сложные задачи, требующие знания языка sendmail.cf и редактирования конфигурационного файла, могут возникнуть у администратора почтового сервера предприятия. Примеры типичных задач и способов их решения приведены в таблице.

Задачи

Способы решения

Настройка политики приема и ретраснляции сообщений

Создание/редактирование наборов праил типа check_...

Маскарад - сокрытие деталей доменной структуры организации путем приведения всех обратных адресов к одному унифицированному почтовому домену

Внесение изменений в набор 1 или набор, указанный параметром "S=" агента доставки

Доставка определенного типа сообщений через специальных агентов - например, запись в базу данных

Идентификация типа сообщений (по особому доменному имени [добавить его в класс w], по именам пользователей, принадлежащих определенному классу, и т.п.); определение нового агента; добавление правил выбора нового агента для идентифицированных сообщений в набор 0

Взаимодействие (шлюзование) с системой электронной почты, работающей по другим протоколам

Внесение изменений в различные наборы правил в зависимости от конкретного случая

Управление работой sendmail и тестирование конфигурации

Тестовый режим

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

/usr/lib/sendmail -bt -C ./sendmail.cf.new

sendmail запускается в диалоговом тестовом режиме (./sendmail.cf.new - новый конфигурационный файл). Ожидаемый ввод:

>номер_набора адрес(рабочее пространство)

Программа произведет разбор рабочего пространства с помощью указанного набора правил. Несколько наборов правил могут быть указаны через запятую в порядке их вызова. Если набор правил 3 не указан явно, то адреса должны вводиться в сфокусированном виде. Примеры (определить агента доставки для адреса m2@vvsu.ru):

3,0 m2@vvsu.ru

0 m2 < @ vvsu . ru >

Другие команды тестового режима:

.DmValue

присвоить макросу m значение Value.

.CcValue

добавить в класс c значение Value.

$m

вывести значение макроса m.

$=c

вывести значения класса c.

=Sruleset

вывести все правила набора ruleset.

=M

вывести определения всех агентов доставки.

/mx name

найти в DNS запись MX для имени name.

/tryflags флаг

установить флаг, указывающий, как будет интерпретирован адрес в аргументе команды parse (см. следующую команду):

Флаг

Интерпретация адреса

er

адрес получателя в конверте

hr

адрес получателя в заголовке

es

адрес отправителя в конверте

hs

адрес отправителя в заголовке

/parse адрес

Произвести полный разбор адреса, как если бы он был указан в поступившем на обработку сообщении. Адрес интепретировать в соответствии с установкой флага командой tryflags; по умолчанию - адрес получателя из конверта сообщения.

Выход из тестового режима - Ctrl-D.

При запуске sendmail можно указать отладочные опции, включение которых приведет к выводу дополнительной информации. Наиболее полезные опции (аргументы командной строки):

-d0.1

Вывести информацию о версии программы, опции компиляции, информацию о системе.

-d0.4

Вывести все имена и псевдонимы данного компьютера.

-d21.12

Выводить информацию о выполнении каждого правила в процессе разбора.

ПРИМЕЧАНИЕ. Для проверки в тестовом режиме наборов check_relay и check_compat необходимо использовать дополнительный набор правил (так как комбинация $| в тестовом режиме по какой-то причине воспринимается не как один, а как два токена):

STranslate

R$* $$| $* $1 $| $2

("$$" обозначает собственно знак доллара). Набор Translate должен вызываться непосредственно перед check_relay или check_compat. Пример проверки check_compat в тестовом режиме:

>Translate,check_compat m2@vvsu.ru $| xhawk@mail.ru

Запуск сервера sendmail

Запуск sendmail в режиме демона выполняется командой

/usr/lib/sendmail -bd -q1h

где "-q1h" - периодичность обработки сообщений, поставленных в очередь (1 час); допускаются значения и в минутах, например, "-q15m".

При загрузке системы перед запуском sendmail проверяется наличие конфигурационного файла и очищается очередь почтовых сообщений (каталог /var/spool/mqueue), все эти действия в ОС Solaris заносятся в загрузочный скрипт /etc/init.d/sendmail, который вызывается в /etc/rc2 как /etc/rc2.d/S88sendmail. В других Unix-системах производятся аналогичные действия.

Управление очередью сообщений

В очередь помещаются сообщения, немедленная доставка которых по какой-либо причине не удалась. Очередь находится в каталоге /var/spool/mqueue. Просмотр очереди выполняется командой (/usr/bin/)mailq; для каждого сообщения указан его идентификатор, размер, адреса отправителя и получателя и текущий статус сообщения.

Каждое сообщение представлено в виде нескольких (обычно двух) файлов. Их имена состоят из двухсимвольного префикса, обозначающего тип файла (df - файл с письмом, qf - файл со служебными данными по обработке этого письма), и идентификатора сообщения (выводимого командой mailq). Для удаления письма из очереди (т.е. для его полной ликвидации) нудно удалить все файлы этого сообщения. Например, для удаления сообщения с идентификатором MAA12345 нужно удалить файлы dfMAA12345, qfMAA12345 и т.п.

Для внеочередной обработки сообщений, стоящих в очереди, надо подать команду

#/usr/lib/sendmail -q

Sendmail и /etc/hosts

Для работы sendmail требуется, чтобы в файле /etc/hosts наряду с коротким именем компьютера было прописано его полное имя:

212.16.195.100 athena athena.vvsu.ru

Установка сервера POP3

Сервер POP3 под Unix реализован в виде одной программы-демона, например, программы popper. Для ее запуска необходимо внести номер порта для сервиса pop3 (порт 110/tcp) в /etc/services и соответствующую строку в /etc/inetd.conf, например:

pop3 stream tcp nowait root /usr/local/lib/popper popper -s

Задания

Задание 1. Отправить почтовое сообщение по адресу firekeeper@iae.nsk.su через непосредственный диалог с SMTP-сервером, предварительно установив адрес почтового сервера, который принимает почту для этого адресата.

Задание 2. Создать на своем компьютере два специальных почтовых адреса: один - список рассылки сообщений студентам группы; другой - автомат, отвечающий на каждое письмо новогодним поздравлением.

Задание 3. Обеспечить доступ к почте для пользователей своего компьютера по протоколу POP-3. Создать POP-пользователя (пользователя, который может только получать/отправлять почту и менять пароль).

Задание 4. Получить почту по протоколу POP-3 вручную.

Задание 5. На своем компьютере проанализировать политику приема сообщений для отправки через SMTP. Проверить комбинации следующих параметров: МТА-клиент находится в своем домене или в другом; в MAIL FROM указывается адрес локального пользователя, или адрес, принадлежащий нашему домену, или адрес из другого домена; получатель (RCPT TO) - локальный пользователь, или находится в нашем домене, или находится в другом домене. Найти соответствующие правила в конфигурационном файле.

Изменить политику так, чтобы через SMTP принимались только сообщения, адрес отправителя или получателя которых - локальный для вашего компьютера; при этом адрес MTA-клиента не имеет значения.