пламенный почтовик ВОЛЬФ Д. А. AKA PAYHASH Спецвыпуск: Хакер, номер #069, стр. 069-040-5
Ну что же, приступим непосредственно к самой сборке и установке sendmail. Переходим из каталога cf/cf/ на два уровня выше и выполняем скрипт Build: terminal# cd ../../ terminal# ./Build -c Далее выполняем Build install: terminal# ./Build install С установкой sendmail покончено. Теперь необходимо выполнить условия, описанные в конфигурационном файле относительно директив confCACERT_PATH,confCACERT,confSERVER_CERT,confSERVER_KEY, confCLIENT_CERT,confCLIENT_KEY. Создаем каталог /etc/mail/certs, копируем в него файлы sendmail.key и sendmail.crt (которые у нас уже имеются) и заходим в этот каталог: terminal# mkdir /etc/mail/certs terminal# cp /tmp/sandbox/sendmail.key /tmp/sandbox/sendmail.crt \ /etc/mail/certs/ terminal# cd /etc/mail/certs Теперь нужно избавиться от пароля в секретном файле sendmail.key. Свершим это при помощи программы rsa: terminal# openssl rsa -in sendmail.key -out sendmail.pem В результате мы получили секретный файл sendmail.pem. И я думаю, что закономерный вопрос, возникший у читателя относительно файла sendmail.pem в конфигурационном файле sendmail.mc, исчерпан :). Назначаем права 700 на каталог с сертификатами /etc/mail/certs, а файлы /etc/sandbox/sendmail.key, /etc/sandbox/sendmail.csr и /etc/sandbox/sendmail.crt нужно удалить: terminal# chmod -R 700 /etc/mail/certs terminal# cd /tmp/sandbox terminal# rm sendmail.key sendmail.csr sendmail.crt Перед тем, как запускать sendmail, нам необходимо создать некоторых хешей и просто файлов, необходимых для работы sendmail. Поэтому изволь почитать соответствующее руководство на нашем диске :). terminal# cd /etc/mail Если файла aliases нет, создаем его: terminal# touch aliases Обязательно делаем newaliases: terminal# newaliases Создаем файл с доверительными и недоверительными хостами: terminal# touch access terminal# makemap hash access.db < access terminal# touch virtusertable terminal# makemap hash virtusertable.db < virtusertable terminal# makemap hash mailertable.db < mailertable terminal# touch local-host-names Осталось только запустить sendmail и проверить наличие поддержки шифрования (если запустить sendmail не получается, возможно, где-то допущена ошибка). Смотрим логи: terminal# sendmail -bd -q10m terminal# openssl s_client -host localhost -port 465 [5 минут – полет нормальный?] Если все прошло нормально, то программа s_client сможет подключиться на порт 465 (защищенный порт SMTP/SSMTP), а нам на экран выпадет сертификат сервера с публичным ключом. SMTP-службу мы защитили, осталось защитить службу POP, иначе теряется весь смысл защиты почтового сервера. В качестве POP-демона мы рекомендуем использовать программу popa3d, написанную русским хакером Solar Designer (Sergey Samoyloff). Программа является официальным дистрибутивом для FreeBSD и находится в портах FreeBSD /usr/ports/mail/popa3d. В исходных кодах по умолчанию popa3d настроена для сборки под Linux-машину, поэтому нужно привести необходимые рекомендации по корректировке этого демона для BSD-систем. Итак, скачиваем последний дистрибутив popa3d с сайта Solar Designer’а www.openwall.com/popa3d. Распаковываем дистрибутив с «попой», заходим в каталог с его исходными кодами, открываем файл params.h на редактирование и находим строчки: |