вторник, 14 октября 2008 г.

Dovecot: Шифруем IMAP и POP3

  1. Первым делом создаем сертификат и секретный ключ. На вопрос о CN (Common Name) вписываем имя сервера – например «mail.pupkin.ru». В противном случае почтовый клиент может отказаться работать с сервером
    $ openssl req -new -outform PEM -out dovecot.crt -newkey rsa:2048 -nodes -keyout dovecot.key -keyform PEM -days 9999 -x509
    Вывод будет примерно таким
    Generating a 2048 bit RSA private key
    ..........................................................................+++
    ................................+++
    unable to write 'random state'
    writing new private key to 'dovecot.key'
    -----
    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) [AU]:RU
    State or Province Name (full name) [Some-State]:Moscow Region
    Locality Name (eg, city) []:Moscow
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:Pupkin & Co.
    Organizational Unit Name (eg, section) []:IT Department
    Common Name (eg, YOUR name) []:mail.pupkin.ru
    Email Address []:vasya@pupkin.ru
    Жирным шрифтом отмечены ответы.

  2. Перемещаем созданные ключи в папку Dovecot и устанавливаем права доступа к ним
    $ sudo -s
    # mkdir /etc/dovecot/ssl
    # mv dovecot.crt /etc/dovecot/ssl/dovecot.crt
    # mv dovecot.key /etc/dovecot/ssl/dovecot.key
    # chown root /etc/dovecot/ssl/dovecot.*
    # chmod 0600 /etc/dovecot/ssl/dovecot.key

  3. Правим конфигурационный файл «/etc/dovecot/dovecot.conf»
    protocols = imaps pop3s
    ssl_disable = no
    ssl_cert_file = /etc/dovecot/ssl/dovecot.crt
    ssl_key_file = /etc/dovecot/ssl/dovecot.key

  4. Перезапускаем Dovecot
    # /etc/init.d/dovecot restart
  5. Проверяем работу сервера с сертификатом
    $ openssl s_client -connect mail.pupkin.ru:imaps -debug
    Если все корректно настроили в ответ выйдет куча текста с диагностикой устанавливаемого защищенного соединения.
    В конце у меня вышло
    -----END CERTIFICATE-----
    subject=/C=RU/ST=Moscow Region/L=Moscow/O=Pupkin & Co./OU=IT Department/CN=mail.pupkin.ru/emailAddress=vasya@pupkin.ru
    issuer=/C=RU/ST=Moscow Region/L=Moscow/O=Pupkin & Co./OU=IT Department/CN=mail.pupkin.ru/emailAddress=vasya@pupkin.ru
    ---
    No client certificate CA names sent
    ---
    SSL handshake has read 1684 bytes and written 316 bytes
    ---
    New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
    Server public key is 1024 bit
    Compression: NONE
    Expansion: NONE
    SSL-Session:
    Protocol : TLSv1
    Cipher : DHE-RSA-AES256-SHA
    Session-ID: 13053ADF84C8157032B21A241E46398D4837A38F9AAA86095E32F1FDB55B704A
    Session-ID-ctx:
    Master-Key: 5CFEF98B3BF13B13C0D8BD98EDD74D827847FE2D6B2240F4BE083C54B696681901829BFC35D838FB7F64D96CA815C7AA
    Key-Arg : None
    Start Time: 1224018874
    Timeout : 300 (sec)
    Verify return code: 18 (self signed certificate)
    ---
  6. Настраиваем почтовый клиент на работу по pop3s/imaps (порты 995 и 993 соответственно)

2 комментария:

Alexander Waal комментирует...

Огромное спасибо за статью, очень помогла.

Alexander Waal комментирует...
Этот комментарий был удален автором.