voliuf.narod.ru

главная

друзья

помощь сайту

Администрирование почтовых серверов sendmail  

Бесплатные учебники по темам

Партнерская программа

1.Принципы организации систем электронной почты

2.Использование ОС Linux в качестве сервера электронной почты

3.Установка телекоммуникационного оборудования в ОС Linux

4.DNS и доменные имена

5.Протокол SMTP

6.Протокол POP3

7.Протокол IMAP

8.Протокол РРР

9.Протокол UUCP

10.Программа sendmail

11.Установка и конфигурирование sendmail

12.Установка и конфигурирование POP3 и IMAP

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

14.Администрирование почтового сервера

15.Конфигурирование клиентов ЛВС

16.Поддержка удаленных клиентов

17.Почтовые псевдонимы и преобразование адресов

18.Списки рассылки

19.Маршрутизация IP в ОС Linux

 

Администрирование почтовых серверов sendmail 
12.Установка и конфигурирование POP3 и IMAP
  

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

 

Некоторые пользователи, имеющие физический доступ к серверу электронной почты, могут зарегистрироваться на нем и открыть интерактивный сеанс либо с помощью обычной консоли, либо сеанс X Window. После регистрации и открытия сеанса с сервером пользователь для получения доступа к своему почтовому ящику может использовать одну из программ почтовых пользовательских агентов (MUA), например pine, elm или kmail. Все эти программы позволяют пользователям просматривать и удалять почтовые сообщения во время сеанса работы с локальным почтовым сервером.

 

К сожалению, многие пользователи не имеют физического доступа к почтовому серверу. В большинстве случаев просто невозможно обеспечить всем пользователям сети физический доступ к почтовому серверу только для того, чтобы они могли читать сообщения, пришедшие в их почтовые ящики на сервере. Еще одним возможным решением этой проблемы может быть обеспечение удаленных клиентов электронной почты доступом к почтовому серверу с помощью программы удаленного доступа telnet или терминальных программ для Х-терминала. Однако такое решение неэффективно, поскольку и cеансы telnet, и сеансы Х-терминала создают большую перегрузку сетевого трафика, и все лишь для чтения нескольких строк почтового сообщения.

 

Наилучшим решением из возможных решений является использование почтовых доставочных агентов (Mail Delivery Agents — MDA). Агенты MDA предоставляют удаленным пользователям удобный метод доступа к их почтовым ящикам на сервере электронной почты практически без перегрузки сетевого трафика. Программы-агенты MDA могут подключаться к клиентскому почтовому ящику и загружать оттуда на клиентский компьютер только необходимую информацию о сообщениях для определенного пользователя. На рис. 12.1 представлена схема получения сообщений с почтового сервера клиентами с помощью программ MDA.

 

 

Получение клиентами почтовых сообщений с сервера электронной почты

Рис. 12.1.  Получение клиентами почтовых сообщений с сервера электронной почты

 

 

В лекциях 6, "Протокол POP3" и 7, "Протокол IMAP", были рассмотрены два протокола, позволяющие удаленный доступ к почтовым ящикам на сервере электронной почты. Согласно протоколам POP3 и IMAP, пользователи на удаленных рабочих станциях могут просматривать и удалять сообщения на локальном почтовом сервере с помощью клиентских почтовых программ. Соответственно, почтовый сервер под управлением ОС Linux должен иметь программное обеспечение, поддерживающее работу протоколов POP3 и IMAP.

 

В этой лекции дается описание двух программных пакетов для поддержки протоколов POP3 и IMAP на сервере электронной почты под управлением ОС Linux. Программа qpopper позволяет почтовому Linux-серверу поддерживать с удаленными компьютерами POP3-соединения, через которые последние получают доступ к почтовым ящикам на сервере. Программа IMAP Вашингтонского университета поддерживает доступ к почтовым ящикам пользователей как по протоколу POP3, так и по протоколу IMAP.

 

Клиентские протоколы электронной почты

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

 

В этом разделе делается сравнительный анализ и дается оценка этим двум клиентским протоколам электронной почты, что поможет администратору почтовой системы сделать обоснованный выбор.

 

Протокол POP3

Протокол почтового офиса (Post Office Protocol — POP3) в последнее время приобрел большую популярность. Широко распространилась и де-факто стала стандартом его третья версия (отсюда и цифра 3 в его названии). На рис. 12.2 представлена схема получения почты с почтового сервера с помощью протокола POP3.

 

 

Работа протокола POP3

Рис. 12.2.  Работа протокола POP3

 

 

Клиентский компьютер, согласно протоколу POP3, может получать сообщения из почтового ящика пользователя на сервере и помещать их в папки на своем жестком диске. После получения сообщения локальным компьютером его можно удалить с сервера или оставить там его копию. В любом случае просмотр полученного с сервера сообщения полностью зависит от программного обеспечения на клиентском компьютере. Программы для просмотра сообщений на рабочей станции часто называют почтовыми клиентами.

 

