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

pligin

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

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
}
[b]inet_listener imaps {
port = 993
ssl = yes
}[/b]
}
service imap {
executable = /usr/libexec/dovecot/imap
}
service pop3-login {
executable = /usr/libexec/dovecot/pop3-login
inet_listener pop3 {
address = *
port = 110
}
[b]inet_listener pop3s {
port = 995
ssl = yes
}[/b]
}
Настроим 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 [b]mail.point.local:443[/b]>
ServerName [b]mail.point.local[/b]
ServerAdmin [b]admin@point.local[/b]
DocumentRoot "[b]/var/www/html/roundcube/[/b]"
[b]SSLEngine on
SSLCertificateFile /etc/postfix/certs/cert.pem
SSLCertificateKeyFile /etc/postfix/certs/key.pem[/b]
# Поскольку roundcube написан на PHP и мы
# не предполагаем запуск чего-либо кроме PHP скриптов
# на этом виртуалхосте, то на всякий случай отключаем CGI
# и запрещаем изменение параметров ./htaccess'ом
<Directory "[b]/var/www/html/roundcube/[/b]">
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

Источник http://yvision.kz/
 
Последнее редактирование:
Верх