Настройка Postfix + TLS

Озаботился на днях установки почтового сервера с поддержкой протокола TLS (Transport Layer Security) и SMTP-аутентификации. Ставил на CentOS 5. Итак, начал естественно с

yum install postfix
service saslauthd start

Теперь пойдем по шагам:

  • Генерим сертификаты для TLS:
    mkdir /etc/postfix/ssl
    cd /etc/postfix/ssl/

    openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
    #вводим пароль для нашего файла-ключа smtpd.key

    chmod 600 smtpd.key
    openssl req -new -key smtpd.key -out smtpd.csr
    #снова вводим пароль от smtpd.key, а затем требуемую информацию

    openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
    #снова пароль от smtpd.key

    openssl rsa -in smtpd.key -out smtpd.key.unencrypted
    #и снова пароль от smtpd.key

    mv -f smtpd.key.unencrypted smtpd.key
    openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
    #угадайте что? да, пароль от smtpd.key, и снова доп. информацию


  • Конфигурируем Postfix. Для того, чтобы подключить SMTP-AUTH и TLS пропишите следующие строки в конфиг /etc/postfix/main.cf:

    mynetworks = 127.0.0.0/8
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_security_options = noanonymous
    broken_sasl_auth_clients = yes
    smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
    alias_maps = hash:/etc/aliases
    smtpd_tls_auth_only = yes
    smtp_use_tls = yes
    smtpd_use_tls = yes
    smtp_tls_note_starttls_offer = yes
    smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
    smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
    smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
    smtpd_tls_loglevel = 1
    smtpd_tls_received_header = yes
    smtpd_tls_session_cache_timeout = 3600s
    tls_random_source = dev:/dev/urandom


  • Завершение конфигурации и проверка.
    mv -f /etc/pam.d/smtp.postfix /etc/pam.d/smtp
    /etc/init.d/postfix restart

    Проверьте, что postfix стартанул без ошибок и попробуйте telnet localhost 25. Чтобы убедиться в работоспособности SMTP-AUTH и TLS выполните:

    telnet localhost 25

    #после установки соединения...
    ehlo localhost

    Если postfix выдаст строки 250-STARTTLS и 250-AUTH - вы успешно все настроили.

Автор не понял что он делает, а просто бездумно скатал откуда-то команды. Во всем что касается генерации сертификатов - точно. Вышло все через зад.

Сгенерировал запароленный клиентский ключ.
Сгенерировал на основе него клиентский сертификат и подписал его _собой_.
Снял пароль с ключа (А нахрен ты его изначально шифровал тогда ?).
Сгенерировал корневой сертификат, подписал его собой и ключ от него опять зачем-то зашифровал, причем тем-же паролем, что только что убрал с клиентского ключа.

А теперь как правильно :

Генерируем корневой сертификат, подписанный собой.

openssl req -new -newkey rsa:2048 -x509 -nodes -keyout cakey.pem -out cacert.pem -days 3650

Сертификат сроком на 10 лет. Опция -nodes означает не шифровать ключ. Если вы параноик, можете убрать.

Далее генерируем запрос на подпись клиентского сертификата

openssl req -new -newkey rsa:1024 -nodes -keyout smtpd.key -out smtpd.csr

Подписываем его корневым сертификатом

openssl x509 -req -CA cacert.pem -CAkey cakey.pem -days 730 -in smtpd.csr -out smtpd.crt -CAcreateserial

В результате имеем:
Корневой сертификат cacert.pem
Ключ корневого сертификата cakey.pem
Клиентский сертификат smtpd.crt
Ключ клиентского сертификата smtpd.key

Ключи должны быть доступны только администратору, особенно корневой. Им же нужно подписывать дополнительные сертификаты для клиентов.

Спасибо тебе умный человек! Наверное, когда вы настраивали TLS, все команды сами сочиняли, прочитав перед этим толстенную книгу ну и ман в придачу. Да, так и надо делать конечно, но не всегда есть время, и иногда проще погуглить. Cтатью поправлю.

Да незачто вообщем, сам сидел разбирался и наткнулся на эту запись. Я понимаю, что это просто памятка, самому себе в первую очередь, но если не разобраться в вопросе у меня как-то зудит в тыльной части :)

Сделал всё, как написано. 250-STARTTLS выдаётся, а 250-AUTH нет.

Оно и неудивительно, нужно ведь настроить еще dovecot-sasl либо cyrus-sasl, про которые автор скромно умолчал :)

ну, человек, сделай доброе дело. опиши процесс до конца.

Отправить комментарий

Image CAPTCHA
Enter the characters shown in the image.
Реклама на stremoukhov.ru:
Стоимость такси аэропорт. . Для хранения фотографий китайские телефоны iphone в Украине - доставка в Кировограде . шины П7