Протокол POP3 пользуется широкой популярностью у провайдеров сети Internet, так как им приходится обслуживать сотни почтовых ящиков на десятках серверов. Дело в том, что этот протокол позволяет провайдерам Internet принудительно удалять сообщения с серверов электронной почты после того, как они были получены из почтового ящика клиентами. Эта функция позволяет экономить дисковое пространство на почтовых серверах. Единственное неприятное следствие выполнения таких операций состоит в том, что вся почта для определенного пользователя должна храниться на одном компьютере, получающем почту из ящика на сервере, а многим пользователям необходимо работать с электронной почтой как в офисе, так и дома на своем домашнем ПК. В этом состоит главный недостаток протокола POP3. Например, если пользователь проверил свой почтовый ящик из дому и получил 20 новых сообщений, то все они уже хранятся на его домашнем ПК. Добравшись же на работу и еще раз проверив ящик со своей рабочей станции, он этих сообщений на почтовом сервере не обнаружит. Такая ситуация исключена при работе с протоколом IMAP.

 

Протокол IMAP

Протокол интерактивного доступа к почтовому ящику (Interactive Mail Access Protocol — IMAP) менее известен в мире электронной почты, но в настоящее время стремительно приобретает популярность. В данный момент распространяется версия 4 реализации 1 этого протокола (сокращенно IMAP4rev1). На рис. 12.3 представлена схема работы протокола IMAP.

 

 

Работа протокола IMAP

Рис. 12.3.  Работа протокола IMAP

 

 

Основное отличие между протоколами POP3 и IMAP — место хранения почтовых сообщений. Протоколом POP3 предусматривается, что все сообщения складируются на почтовом сервере, но далее по запросу клиента передаются к нему на рабочую станцию для дальнейшего манипулирования ими. Довольно часто сообщения, полученные клиентом, удаляются из ящика на сервере. В протоколе IMAP все сообщения обслуживаются на сервере электронной почты в соответствующих папках. Каждый пользователь имеет на сервере свою папку с названием по умолчанию INBOX. Все полученные сообщения помещаются в папку INBOX, откуда пользователь их может читать. При каждом подключении пользователя к серверу IMAP ему выдается список сообщений, которые находятся в папке INBOX. Затем пользователь может получить все или одно из них на любой компьютер в сети. Это прекрасная возможность, особенно для тех пользователей, которым в течение рабочего дня необходимо получать доступ к своему почтовому ящику с разных рабочих станций. Кроме того, для улучшения управления сообщениями можно создавать дополнительные папки на почтовом сервере. Все папки находятся на почтовом сервере, а не на рабочей станции клиента, помните об этом! Хотя эти свойства протокола IMAP облегчают жизнь пользователям электронной почты, они усложняют ее администраторам почтовых систем. Поскольку все почтовые сообщения находятся на сервере, то дисковое пространство на нем становится для почтовой системы критическим параметром.

 

POP3 против IMAP

 

Выбор между POP3 и IMAP может быть не в пользу ни того, ни другого. На многих узлах обеспечивается поддержка обоих протоколов, что дает пользователям возможность самим определять способ получения сообщений из почтового ящика на сервере. Для пользователей, работающих с электронной почтой в основном в домашних условиях, более приемлем протокол IMAP, в то же время клиенты, которые соединяются с сервером по запросу по коммутируемой линии, для чтения сообщений с сервера обычно пользуются протоколом POP3. При использовании такого сценария работы с почтой будьте осторожны. Клиенты, получающие почту с помощью POP3, не должны удалять сообщения с сервера, иначе они не будут доступны в сеансах IMAP. При использовании обоих протоколов вы даете пользователю возможность выбора сценария работы с почтовым сервером. К сожалению, это влечет за собой и увеличение нагрузки на персонал администраторов почтовой системы.

 

Два программных пакета, описанных в этой лекции, позволяют составить представление об общих чертах серверов POP3 и IMAP на базе ОС Linux, включая работу с зашифрованными паролями и использование файла паролей.

 

Программа qpopper

Программа qpopper была разработана в университете Беркли, штат Калифорния, и распространяется свободно. В настоящее время она является собственностью корпорации Qualcomm, которая занимается ее поддержкой и обслуживанием. Кроме qpopper, эта корпорация также занимается поддержкой клиентской почтовой программы Eudora (об этом более подробно в лекции 15, "Конфигурирование клиентов ЛВС"). Программа qpopper была написана для обеспечения работы программного обеспечения сервера POP3 на большинстве UNIX-платформ. Хорошо она работает и с ОС Linux. Программа qpopper поддерживает обычную аутентификацию пользователя POP3 с помощью имени пользователя и пароля; кроме того, она поддерживает шифрование при аутентификации APOP для POP3. Алгоритм APOP поддерживает шифрование паролей с использованием базы данных паролей, которую обслуживает администратор почтовой системы.

 

Любую информацию о программе qpopper вы можете найти на Web-сайте:

 

http://www.eudora.com/freeware/servers.html

 

В настоящее время текущая версия qpopper — 2.53. Доступна также тестовая бета-версия — 3.0b18. Если в вашей системе используется версия qpopper ниже, чем 2.41, откажитесь от нее, так как в ранних версиях имеются серьезные ошибки, связанные с переполнением буферов. Этим могут воспользоваться хакеры для проникновения на ваш почтовый сервер.

 

Как получить qpopper

На сервере FTP корпорации Qualcomm всегда имеется последняя версия программы qpopper. Сервер находится в сети Internet по адресу:

 
ftp.qualcomm.com.

Программа qpopper находится в каталоге /eudora/servers/unix/popper. На момент написания книги в этом каталоге были доступны три версии qpopper — 2.53, 3.0b17 и 3.0b18. Все они сжаты с помощью стандартных утилит сжатия UNIX в отдельные файлы. До перекачки файлов убедитесь в том, что в программе для работы с FTP задан режим для загрузки бинарных файлов BINARY. В качестве примера мы запросим файл qpopper3.0b18.tar.Z:

 

