LINUX-сервер пошаговые инструкции инсталляции и настройки - Бруй В. В. , Карлов С. В
..pdf
Глава 27. Exim – почтовый транспортный агент |
401 |
Рис. 27.3 Включение поддержки безопасного соединения с использованием протокола SSL в Microsoft Outlook Express 6.
Конфигурирование Exim в качестве локального почтового сервера
В данном случае под локальным (т. е. обслуживающим только локальных пользователей) почтовым сервером понимается почтовый сервер, который выполняет следующие функции:
• принимает сообщения от локальных пользователей, генерируемых запущенными на сервере служ-
бами;
•отправляет сообщения от локальных пользователей на центральный почтовый концентратор сети или другой почтовый сервер, настроенный для доставки сообщений администратору сервера;
•не принимает входящих сообщений от внешних пользователей.
Эта конфигурация для повышения безопасности обычно используется на всех серверах, не являющихся центральными почтовыми концентраторами.
Конфигурирование Exim для использования в режиме локального почтового сервера осуществляется аналогично конфигурированию центрального почтового концентратора.
Для того, чтобы сервер не принимал сообщений из вне в файле /etc/sysconfig/exim строку:
DAEMON= "-bd"
замените на: daemon=""
402 |
Часть 7. Программное обеспечение для организации службы электронной почты |
Глава 28
Qpopper –программное обеспечение для организации получения почтовыми клиентскими программами сообщений электронной почты
В этой главе:
1. Ограничения и допущения
2.Пакеты
3.Компиляция, оптимизация и инсталляция Qpopper
4.Конфигурирование Qpopper
5.Конфигурационный файл /etc/qpopper.conf
6.Конфигурационный файл /etc/pam.d/pop3
7.Конфигурационный файл /etc/sysconfig/qpopper
8.Файл инициализации /etc/init.d/qpopper
9.Тестирование Qpopper
10. Запуск Qpopper с поддержкой SSL
Глава 28. Qpopper – программное обеспечение для организации получения... |
403 |
Qpopper – популярный, высокопроизводительный и надежный сервер от QUALCOMM Incorporated, предназначенный для организации получения сообщений электронной почты клиентскими почтовыми программами с использованием протокола POP3. Вам необходимо установить эту программу для того, чтобы пользователи с удаленных систем могли получать почту с вашего центрального почтового концентратора, используя установленные на рабочих станциях клиентские почтовые программы (Mail User Agent, MUA).
Ограничения и допущения
Исходные коды находятся в каталоге /var/tmp.
Все операции выполняются пользователем с учетной записью root. Используется дистрибутив ASPLinux 7.3 (Vostok).
Перекомпиляция ядра не требуется.
Процедуры, описанные в этой главе, могут оказаться применимыми для других версий ядра и дистрибутивов Linux, но авторы этого не проверяли.
Пакеты
Последующие рекомендации основаны на информации, полученной с домашней страницы проекта Qpopper по состоянию на 22.06.2003. Регулярно посещайте домашнюю страницу проекта http://www.qpopper.org/qpopper/ и отслеживайте обновления.
Исходные коды Qpopper содержатся в архиве qpopperversion.tar.gz (последняя доступная на момент написания главы стабильная версия qpopper4.0.5.tar.gz).
Для нормальной инсталляции и работы Qpopper необходима установка DNS-сервера ISC BIND и почтового транспортного агента Exim. Для использования Qpopper c поддержкой протокола TSL/SSL необходима установка программы OpenSSL.
Компиляция, оптимизация и инсталляция Qpopper
Для инсталляции Qpopper необходимо выполнить следующие операции.
Шаг 1 Осуществите проверку подлинности имеющегося в вашем распоряжении архива с исходными кода-
ми, используя процедуры, описанные в шаге 1 радела «Компиляция, оптимизация и инсталляция OpenSSL» главы 12.
Шаг 2
Распакуйте архивы с исходными кодами Qpopper в каталоге /var/tmp:
[root@test tmp]# tar xzpf qpopper4.0.5.tar.gz
[root@test tmp]# cd qpopper4.0.5
Шаг 3
Отконфигурируйте исходные коды Qpopper:
[root@test qpopper4.0.5]# CFLAGS="-O2 -march=i686 -funroll-loops"; export
CFLAGS
./configure \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --mandir=/usr/share/man \
--enable-cache-dir=/var/spool/mail \ --enable-log-login \ --enable-specialauth \
--enable-shy \ --enable-standalone \ --enable-timing \ --enable-uw-kludge \ --enable-servermode \ --enable-fast-update \
--enable-temp-drop-dir=/var/spool/mail \ --disable-old-spool-loc \ --disable-status \
--with-pam \
404 |
Часть 7. Программное обеспечение для организации службы электронной почты |
|
--with-openssl |
Шаг 4
Откомпилируйте, проинсталлируйте Qpopper, создайте и сохраните в надежном месте список установленных файлов:
[root@test qpopper4.0.5]# make
[root@test qpopper4.0.5]# find /* > /root/qpopper1 [root@test qpopper4.0.5]# make install
[root@test qpopper4.0.5]# find /* > /root/qpopper2
[root@test qpopper4.0.5]# diff /root/qpopper1 /root/qpopper2>
/root/qpopper.installed
[root@test qpopper4.0.5]# mv /root/qpopper.installed
/very_reliable_place/qpopper.installed.YYYYMMDD
Шаг 5 Удалите архивы и каталоги с исходными кодами программ:
[root@test qpopper4.0.5]# cd /var/tmp/
[root@test tmp]# rm -rf qpopper4.0.5/ [root@test tmp]# rm -f qpopper4.0.5.tar.gz
Конфигурирование Qpopper
Конфигурирование программы Qpopper осуществляется с использованием следующих файлов:
•главного конфигурационного файла /etc/qpopper.conf;
•файла поддержки аутентификации пользователей с использованием модулей PAM
/etc/pam.d/pop3;
•системного конфигурационного файла /etc/sysconfig/qpopper;
•файла инициализации /etc/init.d/qpopper.
Конфигурационный файл /etc/qpopper.conf
Шаг 1
Создайте файл /etc/qpopper.conf, отредактируйте строки, руководствуясь приведенными ниже
рекомендациями и вашими потребностями: |
|
set clear-text-password |
= default |
set reverse-lookup |
= false |
set tls-support |
= default |
set chunky-writes |
= never |
В этом файле строка: |
|
set clear-text-password |
= default |
разрешает использование паролей в текстовом формате для всех пользователей. Опция set clear-text- password также может принимать следующие значения:
• |
never |
– запрещает использование паролей в текстовом формате; |
|
• |
always |
– разрешает использовать пароли в текстовом формате; |
|
• |
local |
– разрешает использование паролей в текстовом формате только для локальных пользова- |
|
телей; |
|
|
|
• |
tls |
– означает, что пароли должны шифроваться с использованием протокола TSL/SSL. |
|
Строка: |
|
|
|
set reverse-lookup |
= false |
||
для увеличения производительности запрещает определение доменных имен хостов, устанавливающих соединение.
Строка: |
|
|
set tls-support |
= |
default |
отключает поддержку протоколов TSL/SSL. |
|
|
Строка: |
|
|
set chunky-writes |
= |
never |
запрещает объединение данных, отправляемых клиентам, в большие фрагменты.
Шаг 2
Глава 28. Qpopper – программное обеспечение для организации получения... |
405 |
Определите права доступа к файлу /etc/qpopper.conf и назначьте его владельцем пользователя
root:
[root@test /]# chmod 640 /etc/qpopper.conf [root@test /]# chown 0.0 /etc/qpopper.conf
Конфигурационный файл /etc/pam.d/pop3
Шаг 1
Создайте файл /etc/pam.d/pop3, содержащий следующие строки:
#%PAM-1.0 |
|
|
auth |
required |
/lib/security/pam_pwdb.so shadow |
account |
required |
/lib/security/pam_pwdb.so |
password |
required |
/lib/security/pam_cracklib.so |
password |
required |
/lib/security/pam_pwdb.so nullok |
use_authtok md5 shadow |
|
|
session |
required |
/lib/security/pam_pwdb.so |
Шаг 2
Определите права доступа к файлу /etc/pam.d/pop3 и назначьте его владельцем пользователя
root:
[root@test /]# chmod 640 /etc/pam.d/pop3 [root@test /]# chown 0.0 /etc/pam.d/pop3
Конфигурационный файл /etc/sysconfig/qpopper
Шаг 1
Создайте файл /etc/sysconfig/qpopper, содержащий следующие строки:
#The IP address & port number on which the Qpopper daemon will listen
#can be specified here. The default port number is "110", for POP3 with
#SSL support (POP3s), the port number must be "995" instead of "110". #IPADDR="127.0.0.1:110"
IPADDR="0.0.0.0:110"
#IPADDR="0.0.0.0:995"
#Where our Qpopper configuration file (qpopper.conf) is located. OPTIONS="-f /etc/qpopper.conf"
Шаг 2
Определите права доступа к файлу /etc/sysconfig/qpopper и назначьте его владельцем пользователя root:
[root@test /]# chmod 640 /etc/sysconfig/qpopper [root@test /]# chown 0.0 /etc/sysconfig/qpopper
Файл инициализации /etc/init.d/qpopper
Шаг 1
Создайте файл /etc/init.d/qpopper, содержащий следующие строки:
#!/bin/bash
#This shell script takes care of starting and stopping Qpopper POP3 protocol.
#chkconfig: 345 50 50
#description: Qpopper supports the widely used POP3 protocol for downloading \
# |
Internet e-mail used by many popular e-mail clients. |
# |
|
#processname: popper
#config: /etc/qpopper.conf
#pidfile: /var/run/popper.pid
#Source function library.
. /etc/init.d/functions
406 |
Часть 7. Программное обеспечение для организации службы электронной почты |
#Source networking configuration.
. /etc/sysconfig/network
#Source for additional options if we have them. if [ -f /etc/sysconfig/qpopper ] ; then
. /etc/sysconfig/qpopper
fi
#Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
#If Qpopper is not available stop now. [ -f /usr/sbin/popper ] || exit 0
#Path to the Qpopper binary. popper=/usr/sbin/popper
RETVAL=0
prog="Qpopper"
start() {
echo -n $"Starting $prog: " daemon $popper $IPADDR $OPTIONS RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/popper return $RETVAL
}
stop() {
echo -n $"Shutting down $prog: " killproc $popper
RETVAL=$? echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/popper return $RETVAL
}
# See how we were called. case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $popper RETVAL=$?
;;
restart) stop start
RETVAL=$?
;;
condrestart)
if [ -f /var/lock/subsys/popper ]; then stop
start RETVAL=$?
fi
;;
*)
Глава 28. Qpopper – программное обеспечение для организации получения... |
407 |
echo $"Usage: $0 {start|stop|status|restart|condrestart}" exit 1
esac
exit $RETVAL
Шаг 2
Определите права доступа к файлу /etc/init.d/qpopper и назначьте его владельцем пользователя root:
[root@test /]# chmod 700 /etc/init.d/qpopper [root@test /]# chown 0.0 /etc/init.d/qpopper
Шаг 3
Для автоматического запуска Qpopper при загрузке системы создайте необходимые ссылки:
[root@test /]# chkconfig --add qpopper [root@test /]# chkconfig --level 345 qpopper on
Тестирование Qpopper
Шаг 1
Проверьте наличие, а при необходимости добавьте в файл /etc/shells строку:
/bin/false/
Шаг 2 На центральном почтовом концентраторе создайте пользователя, которому разрешается получение
сообщений:
[root@test /]# useradd -g users -s /bin/false polyakoff [root@test /]# passwd polyakoff
Changing password for user polyakoff New UNIX password: Secretnoe_$L0VO
Retype new UNIX password: Secretnoe_$L0VO
passwd: all authentication tokens updated successfully
Шаг 3
Запустите Qpopper:
[root@test /]# /etc/init.d/qpopper start
Запускается Qpopper: [ОК]
Шаг 4
Просканируйте порты вашего почтового концентратора с помощью сканера портов, например, nmap
(http:// www.insecure.org/nmap/):
[root@test root]# nmap test.bruy.info
Если POP-сервер ожидает подключений на 110 порту, то вы получите сообщение следующего вида:
Starting nmap V. 2.54BETA34 ( www.insecure.org/nmap/ ) Interesting ports on test.bruy.info (212.111.80.127):
(The 1554 ports scanned but not shown below are in state: closed)
Port |
|
State |
Service |
110/tcp |
open |
pop-3 |
|
Nmap |
run completed -- 1 IP address (1 host up) scanned in 1 second |
||
Шаг 5 На удаленной системе настройте клиентскую почтовую программу на использование в качестве
SMTP и POP-сервера вашего почтового концентратора. Отправьте с ее помощью сообщение пользователю, например, polyakoff. Через некоторое время проверьте почту. Если вы получили сообщение, то POPсервер работает нормально.
Запуск Qpopper с поддержкой SSL
По умолчанию Qpopper использует пароли в обычном текстовом формате. Злоумышленник, перехватывая пакеты с помощью программы-снифера, может определить имена и пароли пользователей вашего
408 |
Часть 7. Программное обеспечение для организации службы электронной почты |
центрального почтового концентратора и использовать их для получения доступа к почте и выполнения других несанкционированных действий. Для установки шифрования трафика между клиентской почтовой программой и POP-сервером необходимо включить поддержку протокола SSL. Для этого предлагается выполнить следующие операции.
Шаг 1 Для создания самостоятельно подписанного сертификата необходимо наличие собственного серти-
фикационного центра. Если вы его уже создали, то перейдите к следующему шагу. В противном случае ознакомьтесь с рекомендациями раздела «Тестирование OpenSSL» главы 12 и создайте собственный сертификационный центр.
Шаг 2 Создайте самостоятельно подписанный незащищенный паролем сертификат:
[root@test /]# cd /usr/share/ssl
[root@test ssl]# openssl req -new -x509 -nodes -days 365 -out tmp.pem
Generating a 1024 bit RSA private key
.................................................++++++
.........................................................................
................++++++
writing new private key to 'privkey.pem'
-----
You are about to be asked to enter information that will be incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [RU]:<Enter>
State or Province Name (full name) [Moscow]:<Enter> Locality Name (eg, city) [Yubileyniy]:<Enter> Organization Name (eg, company) [Valentine Bruy]:<Enter> Organizational Unit Name (eg, section) [Home]:<Enter> Common Name (eg, YOUR name) [test.bruy.info]:<Enter>
Email Address [drwalbr@bruy.info]: drwalbr@test.bruy.info <Enter>
Шаг 3
Добавьте в конец файла privkey.pem раздел "certificate" из файла tmp.pem:
[root@test ssl]# cat tmp.pem >> privkey.pem
Шаг 4
Поместите файл /usr/share/ssl/privkey.pem сертификата в каталог certs, переименуйте его в pop3.pem, установите права доступа к файлу и удалите более ненужный файл tmp.pem:
[root@test ssl]# mv privkey.pem certs/pop3.pem [root@test ssl]# chmod 400 certs/pop3.pem
[root@test ssl]# rm -f tmp.pem
Шаг 5
Файл /etc/qpopper.conf отредактируйте следующим образом:
set clear-text-password |
= tls |
||
set reverse-lookup |
= false |
||
set tls-support |
= alternate-port |
||
set |
tls-server-cert-file |
= |
"/usr/share/ssl/certs/pop3.pem" |
set |
chunky-writes |
= |
tls |
Шаг 6
В файле /etc/sysconfig/qpopper:
Замените строку:
IPADDR = "0.0.0.0:110"
на:
IPADDR = "0.0.0.0:995"
Глава 28. Qpopper – программное обеспечение для организации получения... |
409 |
|
Шаг 7 |
|
|
Перезапустите Qpopper: |
|
|
[root@test /]# /etc/init.d/qpopper restart |
[ОК] |
|
Останавливается Qpopper: |
|
|
Запускается Qpopper: |
[ОК] |
|
Шаг 8
Просканируйте порты вашего почтового концентратора с помощью сканера портов, например, nmap
(http:// www.insecure.org/nmap/):
[root@test /]# nmap test.bruy.info
Если POP-сервер ожидает подключений с поддержкой протокола SSL на 995 порту, то вы получите сообщение следующего вида:
Starting nmap V. 2.54BETA34 ( www.insecure.org/nmap/ ) Interesting ports on test.bruy.info (212.111.80.127):
(The 1554 ports scanned but not shown below are in state: closed)
Port |
|
State |
Service |
995/tcp |
open |
pop3s |
|
Nmap |
run completed -- 1 IP address (1 host up) scanned in 1 second |
||
Шаг 9 Проверьте работоспособность сертификата:
[root@test /]# cd /usr/share/ssl
[root@test ssl]# openssl
OpenSSL> s_client –host test.bruy.info –port 995
Если вы получите сообщение такого вида:
CONNECTED(00000003)
depth=0 subject=/C=RU/ST=Moscow/L=Yubileyniy/O=Valentine Bruy/OU=Home/CN=test.bruy.info/emailAddress=drwalbr@test.bruy.info issuer=/C=RU/ST=Moscow/L=Yubileyniy/O=Valentine Bruy/OU=Home/CN=test.bruy.info/emailAddress=drwalbr@test.bruy.info verify error:num=18:self signed certificate
verify return:1 =/C=RU/ST=Moscow/L=Yubileyniy/O=Valentine Bruy/OU=Home/CN=test.bruy.info/emailAddress=drwalbr@test.bruy.info issuer=/C=RU/ST=Moscow/L=Yubileyniy/O=Valentine Bruy/OU=Home/CN=test.bruy.info/emailAddress=drwalbr@test.bruy.info
---
Certificate chain
0 s:/C=RU/ST=Moscow/L=Yubileyniy/O=Valentine Bruy/OU=Home/CN=test.bruy.info/emailAddress=drwalbr@test.bruy.info issuer=/C=RU/ST=Moscow/L=Yubileyniy/O=Valentine Bruy/OU=Home/CN=test.bruy.info/emailAddress=drwalbr@test.bruy.info
i: :/C=RU/ST=Moscow/L=Yubileyniy/O=Valentine Bruy/OU=Home/CN=test.bruy.info/emailAddress=drwalbr@test.bruy.info issuer=/C=RU/ST=Moscow/L=Yubileyniy/O=Valentine Bruy/OU=Home/CN=test.bruy.info/emailAddress=drwalbr@test.bruy.info
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDqjCCAxOgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMCUlUx
DzANBgNVBAgTBk1vc2NvdzETMBEGA1UEBxMKWXViaWxleW5peTEXMBUGA1UEChMO
VmFsZW50aW5lIEJydXkxDTALBgNVBAsTBEhvbWUxFzAVBgNVBAMTDnRlc3QuYnJ1
eS5pbmZvMSUwIwYJKoZIhvcNAQkBFhZkcndhbGJyQHRlc3QuYnJ1eS5pbmZvMB4X
DTAzMDYwNjEyMjc0M1oXDTA0MDYwNTEyMjc0M1owgZsxCzAJBgNVBAYTAlJVMQ8w
DQYDVQQIEwZNb3Njb3cxEzARBgNVBAcTCll1YmlsZXluaXkxFzAVBgNVBAoTDlZh
bGVudGluZSBCcnV5MQ0wCwYDVQQLEwRIb21lMRcwFQYDVQQDEw50ZXN0LmJydXku
aW5mbzElMCMGCSqGSIb3DQEJARYWZHJ3YWxickB0ZXN0LmJydXkuaW5mbzCBnzAN
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAzvmLMuOeBKpoCi87tzsd9Q3J6g1gWHFQ
FFI8dTR9Wpnn4UZfOsUg7c01PR7vEZSkap5X1wkJ3mQRYB+7XnDHfcQ34jjqUXyj
410 |
Часть 7. Программное обеспечение для организации службы электронной почты |
||
|
Y7xCRy5mVr8vg5qsTn2uG6vePThci8Lgjz1cEbafh+k2o/W73RIrYJou4x3YNUs1 |
|
|
|
BbvKUSahFdsCAwEAAaOB+zCB+DAdBgNVHQ4EFgQUtJuuHibUU9UUJOalwV+Eg1Kg |
|
|
|
KfIwgcgGA1UdIwSBwDCBvYAUtJuuHibUU9UUJOalwV+Eg1KgKfKhgaGkgZ4wgZsx |
|
|
|
CzAJBgNVBAYTAlJVMQ8wDQYDVQQIEwZNb3Njb3cxEzARBgNVBAcTCll1YmlsZXlu |
|
|
|
aXkxFzAVBgNVBAoTDlZhbGVudGluZSBCcnV5MQ0wCwYDVQQLEwRIb21lMRcwFQYD |
|
|
|
VQQDEw50ZXN0LmJydXkuaW5mbzElMCMGCSqGSIb3DQEJARYWZHJ3YWxickB0ZXN0 |
|
|
|
LmJydXkuaW5mb4IBADAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4GBAKL1 |
|
|
|
il+jCyUEtfWjwsg93r8HysD16FO8ort74h9tJIqjoVSazuOR957J5RfPpakTW86X |
|
|
|
rDW66NdLDRzRdmAyDGfrY2gCYQMYyG5StPJChys8Xwgz1TcuaC9W/B3j1xVotOTh |
|
|
|
6sZcya6zKHw3hDD6CegMe5WsFeolx9REb1FPG2Af |
|
|
|
-----END CERTIFICATE----- |
|
|
|
subject=/C=RU/ST=Moscow/L=Yubileyniy/O=Valentine |
|
|
|
Bruy/OU=Home/CN=test.bruy.info/emailAddress=drwalbr@test.bruy.info |
|
|
|
issuer=/C=RU/ST=Moscow/L=Yubileyniy/O=Valentine |
|
|
|
Bruy/OU=Home/CN=test.bruy.info/emailAddress=drwalbr@test.bruy.info |
|
|
|
--- |
|
|
|
No client certificate CA names sent |
|
|
|
--- |
|
|
|
SSL handshake has read 1104 bytes and written 346 bytes |
|
|
|
--- |
|
|
|
New, TLSv1/SSLv3, Cipher is AES256-SHA |
|
|
|
Server public key is 1024 bit |
|
|
|
SSL-Session: |
|
|
|
Protocol |
: TLSv1 |
|
|
Cipher |
: AES256-SHA |
|
|
Session-ID: |
|
|
|
5B5265419B1696D549F5164FCCA3399970D573009A27AD5D2FE45026C661C3DB |
Ses- |
|
|
sion-ID-ctx: |
|
|
|
Master-Key: |
|
|
295C9CBCDF2BBC8851AB64CA1807125DB2705DBE73BA506B88D2FEEA61B1F8DF15F2443C6
00105E56D810B71A48445EA
Key-Arg |
: |
None |
Start Time: |
1056267322 |
|
Timeout |
: |
300 (sec) |
Verify return code: 18 (self signed certificate)
---
+OK ready
то ваш сертификат работает правильно. Завершите соединение с POP-сервером:
Pop > quit
+OK Pop server at test.bruy.info signing off. closed
Шаг 10 На удаленной системе настройте клиентскую почтовую программу на использование в качестве
SMTP и POP-сервера вашего почтового концентратора. Включите поддержку безопасного соединения с использованием протокола SSL. Например, в Microsoft Outlook Express 6 для этого нужно в свойствах учетной записи в настройках POP-сервера выбрать опцию "Подключаться через безопасное соединение SSL" (рис. 28.1).
