L i n u x P a r k при поддержке ВебКлуба |
Назад | Оглавление | Вперед |
Глава 15 Серверное программное обеспечение (Почтовый сервис) - Sendmail (часть 1)В этой главеLinux Sendmail сервер Конфигурации Организация защиты Sendmail Утилиты администратора Sendmail Утилиты пользователя Sendmail Linux Imap и Pop сервер Конфигурации Настройка Imap и POP для использования с TCP-Wrappers inetd супер сервером Организация защиты IMAP/POP |
Если вы настроили Sendmail как Центральный Почтовый Концентратор, вы должны инсталлировать IMAP/POP программное обеспечение или вы не сможете воспользоваться преимуществами вашего почтового Linux сервера, так как Sendmail занимается только пересылкой почты с одной на другую машину. Почтовый сервер √ это сервер на котором запущено одно или более из следующего: IMAP сервер, POP3 сервер, POP2 сервер или SMTP сервер.
Примером SMTP сервера может служить Sendmail, который мы уже проинсталлировали на нашем Linux сервере, как Центральный Почтовый Концентратор. Далее мы попытаемся охватить инсталляцию IMAP4, POP3 и POP2, которые входят в один пакет.
С IMAP & POP программами, почтовая программа удаленного ⌠клиента■ может получить доступ к сообщению хранящемся на почтовом сервере, как будто он находится на этом сервере. Например, почта присылается и запоминается на IMAP сервере для пользователя, который может манипулировать ею из его/ее компьютера дома, в офисе и т.д., без необходимости пересылки сообщений или файлов между этими компьютерами.
POP сокращение для ⌠Post Office Protocol■ и просто позволяет вам просматривать список сообщений, принимать и удалять их. IMAP - это POP на стероидах. Он позволяет вам легко манипулировать бюджетами, разрешать доступ нескольких людей к одному бюджету, оставлять сообщения на сервере, скачивая только их заголовки, тела, без присоединенных файлов или с ними. IMAP идеален для всех кому серьезно нужна почта. По умолчанию POP и IMAP сервера, которые поставляются с большинством дистрибутивов делают больше, чем нужно.
Эти инструкции предполагают.
Unix-совместимые команды.
Путь к исходным кодам ⌠/var/tmp■ (возможны другие варианты).
Инсталляция была проверена на Red Hat Linux 6.1 и 6.2.
Все шаги инсталляции осуществляются суперпользователем ⌠root■.
IMAP версии 4.7c
Пакеты.
Домашняя страница IMAP/POP: http://www.washington.edu/imap/
FTP сервер IMAP/POP: 140.142.3.227 или 140.142.4.227
Вы должны скачать: imap.tar.Z
Предварительные условия.
Sendmail сервер должен быть уже установлен на вашей системе.
Хорошей идеей будет создать список файлов установленных в вашей системе до
инсталляции Sendmail и после, в результате, с помощью утилиты diff вы
сможете узнать какие файлы были установлены. Например,
До инсталляции:
find /* > Imap1
После инсталляции:
find /* > Imap2
Для получения списка установленных файлов:
diff Imap1 Imap2 > Imap-Installed
Раскроем тарбол (tar.Z).
[root@deep /]# cp imap.tar.Z /var/tmpПерейдите в новый IMAP/POP каталог и введите следующие команды на вашем терминале:
Шаг 1Редактируйте файл Makefile (vi +719 src/osdep/unix/Makefile) и измените следующую строку:
sh -c '(test -f /usr/include/sys/statvfs.h -a $(OS) != sc5 -a $(OS) != sco) && $(LN) flocksun.c flockbsd.c || $(LN) flocksv4.c flockbsd.c'
Эта модификация изменит файл ⌠sys/stavfs■. Этот файл, с новой glibc 2.1 из Linux отличается от доступной на Sun.
Редактируйте файл Makefile (vi +354 src/osdep/unix/Makefile) и измените следующую строку:
BASECFLAGS="-g -fno-omit-frame-pointer -O6 -DNFSKLUDGE" \
Должна быть:
BASECFLAGS="-g -fno-omit-frame-pointer -O9 -funroll-loops -ffast-math -malign-double -mcpu= pentiumpro -march=pentiumpro -fomit-frame-pointer -fno-exceptions -DNFSKLUDGE" \
Это наши оптимизационные флаги для компиляции программ IMAP/POP на сервере.
Редактируйте файл Makefile (vi +61 src/osdep/unix/Makefile) и измените следующие строки:
ACTIVEFILE=/usr/lib/news/active
Должна быть:
ACTIVEFILE=/var/lib/news/active
SPOOLDIR=/usr/spool
Должна быть:
SPOOLDIR=/var/spool
RSHPATH=/usr/ucb/rsh
Должна быть:
RSHPATH=/usr/bin/rsh
LOCKPGM=/etc/mlock
Должна быть:
#LOCKPGM=/etc/mlock
⌠ACTIVEFILE=■строка определяет путь ⌠активного■ каталога для IMAP/POP, ⌠SPOOLDIR=■где вы разместите ⌠spool■ каталог Linux IMAP/POP, ⌠RSHPATH=■определяет путь каталога ⌠rsh■ на вашей системе. Важно заметить, что мы не используем сервис rsh на нашем сервере, но даже в этом случае, мы должны определить правильный путь до ⌠rsh■.
Редактируйте файл Makefile (vi +89 src/osdep/unix/Makefile) и измените строку:
CC=cc
Должна быть:
CC=egcs
Эта строка определяет имя нашего GCC компилятора, который мы будем использовать при компиляции программ IMAP/POP (в нашем случае egcs).
Шаг 2Сейчас мы должны компилировать и инсталлировать IMAP & POP на почтовом сервере:
[root@deep imap-4.7c]# make lnpВышеприведенные команды будут конфигурировать программу, проверяя, что ваша система имеет необходимые библиотеки и способна выполнять необходимые функции, компилирует все исходные файлы в исполняемые двоичные, и затем, инсталлирует все двоичные и вспомогательные файлы в определенное место.
Заметим, что команда ⌠make lnp■ будет настраивать программу под вашу Linux систему с поддержкой Pluggable Authentication Modules (PAM) для лучшей безопасности.
Команда ⌠mkdir■ создаст новый каталог с именем ⌠imap■ в ⌠/usr/include■. Этот новый каталог ⌠imap■ будет содержать все заголовочные файлы связанные с программой imapd файлы ⌠c-client/*■ и ⌠shortsym.h■.
Команда ⌠chown■ изменит владельца исполняемых программ ⌠ipop2d■, ⌠ipop3d■ и ⌠imapd■ на пользователя ⌠root■ и группу ⌠mail■.
Команда ⌠ln -fs■ создаст символическую ссылку ⌠libimap.a■ к файлу ⌠c-client.a■, которая может потребоваться для некоторых других программ, которые мы будем инсталлировать в будущем.
ЗАМЕЧАНИЕ. Из соображений безопасности, если вы используете только imapd сервис, удалите двоичные файлы ipop2d и ipop3d. Тоже верно и для ipopd; если вы используете только ipopd сервис, удалите исполняемый файл imapd. Если же вы используете оба сервиса (imapd и ipopd), то оставьте оба двоичных файла.
Команды ⌠rm■ будет удалять все файлы с исходными кодами, которые мы использовали при компиляции и инсталляции IMAP/POP. Также будет удален сжатый архив IMAP/POP из каталога ⌠/var/tmp■.
Все программное обеспечение, описанное в книге, имеет определенный каталог и подкаталог в архиве ⌠floppy.tgz■, включающей все конфигурационные файлы для всех программ. Если вы скачаете этот файл, то вам не нужно будет вручную воспроизводить файлы из книги, чтобы создать свои файлы конфигурации. Скопируйте файл связанные с IMAP/POP из архива, измените их под свои требования и поместите в нужное место так, как это описано ниже. Файл с конфигурациями вы можете скачать с адреса: http://www.openna.com/books/floppy.tgz
Для запуска IMAP/POP сервера следующие файлы должны быть созданы или скопированы в нужный каталог:
Копируйте файл imap в каталог ⌠/etc/pam.d/■, если вы планируете использовать
imapd сервис.
Копируйте файл pop в каталог ⌠/etc/pam.d/■, если вы планируете использовать
popd сервис.
Вы можете взять эти файлы из нашего архива floppy.tgz.
Сконфигурируем ваш файл ⌠/etc/pam.d/imap■ для использования pam аутентификации.
Создайте файл imap (touch /etc/pam.d/imap) и добавьте в него:
#%PAM-1.0 auth required /lib/security/pam_pwdb.so shadow nullok account required /lib/security/pam_pwdb.so
ЗАМЕЧАНИЕ. Этот файл нужен, если вы хотите использовать IMAP сервис.
Сконфигурируем ваш файл ⌠/etc/pam.d/pop■ для использования pam аутентификации.
Создайте файл pop (touch /etc/pam.d/pop) и добавьте в него:
#%PAM-1.0 auth required /lib/security/pam_pwdb.so shadow nullok account required /lib/security/pam_pwdb.so
ЗАМЕЧАНИЕ. Этот файл нужен, если вы хотите использовать POP сервис.
Tcp-wrappers берет на себя заботу о запуске и остановке IMAP или POP серверов. При запуске, inetd читает конфигурационную информацию из файла ⌠/etc/inetd.conf■. Этот файл содержит поля разделяемые символами табуляции или пробелами.
Шаг 1Редактируйте файл inetd.conf (vi /etc/inetd.conf) и добавьте или раскомментируйте строки, связанные с сервисами, которые вы хотите включить. Если вы хотите использовать IMAP тогда раскомментируйте строку, связанную с ним, если же вы хотите использовать POP, тогда раскомментируйте его вместо IMAP. В нашем примере мы используем IMAP сервис.
#pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d #pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d imap stream tcp nowait root /usr/sbin/tcpd imapd
Не забудьте после обновления вашего файла ⌠inetd.conf■ послать процессу inetd
сигнал SIGHUP (killall -HUP inetd).
Чтобы изменения вступили в силу перезапустите процесс inetd, используя
следующую команду:
Если вы хотите инсталлировать IMAP/POP сервер обслуживания ограниченного числа известных реальных IP адресов клиентов, то можно использовать возможности tcp-wrapper-а. Если вы планируете обслуживать dial-up клиентов или сервис Webmail, тогда вы не сможете использовать эти возможности.
Редактируйте файл hosts.deny (vi /etc/hosts.deny) и добавьте следующую строку:
ALL: ALL@ALL, PARANOIDКоторая говорит, что все сервисы, все месторасположения клиентов будут заблокированы, пока не будет непосредственного разрешения в файле ⌠hosts.allow■.
Редактируйте файл hosts.allow (vi /etc/hosts.allow) и добавьте следующую строку:
imapd: 216.209.228.34 my.domain.comКоторая говорит, что только клиентам с IP адресом ⌠216.209.228.34■ и именем хоста ⌠my.domain.com■ будет разрешен доступ к IMAP сервису на сервере.
Знайте, что IMAP/POP программы используют по умолчанию пароли в текстовом формате. Любой, кто запустит сниффер на вашей сети сможет перехватить имя/пароль и использовать их для подключения к серверу. Проверьте вашу конфигурацию, и если вы используете внешний/удаленный IMAP/POP сервер, то деинсталлируйте IMAP/POP с вашей системы.
К сожалению из-за экспортных ограничений правительства США, IMAP с поддержкой SSL сейчас не доступен. Существуют пакеты предоставляемые третьими производителями, которые позволяют использовать сессии IMAP и POP3 через SSL. Одним из них является WebMail IMP, Веб интерфейс которого позволяет читать почту через Интернет, используя Веб броузер. WebMail IMP использует протокол SSL для шифрования трафика с IMAP/POP сервером. Смотрите главу 20 ⌠Опциональные компоненты устанавливаемые с веб-сервером Apache■ для получения большей информации по этой теме.
Для получения более подробной информации вы можете прочитать следующие страницы руководства:
$ man imapd (8C) √ сервер Internet Message Access Protocol (IMAP)
$ man ipopd (8C) √ сервер Post Office Protocol (POP)
> /etc/pam.d/imap > /etc/pam.d/pop > /usr/include/imap > /usr/include/imap/dummy.h > /usr/include/imap/env.h > /usr/include/imap/env_unix.h > /usr/include/imap/fdstring.h > /usr/include/imap/flstring.h > /usr/include/imap/fs.h > /usr/include/imap/ftl.h > /usr/include/imap/imap4r1.h > /usr/include/imap/linkage.h > /usr/include/imap/lockfix.h > /usr/include/imap/mail.h > /usr/include/imap/mbox.h > /usr/include/imap/mbx.h > /usr/include/imap/mh.h > /usr/include/imap/misc.h > /usr/include/imap/mmdf.h > /usr/include/imap/mtx.h > /usr/include/imap/mx.h > /usr/include/imap/netmsg.h > /usr/include/imap/news.h > /usr/include/imap/newsrc.h > /usr/include/imap/nl.h > /usr/include/imap/nntp.h > /usr/include/imap/os_a32.h > /usr/include/imap/os_a41.h > /usr/include/imap/os_aix.h > /usr/include/imap/os_aos.h > /usr/include/imap/os_art.h > /usr/include/imap/os_asv.h > /usr/include/imap/os_aux.h > /usr/include/imap/os_bsd.h > /usr/include/imap/os_bsi.h > /usr/include/imap/os_cvx.h > /usr/include/imap/os_d-g.h > /usr/include/imap/os_do4.h > /usr/include/imap/os_drs.h > /usr/include/imap/os_dyn.h > /usr/include/imap/os_hpp.h > /usr/include/imap/os_isc.h > /usr/include/imap/os_lnx.h > /usr/include/imap/os_lyn.h > /usr/include/imap/os_mct.h > /usr/include/imap/os_mnt.h > /usr/include/imap/os_nxt.h > /usr/include/imap/os_os4.h > /usr/include/imap/os_osf.h > /usr/include/imap/os_ptx.h > /usr/include/imap/os_pyr.h > /usr/include/imap/os_qnx.h > /usr/include/imap/os_s40.h > /usr/include/imap/os_sc5.h > /usr/include/imap/os_sco.h > /usr/include/imap/os_sgi.h > /usr/include/imap/os_shp.h > /usr/include/imap/os_slx.h > /usr/include/imap/os_sol.h > /usr/include/imap/os_sos.h > /usr/include/imap/os_sun.h > /usr/include/imap/os_sv2.h > /usr/include/imap/os_sv4.h > /usr/include/imap/os_ult.h > /usr/include/imap/os_vu2.h > /usr/include/imap/osdep.h > /usr/include/imap/phile.h > /usr/include/imap/pop3.h > /usr/include/imap/pseudo.h > /usr/include/imap/rfc822.h > /usr/include/imap/smtp.h > /usr/include/imap/tcp.h > /usr/include/imap/tcp_unix.h > /usr/include/imap/tenex.h > /usr/include/imap/unix.h > /usr/include/imap/utf8.h > /usr/include/imap/shortsym.h > /usr/lib/c-client.a > /usr/lib/libimap.a > /usr/man/man8/ipopd.8c > /usr/man/man8/imapd.8c > /usr/sbin/ipop2d > /usr/sbin/ipop3d > /usr/sbin/imapd
Назад | Оглавление | Вперед |