06.02.2020

Почтовый сервер на CentOS 7. Установка Dovecot + Exim + Roundcube

В данной статье мы установим и настроим почтовый сервер с использованием Exim и Dovecot на CentOS 7.5 VPS с использованием веб интерфейса Roundcube.
Для этого мы используем VPS на базе CentOS; с предварительно установленной с минимальной  CentOS 7.5

Что такое Exim?

Exim — это агент пересылки почты (MTA), который обычно используется в Unix-подобных операционных системах. Exim — это бесплатное программное обеспечение, которое распространяется в соответствии с условиями GNU (General Public License), является универсальным и гибким почтовым средством с обширными возможностями для проверки входящей электронной почты.

Что такое Dovecot?

Dovecot — это почтовый сервер с открытым исходным кодом IMAP и POP3 для Linux / UNIX-подобных систем. Безопасность стала краеугольным камнем в создании данного продукта нацеленного на гибкость и быстродействие.
Dovecot — это прекрасный выбор как для небольших, так и для крупных почтовых систем.

Что такое Roundcube?

Roundcube — веб-интерфейс для работы с электронной почтой,  предоставляет возможность работать с вашими почтовыми ящиками используя IMAP и SMTP. Приложение обладает мощным функционалом и по возможностям сравнимо с настольными почтовыми клиентами, такими как Outlook Express или Mozilla Thunderbird

Подготовка и настройка

Подключим дополнительный репозиторий EPEL.
Для чего выполним:

# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum update
Чтобы проверить что вновь добавленный репозиторий EPEL подключился к нашей системе введем:
# yum repolist
После чего установим некоторые полезные инструменты:
# yum install file perl-Mail-SPF.noarch openssl nano

Exim установка и настройка

# yum install exim

Теперь мы откроем файл /etc/exim/exim.conf, используя ваш любимый редактор,предварительно создав его резервную копию и приведем его к следующему виду:

# cp /etc/exim/exim.conf{,.original}
# nano /etc/exim/exim.conf

primary_hostname = mail.mypostdomain.com
domainlist local_domains = @ : mypostdomain.com
tls_advertise_hosts = *
tls_certificate = /etc/ssl/mail.mypostdomain.com.crt
tls_privatekey = /etc/ssl/mail.mypostdomain.com.key
auth_advertise_hosts = *

Обратим внимание на строки tls_certificate и tls_privatekey, мы будем использовать Сертификат, Вы можете заказать его на нашем сайте и найти необходимые файлы в Личном кабинете — SSL

Далее перейдем к разделу транспорт и приведем к виду:

local_delivery:
driver = appendfile
directory = $home/Maildir
maildir_format
maildir_use_size_file
delivery_date_add
envelope_to_add
return_path_add

Далее в разделе аутентификации добавим несколько строк:

dovecot_login:
driver = dovecot
public_name = LOGIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1
dovecot_plain:
driver = dovecot
public_name = PLAIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1

Запустим exim, и добавим его в автозагрузку системы используя systemctl:

# systemctl start exim
# systemctl status exim
# systemctl enable exim

Настройка Dovecot

# yum install dovecot
После установки отредактируем файлы конфигурации:

# nano /etc/dovecot/conf.d/10-ssl.conf
ssl = yes
ssl_cert = /etc/ssl/mail.mypostdomain.com.crt
ssl_key = /etc/ssl/mail.mypostdomain.com.key

# nano /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain login

# nano /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir

# vim /etc/dovecot/conf.d/10-master.conf
service auth {

unix_listener auth-client {
mode = 0660
user = exim
}
}

Запустим dovecot, и добавим его в автозагрузку системы используя systemctl.

# systemctl start dovecot
# systemctl status dovecot
# systemctl enable dovecot

Roudcube

LAMP
# yum  install roundcubemail

# nano /etc/httpd/conf.d/roundcube.conf

#
# Round Cube Webmail is a browser-based multilingual IMAP client
#

Alias /roundcube /usr/share/roundcubemail
Alias /webmail /usr/share/roundcubemail


Options none
AllowOverride Limit
Require all granted


Options none
AllowOverride Limit
Require all granted

# Those directories should not be viewed by Web clients.

Order Allow,Deny
Deny from all


Order Allow,Deny
Deny from all

# service httpd restart

# mysql -u root -p
mysql> CREATE DATABASE dbroundcube;
mysql> CREATE USER userroundcube@localhost IDENTIFIED BY ‘password’;
mysql> GRANT ALL PRIVILEGES on dbroundcube.* to userroundcube@localhost ;
mysql> FLUSH PRIVILEGES;
mysql> quit

http://mail.mypostdomain.com/roundcube/installer

 
POP3: 110
IMAP: 143
SMTP: 25