Настройка почтового сервера Postfix с Dovecot и RoundCube на CentOS 7

Узнайте, как настроить почтовый сервер на облачном сервере под управлением CentOS 7. В этом руководстве используются Postfix в качестве SMTP-сервера, Dovecot для функциональности POP/IMAP и RoundCube в качестве программы веб-почты, чтобы пользователи могли проверять и получать почту через веб-браузер.

В учебном пособии вы также узнаете, как создать и использовать самоподписанный SSL сертификат для защиты входящих и исходящих почтовых соединений.

Требования

  • Облачный сервер под управлением CentOS 7.
  • Установленный и запущенный Postfix.

Чтобы проверить состояние Postfix на сервере, используйте команду:

sudo postfix status

Если Postfix установлен и запущен, вы увидите результат:

[user@localhost ~]# sudo postfix status
postfix/postfix-script: the Postfix mail system is running: PID: 1681

Доступ к брандмауэру

Если у вас есть брандмауэр, вам нужно разрешить доступ к следующим портам:

  • SMTP: 25
  • POP3: 110
  • IMAP: 143
  • SMTP Secure: 465
  • MSA: 587
  • IMAP Secure: 993
  • POP3 Secure: 995

Создание SSL-сертификата

Мы создадим самоподписанный SSL-сертификат для защиты входящих и исходящих почтовых соединений:

sudo openssl req -x509 -nodes -newkey rsa:2048 -keyout mailserver.key -out mailserver.crt -nodes -days 365

Ответьте на вопросы в подсказках или просто нажмите [Enter], чтобы оставить ответ пустым. Эта команда создаст два файла: mailserver.key и mailserver.crt.

Создайте папку для файлов SSL-сертификатов:

sudo mkdir /etc/postfix/ssl

Затем переместите файлы в эту папку:

sudo mv mailserver.key /etc/postfix/ssl
sudo mv mailserver.crt /etc/postfix/ssl

Настройте Postfix

Следующие шаги позволят выполнить базовую настройку Postfix, что позволит вам отправлять и получать почту. Для получения более подробной информации об этих конфигурациях обратитесь к официальной документации.

Прежде чем приступить к изменению конфигурации, убедитесь, что у вас установлена последняя версия Postfix, выполнив команду:

sudo yum update postfix

Edit master.cf

Сначала мы отредактируем файл /etc/postfix/master.cf, чтобы позволить демону отправки безопасно отправлять и принимать почту:

sudo nano /etc/postfix/master.cf

