
Узнайте, как настроить почтовый сервер на облачном сервере под управлением 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 для проверки и отправки электронной почты.
- Технические вопросы