ftp://ftp.qualcomm.com/eudora/servers/unix/popper/qpopper3.0b18.tar.Z

 

После того как файл получен на локальный компьютер (бета-версия 3.0 размером немного меньше 2,5 Мбайт), можно извлечь исходный код программы в рабочий каталог с помощью команды:

 
tar -zxvf qpopper3.0b18

По этой команде утилита tar сама создает подкаталог qpopper3.0 в рабочем каталоге и помещает туда файлы исходного кода и необходимые подкаталоги.

 

Конфигурирование qpopper

Для проверки операционной среды и создания Makefile, в котором содержатся ссылки на компилятор, библиотеки и файлы языка С, в программе qpopper применяется программа configure. Программу configure можно запускать из командной строки с определенными параметрами, которые позволяют реализовать те или иные функции на сервере.

 

По умолчанию при конфигурировании qpopper дополнительные параметры в командной строке не задаются. В этом случае конфигурирование сводится к командам ./configure и make. При этом создается стандартный сервер POP3 без поддержки APOP и без использования базы данных теневых паролей, даже если таковая имеется. Программа qpopper представляет собой выполняемый файл с именем popper, который находится в подкаталоге popper ниже каталога qpopper3.0. Вам необходимо скопировать эту программу в общий для исполняемых модулей каталог с правами пользователя root. В документации к qpopper рекомендуется использовать в качестве рабочего каталог /usr/local/lib.

 

Для изменения режимов работы сервера POP3 программа popper может запускаться с набором параметров. Все они представлены в табл. 12.1.

 
Таблица 12.1. Параметры командной строки программы popper
Параметр Описание
-b Изменяет каталог по умолчанию для циркулярных сообщений
-c Изменяет регистр всех имен пользователей на нижний регистр
-d Включает режим отладки
-e Определяет расширения POP3
-k Включает поддержку Kerberos
-s Включает сбор статистики
-t Определяет альтернативные файлы отладки и протокола
-T Изменяет интервал ожидания, заданный по умолчанию
-R Запрещает обратное преобразование адресов клиентов
 

Для запуска программы qpopper используется программа inetd. Программа inetd обнаруживает сетевые соединения и передает информацию о них соответствующим программам в зависимости от номера TCP- или UDP-порта, по которому установлено соединение. Первая часть конфигурирования inetd для работы с qpopper заключается в том, чтобы обеспечить обнаружение соединения по TCP-порту (для POP3 порт 110). Эта информация находится в файле /etc/services. Строка, разрешающая действия с портом 110, выглядит примерно так:

 
pop-3 110/tcp #POP version 3

После того как вы убедились в наличии поддержки POP3 в файле /etc/services, следует включить ее и в конфигурационном файле inetd. Файл конфигурации для inetd/etc/inetd.conf. В нем должна быть активирована строка, отвечающая метке pop-3 в файле /etc/services и запускающая соответствующую программу для организации соединения по данному порту. Эта строка должна выглядеть примерно так:

 
#pop-3 stream tcp nowait root /usr/local/lib/popper popper -s

Подобная запись в inetd.conf свидетельствует о том, что программа popper находится в каталоге /usr/local/lib и разрешен сбор статистических данных о ее работе (параметр -s). По умолчанию все статистические данные будут включаться в стандартный файл отчета в ОС Linux syslog. В Mandrake Linux 6.0 это файл /var/log/messages.

 

Чтобы новые настройки в inetd.conf вступили в силу, нужно перезапустить демон-процесс inetd. Это можно сделать, послав ему сигнал SIGHUP. Ниже описана процедура перезапуска процесса:

 
[root@shadrach lizzy]# ps ax | grep inetd
327 ? S 0:00 inetd
12600 pts/2 S 0:00 grep inetd
[root@shadrach lizzy]#kill -HUP 327
[root@shadrach lizzy]#

Правильность установки программы qpopper можно проверить, подключившись с помощью программы telnet к порту 110 почтового сервера, как это показано в листинге 12.1.

 
1 [erin@shadrach erin]$ telnet localhost 110
2 Trying 127.0.0.1...
3 Connected to localhost.
4 Escape character is'^]'.
5 +OK QPOP (version 3.0b18) at shadrach.smallorg.org starting.
6 QUIT
7 +OK Pop server at shadrach.smallorg.org signing off.
8 Connection closed by foreign host.
9 [erin@shadrach erin]$

Листинг 12.1. Пример сеанса POP3

В строке 1 листинга 12.1 показана команда на подключение с помощью программы telnet к порту 110 локального хоста. В строке 5 вы видите приглашение, выданное программой qpopper.

 

Стандартная конфигурация qpopper должна нормально работать на обычных серверах POP3 под управлением ОС Linux. Однако имеется возможность задавать в qpopper более сложные настройки, что сделает ее более универсальной.

 

Поддержка теневых паролей

Общее свойство для ОС Linux — поддержка теневых паролей. В традиционной конфигурации Linux пароли и идентификаторы пользователей хранятся в файле /etc/passwd. К сожалению, этот файл доступен для чтения любому пользователю системы. Благодаря этому программа login может обслуживать запросы на регистрацию в системе, но вместе с тем файл становится уязвимым для хакеров (они могут загрузить его к себе на компьютер и взломать с помощью специальных программ). В этом случае первыми жертвами хакеров становятся пользователи, которые используют в качестве пароля свои имена или названия любимых футбольных команд.

 

