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

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

Конфигурирование 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 и пароли

В "Администрирование почтового сервера" , "Администрирование почтового сервера", вопросы обслуживания идентификаторов пользователей и паролей в ОС 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
Valentin Diduk
Valentin Diduk
Украина, одесса, кпи, 2010
Евгений Олабин
Евгений Олабин
Беларусь, Гродно