пламенный почтовик ВОЛЬФ Д. А. 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). Все просто и тривиально. |