ОС Linux и пароли

 

В лекции 14, "Администрирование почтового сервера", вопросы обслуживания идентификаторов пользователей и паролей в ОС Linux обсуждаются более подробно.

 

Во многих версиях ОС Linux для решения этой проблемы применяется так называемый файл теневых паролей. При этом идентификаторы пользователей системы по-прежнему хранятся в файле /etc/passwd, но пароли в зашифрованном виде хранятся в другом файле, который можно сделать недоступным для других пользователей. Если используется файл теневых паролей, то программы, проверяющие идентификаторы пользователей, должны обнаруживать его.

 

Определить, используются ли в вашей системе теневые пароли, можно с помощью анализа файла /etc/passwd. В листинге 12.2 приведен пример файла passwd с использованием теневых паролей.

 
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:
3 daemon:x:2:2:daemon:/sbin:
4 adm:x:3:4:adm:/var/adm:
5 lp:x:4:7:ip:/var/spool/lpd:
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:
10 news:x:9:13:news:/var/spool/news:
11 uucp:x:10:14:uucp:/var/spool/uucp:
12 operator:x:11:0:operator:/root:
13 games:x:2:100:games:/usr/games:
14 gopher:x:13:30:gopher:/usr/lib/gopher-data:
15 ftp:x:14:50:FTP User:/home/ftp:
16 nobody:x:99:99:Nobody:/:
17 postgres:x:100:101:PostgreSQL Server: /var/lib/pgsql:/bin/bash
18 lists:x:500:500:BeroList:/dev/null:/dev/null
19 xfs:x:101:103:X Font Server:/etc/X11/fs:/bin/false
20 rich:x:501:501:Rich:/home/rich:/bin/bash
21 barbara:x:502:502:Barbara's logon id: /home/barbara: /bin/bash
22 katie:x:503:503:Katie's logon id:/home/katie: /bin/bash
23 jessica:x:504:504 Jessica's logon id:/home/jessica: /bin/bash

Листинг 12.2. Пример файла /etc/passwd для ОС Linux

В листинге 12.2 представлено несколько идентификаторов пользователей из файла /etc/passwd. Для разделения полей в записях используются двоеточия (:). В первом поле, как правило, хранится имя пользователя, а во втором — зашифрованный пароль. В файле, приведенном в качестве примера, во втором поле всегда присутствует буква х. Это является для системы признаком того, что используются теневые пароли. В данном случае реальные пароли хранятся в файле /etc/shadow. Этот файл представлен в листинге 12.3.

 
1 root:$1$wkRtb3BgrTSWmezOiXx.ZGAtG/zGKU1:10863:0:99999:7:-1:-1:134537880
2 bin:*:10863:0:99999:7:::
3 daemon:*:10863:0:99999:7:::
4 adm:*:10863:0:99999:7:::
5 lp:*:10863:99999:7:::
6 sync:*:10863:0:99999:7:::
7 shutdown:*:10863:0:99999:7:::
8 halt:*:10863:0:99999:7:::
9 mail:*:10863:0:99999:7:::
10 news:*:10863:0:99999:7:::
11 uucp:*:10863:0:99999:7:::
12 operator:*:10863:0:99999:7:::
13 games:*:10863:0:99999:7:::
14 gopher :*:10863: 0:99999:7 ::
15 ftp:*:10863:0:99999:7:::
16 nobody:*:10863:0:99999:7:::
17 postgres:!!:10863:0:99999:7:::
18 lists:!!:10863:0:99999:7:::
19 xfs:!!:10863:0:99999:7:::
20 rich:LMQ0lb3GwZr1s:10863 0:99999:7:::
21 barbara: MDOb23ddXdgPP: 10863:0:99999:7:::
22 katie:$1$ORlQdo1l$ggBH8mFNPGCBUUHMEjXWe1:10863:0:99999:7:1:-1: 134537888
23 jessica:$1$XEd8PKaP$AhJre7HN3UBcKjBBGeL1d1:10882:0:99999:7:-1:-1: 134537872

Листинг 12.3. Пример файла /etc/ shadow для ОС Linux

Из листинга 12.3 видно, что во втором поле содержатся зашифрованные пароли пользователей. Для получения доступа к файлу теневых паролей программа qpopper должна быть скомпилирована соответствующим образом.

 

Если перед этим вы компилировали qpopper, то необходимо очистить выполняемый и объектный файлы в рабочем каталоге. Это делается с помощью команды, задаваемой в каталоге qpopper3.0:

 
make clean

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

 
./configure -- enable-specialauth

По этой команде с помощью параметров, необходимых для работы компилятора GNU gcc по включению файлов теневых паролей, вновь создается Makefile. После того как программа конфигурации закончит создание Makefile, нужно снова запустить программу make. При этом в подкаталоге popper создается новый выполняемый файл popper. После этого вам придется еще раз скопировать файл в каталог, указанный в файле конфигурации inetd.conf (для этого вы должны обладать правами пользователя root). При этом не нужно перезапускать процесс-демон inetd, так как содержимое файла /etc/inetd.conf не изменялось. После копирования нового выполняемого файла в соответствующий каталог можно проверить правильность конфигурации с помощью программы telnet. Для этого нужно обратиться на порт 110. В листинге 12.4 приводится пример такого сеанса.

 
1 [riley@shadrach riley]$ telnet localhost 110
2 Trying 127.0.0.1...
3 Connected to localhost.
4 Escape character is '^]'.
5 +OK QPOP (version 3.0b18) at shadrach.smallorg.org starting.
6 USER riley
7 +OK Password required for riley.
8 PASS firetruck
9 +OK riley has 3 messages (1162 octets).
10 QUIT
11 +OK Pop server at shadrach.smallorg.org signing off.
12 Connection closed by foreign host.
13 [riley@shadrach riley]$