Удалите хэш-знак (#), чтобы снять комментарий со следующих строк:

#submission inet n       -       n       -       -       smtpd
#  -o syslog_name=postfix/submission
#  -o smtpd_tls_security_level=encrypt
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING

Сохраните и выйдите из файла.

Редактирование файла main.cf

Файл /etc/postfix/main.cf содержит параметры конфигурации для вашей установки Postfix. Отредактируйте этот файл:

sudo nano /etc/postfix/main.cf

Внесите следующие изменения:

Установить имя хоста

Отредактируйте строку, которая гласит:

#myhostname = host.domain.tld

Удалите хэш-знак (#), чтобы снять комментарий со строки, и замените host.domain.tld на имя хоста сервера:

myhostname = example.com

Set Domain

Отредактируйте строку, которая гласит:

#mydomain = domain.tld

Удалите хэш-знак (#), чтобы не комментировать строку, и замените domain.tld на домен, для которого вы хотите получать почту:

mydomain = example.com

Включить другие настройки

Удалите хэш-знак (#), чтобы снять комментарий со следующих строк:

#myorigin = $myhostname
#inet_interfaces = all
#inet_interfaces = localhost
#inet_protocols = all
#mydestination = $myhostname, localhost.$mydomain, localhost
#home_mailbox = Maildir/

Добавить конфигурации

Наконец, добавьте следующие строки в конец файла:

smtpd_tls_key_file = /etc/postfix/ssl/mailserver.key
smtpd_tls_cert_file = /etc/postfix/ssl/mailserver.crt
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_tls_security_level=may

Сохраните и выйдите из файла, затем перезапустите Postfix, чтобы загрузить новые конфигурации:

sudo systemctl restart postfix

Тестирование Postfix с помощью Telnet

Для тестирования Postfix мы подключимся к серверу через Telnet и выполним базовый «протокол рукопожатия», как это делает почтовая программа.

Сначала установите Telnet:

sudo yum install telnet

После установки Telnet используйте его для подключения к SMTP-порту сервера:

telnet localhost 25

Сервер ответит:

[user@localhost ~]$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

Для начала сообщите серверу, от кого отправляется почта:

mail from: some-person@some-other-server.com

Затем сообщите серверу, кому вы отправляете почту, заменив user@example.com своим именем пользователя и доменным именем:

rcpt to: user@example.com

Теперь добавьте простое сообщение. Скажите серверу, что тело вашего сообщения начинается здесь:

data 

Введите сообщение, затем нажмите [Enter], точку . и [Enter]:

hello world 
.

Закройте сеанс, набрав quit и нажав Enter.

В случае успеха ваше тестовое сообщение появится в /home/username/Maildir/new. Вы можете просмотреть это сообщение с помощью команды:

ll /home/username/Maildir/new

Чтобы прочитать сообщение, скопируйте и вставьте имя файла (это будет длинное имя, например 1481229255.Vfd01I402b66aM546595.example.com) и прочитайте его с помощью команды more:

more 1481229255.Vfd01I402b66aM546595.example.com

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

From some-person@some-other-server.com  Thu Dec  8 19:43:10 2016
Return-Path: <some-person@some-other-server.com>
X-Original-To: user@example.com
Delivered-To: user@example.com
Received: from localhost (localhost [127.0.0.1])
        by mail.example.com (Postfix) with SMTP id 6CFD589184
        for <user@example.com>; Thu,  8 Dec 2016 19:42:33 +0000 (UTC)
Message-Id: <20161208194238.6CFD589184@mail.oxnardindustries.com>
Date: Thu,  8 Dec 2016 19:42:33 +0000 (UTC)
From: some-person@some-other-server.com

hello world

Установка и настройка Dovecot

Мы будем использовать Dovecot в качестве POP3/IMAP сервера, чтобы пользователи могли получать и проверять свою почту. Более подробную информацию о Dovecot вы можете найти на сайте Dovecot.

Установите Dovecot с помощью команды :

sudo yum install dovecot

Вы можете проверить состояние Dovecot с помощью команды:

sudo systemctl status dovecot

Если Dovecot запущен, вы увидите сообщение, подобное:

[user@mail dovecot]$ sudo systemctl status dovecot -l
● dovecot.service - Dovecot IMAP/POP3 email server
   Loaded: loaded (/usr/lib/systemd/system/dovecot.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2016-12-08 21:04:48 UTC; 3s ago
  Process: 8985 ExecStartPre=/usr/libexec/dovecot/prestartscript (code=exited, status=0/SUCCESS)
 Main PID: 8989 (dovecot)
   CGroup: /system.slice/dovecot.service
           ├─8989 /usr/sbin/dovecot -F
           ├─8992 dovecot/anvil
           ├─8993 dovecot/log
           └─8995 dovecot/config

Dec 08 21:04:48 example.com systemd[1]: Starting Dovecot IMAP/POP3 email server...
Dec 08 21:04:48 example.com systemd[1]: Started Dovecot IMAP/POP3 email server.
Dec 08 21:04:48 example.com dovecot[8989]: master: Dovecot v2.2.10 starting up for imap (core dumps disabled)
Active: active (running) since Thu 2016-12-08 21:04:48 UTC; 3s ago

Это означает, что Dovecot установлен и запущен.

Установите Roundcube

Roundcube — это бесплатная программа веб-почты с открытым исходным кодом, обладающая надежными встроенными многоязычными возможностями и множеством удобных функций для ваших пользователей. Вы можете прочитать больше о Roundcube на сайте Roundcube.

Roundcube требует наличия нескольких пакетов PHP и MariaDB в качестве предварительного условия. Сначала установите и/или обновите их с помощью команды:

sudo yum install mysql mariadb-server php php-common php-json php-xml php-mbstring

Далее создайте имя пользователя и базу данных MariaDB для установки Roundcube. Войдите в клиент MariaDB с помощью команды:

mysql -u root -p 

Войдите в систему с паролем root, затем создайте базу данных Roundcube:

create database roundcube_db;

Создайте пользователя для этой базы данных. Примечание: Обязательно задайте пользователю надежный пароль.

grant all on roundcube_db.* to roundcube_user@localhost identified by 'roundcube_db_password';

Замените:

  • roundcube_user на имя пользователя, которое вы хотите создать для вашей базы данных.
  • roundcube_db_password на надежный пароль для этого пользователя.

Затем выйдите из MariaDB:

quit;

Перейдите в корень документа вашего сайта. Загрузите текущий релиз с сайта Roundcube с помощью команды:

sudo wget [download URL]

Чтобы найти URL-адрес загрузки, посетите страницу текущего релиза на сайте Roundcube. Скопируйте URL-адрес зеленой ссылки «Download». Вы можете вставить его в командную строку, нажав Shift + Insert.

Например, чтобы загрузить текущий стабильный релиз на момент публикации этой статьи, выполните следующую команду:

sudo wget https://github.com/roundcube/roundcubemail/releases/download/1.2.3/roundcubemail-1.2.3-complete.tar.gz

Распакуйте этот файл с помощью команды:

sudo tar -xvf [filename]
Совет

Чтобы упростить этот процесс, вы можете использовать завершение вкладки. Введите sudo tar -xvf roundcube, затем нажмите Tab. Оболочка автоматически заполнит оставшуюся часть имени файла в командной строке.

Чтобы разархивировать файл, загруженный выше, выполните следующую команду:

sudo tar -xvf roundcubemail-1.2.3-complete.tar.gz

Переименуйте распакованный каталог в roundcube:

sudo mv roundcubemail-1.2.3 roundcube

Установите право собственности на файлы для пользователя Apache:

sudo chown -R apache:apache roundcube

Чтобы завершить установку, переключитесь в браузер и перейдите по URL http://example.com/roundcube/installer/.

Прокрутите страницу до самого низа и нажмите NEXT.

В следующем разделе вам нужно будет заполнить информацию о базе данных.

Заполните имя базы данных MariaDB, имя пользователя и пароль, которые вы создали выше. Затем прокрутите страницу вниз и нажмите CREATE CONFIG.

Примечание: Существует множество возможных конфигураций. Вы можете изменить или установить их в любое время в будущем.

После создания файла конфигурации нажмите CONTINUE, чтобы продолжить.

Нажмите кнопку Initialize database (Инициализировать базу данных), чтобы настроить базу данных.

Проверьте конфигурацию почтового сервера, отправив тестовое SMTP-сообщение.

  • Отправитель: Ваш новый адрес электронной почты на этом сервере. (Например, jdoe@example.com)
  • Получатель: Внешний адрес электронной почты. (Например, jdoe@gmail.com).

Затем нажмите Отправить тестовую почту. Через несколько мгновений проверьте внешнюю учетную запись электронной почты, чтобы убедиться, что письмо было отправлено.

Проверьте конфигурацию IMAP, войдя в систему под своим именем пользователя и паролем.

Обратите внимание, что ваше имя пользователя НЕ является вашим полным адресом электронной почты. Например, войдите в систему с именем пользователя jdoe, а не jdoe@example.com.

Теперь, когда конфигурация завершена, вы можете войти в систему по адресу http://example.com/webmail для проверки и отправки электронной почты.

  • Технические вопросы

    Оцените статью
    cdelat.ru
    Добавить комментарий