Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #69, АВГУСТ 2006 г.

пламенный почтовик

ВОЛЬФ Д. А. AKA PAYHASH

Спецвыпуск: Хакер, номер #069, стр. 069-040-6


#define AUTH_PASSWD 0

#define AUTH_SHADOW 1

#define AUTH_PAM 0

#define AUTH_PAM_USERPASS 0

#define USE_LIBPAM_USERPASS 0

После чего приводим строчки в такой вид (cохраняем и выходим из редактора):

#define AUTH_PASSWD 1

#define AUTH_SHADOW 0

#define AUTH_PAM 0

#define AUTH_PAM_USERPASS 0

#define USE_LIBPAM_USERPASS 0

Теперь открываем файл Makefile на редактирование. Раскомментируем строчки: CFLAGS += -DHAVE_OPENSSL, LIBS += -lcrypt, LIBS += -lcrypto. Все, теперь можно компилировать и инсталлировать программу.

После того, как мы поставили и запустили popa3d, нужно установить еще один программный продукт, который будет заниматься шифрованием POP3-трафика. Наиболее доступным и достаточно простым в использовании для организации SSL является программа Stunnel. Можно поставить ее непосредственно из исходных кодов, но лучше сделать это из программных портов FreeBSD: /usr/ports/security/stunnel.

Вот мы и установили stunnel без всякого физического напряжения.

Создаем конфигурационный файл /usr/local/etc/stunnel/stunnel.conf и открываем его на редактирование. В файл вписываем следующие строчки:

cert = /usr/local/etc/stunnel/stunnel.crt

key = /usr/local/etc/stunnel/stunnel.pem

;RNDfile = /usr/local/etc/stunnel/stunnel.rnd

chroot = /usr/local/var/stunnel/

setuid = stunnel

setgid = stunnel

pid = /run/stunnel.pid

output = /var/log/stunnel.log

ciphers = HIGH

debug = 6

compression = rle

[pop3s]

accept = 995

connect = 127.0.0.1:110

А теперь - создаем chroot директорию и устанавливаем соответствующие права:

terminal# cd /usr/local/var && mkdir stunnel && cd stunnel

terminal# mkdir etc && touch hosts.allow

terminal# mkdir run

terminal# chown -R stunnel:stunnel run

В файл /usr/local/var/stunnel/hosts.allow пишем следующие строчки:

pop3s : ALL : allow

ALL : ALL : deny

В каталоге /usr/local/etc/stunnel/ создаем пару ключей stunnel.key (stunel.pem) ,stunel.csr, а также сертификат stunel.crt – это мы уже научились делать. Назначаем необходимые права на ключ. Если мы правильно установили popa3d(согласно документации по установке), то файл /etc/inetd.conf должен содержать строчку:

pop3 stream tcp nowait root /usr/local/sbin/popa3d popa3d

Все что нам остается - это перезагрузить демон inetd со следующими параметрами:

-wWa 127.0.0.1, далее запускаем демон Stunnel:

terminal# /usr/local/sbin/stunnel \ usr/local/etc/stunnel/stunnel.conf

Если в системе порт 995 не «забиндился», значит что-то было упущено, и нужно зачитать логи stunnel. Если все заработало, то можно проверять с помощью s_client наличие предоставляемого сертификата сервисом:

terminal# openssl s_client -host localhost -port 995

Вкратце объясним, как работает данный механизм. Дело в том, что демон inetd делает службу popa3d доступной только из локального адреса, в свою очередь, демон stunel подключается к службе pop3 и становится посредником между клиентом и pop3-службой, организуя шифрованное соединение между собой и клиентом, на своем порту (в данном случае – 995). Все просто и тривиально.

Назад на стр. 069-040-5  Содержание  Вперед на стр. 069-040-7