Листинг 12.4. Пример входа в систему с помощью протокола POP3

Вы видите, как в строке 1 листинга 12.4 открывается сеанс с помощью telnet с портом 110 (порт POP3) локального почтового сервера. В строке 5 выдается стандартное сообщение программы qpopper о том, что она запущена и готова к работе. В строках 6 и 8 пользователь вводит свои имя и пароль, а в строке 9 программа qpopper уведомляет о том, что пароль и имя пользователя опознаны и в его почтовом ящике находятся три новых сообщения.

 

Поддержка проверки подлинности с помощью APOP

Как видно из листинга 12.4, клиент почтовой системы должен сообщать серверу qpopper свое имя и пароль в текстовом виде. Если предположить, что пользователь riley проверяет свой почтовый ящик по сети Internet, то очевидно, что существует вероятность перехвата его имени и пароля хакерами, которые могут использовать эту информацию в корыстных целях.

 

Однако для протокола POP3 разработано решение этой проблемы.

 

Как уже упоминалось в лекции 6, существует несколько альтернативных методов проверки подлинности пользователя. В программе qpopper поддерживается метод аутентификации пользователей APOP. Для возможности поддержки APOP программой qpopper требуется ее перекомпиляция.

 

Сначала необходимо удалить объектные и выполняемые файлы, созданные ранее; воспользовавшись для этого командой

 
make clean

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

 
./configure –-enable –-apop=/etc/pop.auth -–with-popuid=pop

По этой команде создается Makefile, где в качестве базы данных паролей используется файл /etc/pop.auth, а администратором этой базы данных является пользователь pop. Затем с помощью команды GNU make можно создать новые выполняемые файлы. При использовании APOP создаются два выполняемых файла — popper и popauth.

 

Как и в предыдущем случае, скопируйте новый выполняемый файл popper в каталог, указанный в файле inetd.conf (например, /usr/local/lib). С помощью файла popauth можно добавлять пользователей в базу данных APOP, которая указывается в строке конфигурации.

 

Для тестирования новой конфигурации зайдите с помощью telnet на порт 110 — вы увидите измененное стандартное приглашение сервера. В листинге 12.5 приведен пример сеанса работы с сервером qpopper с аутентификацией пользователей посредством APOP.

 
1 [carol@shadrach carol]$ telnet localhost 110
2 Trying 127.0.0.1...
3 Connected to localhost.
4 Escape character is '^]'.
5 +OK QPOP (version 3.0b18) at shadrach.smallorg.org starting.
   <17166.940368317@shadrach.smallorg.org>
6 QUIT
7 +OK Pop server at shadrach.smallorg.org signing off.
8 Connection closed by foreign host.
9 [carol@shadrach carol]$

Листинг 12.5. Пример стандартного сообщения от сервера qpopper при использовании APOP

В строке 1 листинга 12.5 задается команда telnet на подключение к порту, обслуживающему сервер POP3. В строке 5 вы видите новое стандартное приглашение сервера, сгенерированное программой qpopper. Как видите, оно отличается от аналогичных приглашений из листингов 12.1 и 12.4. В данном случае в него включена информация о работе APOP. Как уже отмечалось в лекции 6, для работы по протоколу APOP требуется задать начальные значения для хеширования с заранее известным ключом (в нашем случае в качестве ключа выступает пароль). Его в зашифрованном виде вы можете наблюдать в приглашении сервера POP3. Обе стороны, участвующие в соединении по POP3, должны знать ключ заранее, чтобы при хешировании зашифрованные значения могли быть распознаны на удаленной стороне. Сервер qpopper хранит все ключи в аутентификационной базе данных.

 

База данных АРОР создается с помощью команды

 
./popauth -init

С помощью этой команды создается новая аутентификационная база данных (например, в каталоге /etc/pop.auth). При этом пользователь с идентификатором, указанным в параметре -with-popuid, является администратором базы данных АРОР и имеет право добавлять в нее пользователей. Одна из проблем, часто возникающих при использовании qpopper, состоит в том, что после занесения пользователя в аутентификационную базу данных ему приходится подключаться к серверу POP3 только через АРОР, т.е. он уже не сможет подключиться к нему без аутентификации.

 

Для того чтобы добавить в базу данных нового пользователя, администратор АРОР должен задать команду:

 
popauth -user user,

где user — принятое в ОС Linux имя пользователя. Программа popauth далее запросит у администратора пароль, который будет использоваться данным пользователем при аутентификации по АРОР. Этот пароль может отличаться от обычного пароля, принятого в ОС Linux. Для удаления пользователя из базы данных АРОР задается команда:

 
popauth -delete user,

где user — имя пользователя в ОС Linux, которое удаляется из базы. С помощью команды popauth, задаваемой без параметров, пользователи могут изменять пароли АРОР самостоятельно.

 

Циркулярные сообщения qpopper

