Yvision.kzYvision.kz
kk
Разное
Разное
399 773 постов41 подписчиков
Всяко-разно
1
11:43, 09 января 2014

Включение TLS/SSL в Postfix, Dovecot и RoundCube

В этой короткой записке описано о включении защищенного протокола в следующих программах/интерфейсе:

1. SMTP сервере Postfix

2. POP3/IMAP сервере Dovecot

3. Web интерфейс RoundCube

Будем двигаться по следующей последовательности:

- Сперва создадим сертификаты по которым будет происходит шифрованное соединение

- Настроим Postfix

- Настроим Dovecot

- Настроим RoundCube

 

Создаем само подписанные сертификаты

Первым делом надо создать само подписанные сертификаты:

# mkdir /etc/postfix/certs

# openssl req -new -x509 -days 3650 -nodes -out /etc/postfix/certs/cert.pem -keyout /etc/postfix/certs/key.pem

 

Настройка

А теперь уже можно настраивать Postfix, Dovecot и RoundCube

 

SMTP сервер Postfix

Открываем файл /etc/postfix/main.cf и добавляем в него настройки (обычно стоят возле smtpd_sasl)

###################TLS######################

smtpd_use_tls = yes

smtp_tls_security_level = may

smtpd_tls_security_level = may

smtpd_tls_loglevel = 1

smtpd_tls_received_header = yes

smtpd_tls_session_cache_timeout = 3600s

smtp_tls_session_cache_database = btree:$data_directory/smtp_tls_session_cache

smtpd_tls_key_file = /etc/postfix/certs/key.pem

smtpd_tls_cert_file = /etc/postfix/certs/cert.pem

tls_random_source = dev:/dev/urandom

###################TLS######################

Открываем файл /etc/postfix/master.cf и находим строчку и раскомментируем ее:

smtps     inet  n       -       n       -       -       smtpd

А также добавим в конец файла:

submission inet n       -       n       -       -       smtpd

-o syslog_name=postfix/submission

-o smtpd_tls_wrappermode=no

-o smtpd_tls_security_level=encrypt

-o smtpd_sasl_auth_enable=yes

-o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject

-o smtpd_relay_restrictions=permit_mynetworks,permit_sasl_authenticated,defer_unauth_destination

-o milter_macro_daemon_name=ORIGINATING

Настроим Dovecot
Отрываем файл /etc/dovecot/dovecot.conf и добавляем строчки:

ssl = yes

ssl_cert = </etc/postfix/certs/cert.pem

ssl_key = </etc/postfix/certs/key.pem

А также вписываем:

service imap-login {

executable = /usr/libexec/dovecot/imap-login

inet_listener imap {

address = *

port = 143

}

inet_listener imaps {

port = 993

ssl = yes

}

}

service imap {

executable = /usr/libexec/dovecot/imap

}

service pop3-login {

executable = /usr/libexec/dovecot/pop3-login

inet_listener pop3 {

address = *

port = 110

}

inet_listener pop3s {

port = 995

ssl = yes

}

}

Настроим RoundCube
Открываем файл /var/www/html/roundcube/config/main.inc.php
В нем находим строчки и меняем их значения на:
$rcmail_config['default_host'] = 'ssl://10.168.50.2:993';
$rcmail_config['force_https'] = true;
Здесь можно вписать доменное имя или IP адрес почтового сервера.
Настройка фаервола
Когда будете настраивать сетевой брандмаэр, откройте следующие порты:

- стандартные без шифрования:

578 -  SMTP (Submission)
143 -  IMAP
110 -  POP3
25 -  SMTP

- стандартные с шифрованием:

IMAP — 143 (при использовании шифрования STARTTLS) и 993 (при использовании шифрования SSL/TLS)  
POP3 — 995 (с шифрованием)  
SMTP — 465 (с шифрованием).

 

Настройки виртуального хоста для веб интерфейса RoundCube

Создаем файл /etc/httpd/conf.d/rc.conf

<Virtualhost mail.point.local:443>

ServerName mail.point.local

ServerAdmin admin@point.local

DocumentRoot "/var/www/html/roundcube/"

SSLEngine on

SSLCertificateFile /etc/postfix/certs/cert.pem

SSLCertificateKeyFile /etc/postfix/certs/key.pem

# Поскольку roundcube написан на PHP и мы

# не предполагаем запуск чего-либо кроме PHP скриптов

# на этом виртуалхосте, то на всякий случай отключаем CGI

# и запрещаем изменение параметров ./htaccess'ом

<Directory "/var/www/html/roundcube/">

Options -ExecCGI

AllowOverride None

SSLRequireSSL

</Directory>

# Запрещаем PHP скриптам выходить за пределы

# директории виртуалхоста

php_admin_value open_basedir /var/www/html/roundcube

php_admin_value safe_mode_include_dir /var/www/html/roundcube

#php_admin_value safe_mode_exec_dir /noexec

php_admin_value doc_root /var/www/html/roundcube

php_admin_value upload_tmp_dir /var/www/html/roundcube/temp

php_admin_value session.save_path /var/www/html/roundcube/temp

 

# Логирование

ErrorLog /var/log/httpd/roundcube-error.log

TransferLog /var/log/httpd/roundcube-access.log

</Virtualhost>

 

Теперь в браузере можно ввести: https://mail.point.local

1