Россия, Казань, Казанский Национальный Исследовательский Технический Университет |
Установка и конфигурирование 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.
Параметр | Описание |
---|---|
-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