Еще одно полезное свойство qpopper — рассылка циркулярных сообщений. Циркулярные сообщения — это сообщения, посылаемые сразу всем пользователям сервера POP3. При подключении пользователя к серверу POP3 программа qpopper проверяет каталог циркулярных сообщений определяя, какие из них не были прочитаны. Все непрочитанные циркулярные сообщения добавляются к обычным почтовым сообщениям в почтовые ящики пользователей. Администратор почтовой системы может запретить пользователю отправку циркулярных сообщений, ограничив доступ к каталогу циркулярных сообщений.

 

Для обеспечения работы с циркулярными сообщениями прежде всего удалите все ненужные объектные и выполняемые файлы, если уже имеется скомпилированная версия qpopper. Как вы уже знаете, это делается с помощью команды:

 
make clean

Затем следует запустить программу configure с параметром, разрешающим использование циркулярных сообщений. Далее вы можете запустить программу configure с несколькими необходимыми параметрами, если, кроме работы с циркулярными сообщениями, требуется поддержка теневых паролей и работа с АРОР. Формат команды на включение поддержки теневых паролей и циркулярных сообщений следующий:

 
./configure -–enable-bulletins=/var/spool/bulls
-–enable-specialauth,

где параметр -–enable-bulletins указывает на каталог, в котором будут храниться циркулярные сообщения. После выполнения сценария конфигурации необходимо запустить утилиту GNU make для создания выполняемого файла popper. Затем следует еще раз скопировать выполняемый файл popper в каталог, указанный в конфигурационном файле inetd.conf.

 

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

 
nnnnn.string,

где nnnnn представляет собой пятизначный номер циркулярного сообщения, а string — строка текста для идентификации циркулярного сообщения (например, 00001.Test_Bulletin). Все циркулярные сообщения должны нумероваться, чтобы программа qpopper могла отслеживать, какие сообщения были прочитаны, а какие нет. После получения клиентом POP3 циркулярного сообщения оно не будет отображаться в списке сообщений, содержащихся в его почтовом ящике. Текст в циркулярном сообщении должен соответствовать формату RFC 822. В листинге 12.6 приведен пример циркулярного сообщения.

 
1 From pop Wed Oct 20 18:25:00 1999
2 Date: Wed, 20 Oct 1999 18:25:00 (EST)
3 From: "Mail Administrator" <postmaster@shadrach.smallorg.org>
4 Subject: Test bulletin
5
6 This is a test of the Qpopper mail bulletin system. This is only a test
7 Had this been a real bulletin you would have been instructed to do
8 something important, like log off of the system.
9 This is the end of the bulletin test.

Листинг 12.6. Пример циркулярного сообщения, рассылаемого программой qpopper

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

 

Программа IMAP Вашингтонского университета

Один из наиболее широко распространенных программных пакетов для поддержки POP3 и IMAP для платформы Linux был разработан в Вашингтонском университете. В пакет входят программы, реализующие функции сервера POP3 и сервера IMAP4rev1. В этом разделе рассматривается установка и конфигурирование программного обеспечения UW IMAP (буквы UW от англ. Вашингтонский университет — University of Washington) на сервере под управлением ОС Linux.

 

Большинство дистрибутивов ОС Linux поставляется с бинарным пакетом UW IMAP. В Mandrake Linux 6.0 это пакет imap-4.5-5mdk.i586.rpm. Для его установки можно использовать стандартную программу инсталляции пакетов — RPM. Команда на установку пакета на вашем компьютере выглядит следующим образом:

 
rpm -Uvh i imap-4.5-5mdk.i586.rpm

В настоящее время Вашингтонским университетом поддерживается Web-сайт с описанием программного обеспечения IMAP. Его адрес в сети Internet: http://www.washington.edu/imap/.

 

Там можно найти любую информацию о проекте UW IMAP, разрабатываемом в университете, а также ссылки на текущую версию программы (в настоящее время 4.6). Получить исходный код дистрибутива этой версии вы можете по ссылке, указанной на Web-сайте. Кроме того, можно получить текущую версию этой программы непосредственно из каталога /imap на FTP-сервере ftp.cac.washington.edu. Файл imap.tar.Z, на который указывает ссылка, всегда содержит новую версию программы. На этом FTP-сервере доступна для загрузки также тестовая бета-версия 4.7. Исходный код программы поставляется в файле, сжатом стандартными средствами UNIX. Имя этого файла — imap-4.7.BETA.tar.Z. Помните, что при получении данного файла по FTP следует использовать режим BINARY.

 

После того как вы получите исходный код, его нужно распаковать из архива в рабочий каталог:

 
tar -zxvf imap-4.7.BETA.tar.Z

С помощью этой команды создается подкаталог imap-4.7.BETA, и в него помещается исходный код программного пакета.

 

При компиляции программы UW IMAP, в отличие от qpopper, никакие дополнительные параметры не используются. Главным требованием при создании выполняемых файлов программного пакета IMAP из исходного кода является точное знание версии операционной системы. Это необходимо для того, чтобы использовать соответствующий раздел Makefile. В табл. 12.2 представлены параметры для создания IMAP в различных версиях ОС Linux.

 
Таблица 12.2. Параметры make для UW IMAP
Параметр Описание
lnx Традиционные системы семейства Linux
lnp Системы Linux со встроенными модулями аутентификации Pluggable Authentification Modules (PAM)
sl4 Системы Linux c использованием -lshadow для паролей
sl5 Системы Linux с использованием теневых паролей
slx Системы Linux c использованием -lcrypt для паролей
 

