Admin
Регистрация: 05.10.2005
Проживание: Москва
Сообщения: 284
|
Exim, dovecot - отправка и прием почты с использованием TLS
Сразу к делу:
1. Exim.
Добавляем в конфиг (в секцию глобальных настроек) строки:
#/etc/exim/exim.conf
daemon_smtp_ports = 25 : 465
tls_on_connect_ports = 465
tls_advertise_hosts = *
tls_certificate = /etc/ssl/certs/mail.pem
tls_privatekey = /etc/ssl/certs/mail.pem
Готово. Теперь отправка шифрованная. Осталось только сгенерить оный сертификат (mail.pem) и положить куда надо. Об этом ниже.
2. Dovecot.
#/etc/dovecot.conf
protocols = pop3 imap imaps pop3s
ssl_cert_file = /etc/ssl/certs/mail.pem
ssl_key_file = /etc/ssl/certs/mail.pem
Готово. The Bat! и Mozilla выкидывают уведомление типа "Разрешить сертификат от данного хоста?" Отвечам да, все работает супер.
В OE не разобрался еще, как добавить, но попробую.
Соответственно на файрволе надо разрешить входящий коннект на порты 465 (smtps), 995 (pop3s), 993 (imaps).
3. Генерим сертификат (необходим установленный openssl).
openssl req -x509 -newkey rsa:1024 -keyout mail.pem -out mail.pem -days 9999 -nodes
Есть. Только ответить там на вопросы немного... Ну где спрашивает имена указать имя сервера, например t-cards.ru.
Теперь можно экспортануть его в .p12, чтоб клиенту подсунуть:
openssl pkcs12 -export -in mail.pem -inkey mail.pem -out client.p12 -name "Client certificate from our organization"
|
Admin
Регистрация: 05.10.2005
Проживание: Москва
Сообщения: 284
|
Exim, dovecot - отправка и прием почты с использованием TLS
Отступление.
4. Dovecot + mysql
#/etc/dovecot.conf
auth_userdb = mysql /etc/dovecot-mysql.conf
auth_passdb = mysql /etc/dovecot-mysql.conf
#/etc/dovecot-mysql.conf
db_host = localhost
db_port = 3306
db_unix_socket = /var/run/mysqld/mysqld.sock
db = mail
db_user = root
db_passwd = my_pass
db_client_flags = 0
default_pass_scheme = PLAIN #-MD5
password_query = SELECT passwd FROM dbmail_users WHERE lower(userid) = lower("%n") AND lower(domain) = lower("%d")
user_query = SELECT CONCAT("/var/mail/",lower(domain),"/",lower(userid)) as home,8 as uid, 12 as gid FROM dbmail_users WHERE lower(userid) = lower("%n") AND lower(domain) = lower("%d")
|