В Mandrake Linux 6.0 для разрешения использования теневых паролей следует задать параметр slx:

 
make slx

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

 

Конфигурирование UW POP3

Для обеспечения нормальной работы программного обеспечения сервера UW POP3 его необходимо установить и соответствующим образом сконфигурировать. Вначале необходимо скопировать выполняемые файлы в общий каталог. Поскольку программы ipop3d и imapd сконфигурированы для использования совместно c программой tcpd, то лучше всего поместить их в каталог /usr/sbin. Однако программа ipop3d находится в подкаталоге ipopd каталога imap-4.7.BETA. В этот же каталог помещается и сервер POP2 — ipop2d. Это делается лишь с целью обеспечения совместимости со старыми почтовыми программами, в которых отсутствует поддержка протокола POP3. Если создается новая система электронной почты, то желательно, конечно, обеспечить поддержку протокола POP3 в ней. Для работы с почтовым сервером по протоколу POP3 имеется достаточно программ, реализующих функции клиентов электронной почты (см. лекцию 15, "Конфигурирование клиентов ЛВС"). Помните, что копирование файла ipop3d в каталог /usr/sbin должно выполняться с правами пользователя root.

 

После того как выполняемые модули помещены в соответствующий каталог, необходимо настроить файлы конфигурации inetd. Вначале измените файл /etc/services. Убедитесь, что в нем сконфигурирован соответствующий порт TCP. Строка конфигурации для разрешения работы POP3 должна выглядеть примерно так:

 
pop-3 110/tcp # POP version 3

Эта строка сообщает программе inetd о возможности соединения с портом TCP номер 110. Причем инициировать соединение может программа, определенная в строке файла /etc/inetd.conf, которая описана меткой pop-3.

 

В конфигурационном файле определяется, где расположены выполняемые модули. При установлении соединения они будут вызываться именно из каталогов, указанных в этом файле. Строка в файле /etc/inetd.conf для организации работы по протоколу POP3 выглядит следующим образом:

 
pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d

В строке определяется, что программы tcpd и ipop3d должны находиться в каталоге /usr/sbin. Метка pop-3 в данном случае указывает на такую же метку в файле /etc/services.

 

Чтобы настройки, заданные в файле inetd.conf, возымели действие, необходимо перезапустить демон-процесс inetd. Для этого процессу посылается сигнал SIGHUP. Ниже приведены команды, с помощью которых можно перезапустить процесс-демон:

 
[root@shadrach erin]# ps ax | grep inetd
327 ? S 0:00 inetd
12600 pts/2 S 0:00 grep inetd
[root@shadrach erin]# kill -HUP 327
[root@shadrach erin]#

После перезапуска демона inetd можно провести тестирование программного пакета UW IMAP. В листинге 12.7 показан пример тестирования сервера POP3.

 
1 [lizzy@shadrach lizzy]$ telnet localhost 110
2 Trying 127.0.0.1...
3 Connected to localhost.
4 Escape character is '^]'.
5 +OK POP3 localhost v7.63 server ready
6 USER lizzy
7 +OK User name accepted, password please
8 PASS SINGING
9 +OK Mailbox open, 5 messages
10 QUIT
11 +OK Sayonara
12 Connection closed by foreign host.
13 [lizzy@shadrach lizzy]$

Листинг 12.7. Пример сеанса с сервером POP3

В строке 1 листинга 12.7 показана организация сеанса программы telnet с портом POP3 — 110. В строке 5 вы видите стандартное сообщение сервера UW POP3, в котором говорится, что сервер запущен и готов к работе.

 

Одна из дополнительных возможностей, которые обеспечивает сервер UW POP3, — использование АРОР для аутентификации пользователей. Реализация АРОР в UW POP3 намного проще, чем в qpopper, но служит той же цели.

 

Обнаружив файл /etc/cram-md5.pwd, сервер UW POP3 автоматически обеспечивает поддержку протоколов аутентификации APOP и CRAM-MD5. В обоих случаях используется один и тот же алгоритм хеширования ключа с определенным значением для создания зашифрованного пароля, который затем будет применяться при аутентификации. Как уже было описано в лекции 6, значение, с которым проводится хеширование, представляется в стандартном приглашении сервера POP3. Для успешной аутентификации и клиент, и сервер должны заранее знать ключ, чтобы хешировать его с заданным значением.

 

При работе с пакетом UW POP3 ключи хранятся в файле /etc/cram-md5.pwd. В каждой строке этого файла хранятся имя пользователя и ключ, который будет им использоваться. В листинге 12.8 представлен пример файла /etc/cram-md5.pwd.

 
1 rich guitar
2 barbara reading
3 riley firetruck
4 haley starwars
5 katie boxcar
6 jessica sharks

Листинг 12.8. Пример файла /etc/cram-md5.pwd

Как видно из листинга 12.8, база данных cram-md5.pwd является текстовой. Для того чтобы защитить пароли от посторонних, задайте режим доступа к файлу 600, таким образом, другие пользователи в системе не смогут просмотреть его. Это означает, что администратору почтовой системы для изменения паролей необходимо обладать правами пользователя root. Это также означает, что пользователи не смогут изменять свои пароли самостоятельно.

 

Для того чтобы проверить, включена ли поддержка АРОР, подключитесь с помощью telnet к порту 110 для работы по протоколу POP3. При этом вы должны увидеть в приглашении сервера значение, с которым будет производиться хеширование. В листинге 12.9 представлен пример сеанса работы сервера POP3 с поддержкой АРОР.

 
1 [kevin@shadrach kevin]$ telnet localhost 110
2 Trying 127.0.0.1...
3 Connected to localhost.
4 Escape character is '^]'.
5 +OK POPS v7.63 server ready <4d61.380e35cc@localhost>
6 USER kevin
7 +OK User name accepted, password please
8 PASS dinosaur
9 +OK Mailbox open, 0 messages
10 QUIT
11 +OK Sayonara
12 Connection closed by foreign host.
13 [kevin@shadrach kevin]$

Листинг 12.9. Пример сеанса работы сервера POP3 с поддержкой АРОР

Здесь, как и в предыдущем листинге, представлен пример сеанса telnet с портом сервера POP3. Однако стандартное приглашение сервера в строке 5 отличается от представленного в листинге 12.7. Как видите, в данном случае в нем приводится значение АРОР. В строке 6 демонстрируется работа АРОР в программе UW POP3. В отличие от qpopper, пользователи UW POP3 могут подключаться к серверу как с помощью АРОР, так и посредством обычного имени и пароля. Это частично решает проблему тех пользователей, которые подключаются к почтовому серверу с различных ПК и с помощью различных почтовых программ.

 

Конфигурирование UW IMAP

В состав программного обеспечения сервера UW IMAP, как и сервера POP3, входит программа inetd. В конфигурационных файлах для обеспечения работы IMAP требуются определенные строки. Так, в файле /etc/services необходимо задать строку:

 
imap2 143/tcp imap # Interim Mail Access Proto v2

Эта строка приведена для Mandrake Linux 6.0. Вы можете справедливо заметить, что в ней задается конфигурация для протокола IMAP2, однако в действительности здесь используется псевдоним для imap. Таким образом программа inetd будет искать соответствующую метку в файле inetd.conf. (В системе Mandrake тоже иногда могут быть ошибки!).

 

Для поддержки сервера IMAP необходимо также внести изменения в файл /etc/inetd.conf. Строка конфигурации, где выполняются эти действия, должна выглядеть таким образом:

 
imap stream tcp nowait root /usr/sbin/tcpd imapd

Как видите, здесь задается каталог, в котором должны находиться программы tcpd и imapd.

 

Для того чтобы новые настройки возымели действие, необходимо перезапустить демон inetd. Для этого ему нужно послать сигнал SIGHUP, как описано в разделе "Конфигурирование UW POP3".

 

После перезапуска демона протестируйте сервер IMAP, подключившись с помощью telnet к порту IMAP —143. В листинге 12.10 представлен пример сеанса работы с сервером IMAP.

 
1 [jessica@shadrach jessica]$ telnet localhost 143
2 Trying 127.0.0.1...
3 Connected to localhost.
4 Escape character is '^]'.
5 * OK localhost IMAP4rev1 v12.261 server ready
6 a1 LOGIN jessica sharks
7 a1 OK LOGIN completed
8 a2 SELECT INBOX
9 * 0 EXISTS
10 * 0 RECENT
11 * OK [UIDVALIDITY 940284862] UID validity status
12 * OK [UIDNEXT 2] Predicted next UID
13 * FLAGS (\Answered \Flagged \Deleted \Draft \Seen)
14 * OK [PERMANENTFLAGS (\* \Answered \Flagged \Deleted \Draft \Seen)] Permanent flags
15 a2 OK [READ-WRITE] SELECT completed
16 a3 LOGOUT
17 * BYE shadrach.smallorg.org IMAP4rev1 server terminating connection
18 a3 OK LOGOUT completed
19 Connection closed by foreign host.
20 [jessica@shadrach jessica]$

Листинг 12.10. Пример сеанса работы с сервером IMAP

Резюме

Когда вся почта для клиентов сети собирается на почтовом сервере под управлением ОС Linux, необходимо обеспечить клиентов возможностью забирать ее к себе на рабочие станции. В настоящее время наиболее широкое распространение в качестве основных средств для работы с почтовым сервером получили протоколы IMAP и POP3. В каждом из них есть свои сильные и слабые стороны. Для работы на почтовом сервере с ОС Linux в основном используются два программных пакета — сервер POP3 qpopper и серверы POP3 и IMAP Вашингтонского университета (программа UW IMAP). Оба эти пакета можно легко установить и сконфигурировать на почтовом сервере. Имеется также достаточное количество клиентских почтовых программ, в функции которых входит проверка содержимого почтовых ящиков на сервере. В лекции 15, "Конфигурирование клиентов ЛВС", подробно описан процесс настройки этих программ для работы с серверными программами POP3 и IMAP. В следующей лекции обсуждаются вопросы конфигурирования почтового сервера под управлением ОС Linux для работы в различных сетях.

 
©Автор: Р. Блам  источник: http://www.INTUIT.ru 


 

13 центов(0,13$) за клик, выплаты через WebMoney каждый вторник +10% с рефералов

Мы выкупаем 100% трафа! $12 за 1000 хостов (РФ), и до $4 за 1000 хостов (зарубежный траф) + 10% с дохода Ваших рефералов!
 Выплаты через
WebMoney

~80-100$ за1000 хостов 2.5$ за 1 смс.
реф. процент - 10 %Выплаты происходят раз в неделю, в четверг на
WebMoney
 
 

 

____________________________

Посмотреть порно видео в онлайне »

_______________________________

 

   
   
Сайт управляется системой uCoz