Для того чтобы организовать работу электронной почты в локальной сети, необходимо настроить свой сервер электронной почты. Почтовый сервер представляет собой программу, предназначенную для передачи сообщений от одного компьютера к другому. В данной статье мы рассмотрим установку и настройку почтового сервера на ОС Astra Linux версии 2.12, используя метод аутентификации PAM. Инструкция подойдет и для других версий Астры, в том числе, 1.6.
cloud
Для установки почтового сервера необходимо следующее:
Сервер или виртуальная машина с предустановленной ОС Astra Linux. В инструкции мы будем использовать версию 2.12, но те же шаги можно выполнять и в других редакциях Astra Linux.
Чтобы арендовать облачный или выделенный сервер в Timeweb Cloud, необходимо пройти регистрацию.
Переходим по ссылке для регистрации нового пользователя. Мы выберем регистрацию на физическое лицо и заполним следующие данные:
Номер телефона можно указать по желанию. Также регистрацию можно пройти, воспользовавшись одним из сторонних сервисов: Google-аккаунт, ВКонтакте и GitHub.
После регистрации на указанный адрес почты придет сообщение с ссылкой для активации аккаунта и входа в панель — перейдите по ней.
После того, как учетная запись была создана и активирована, можно арендовать облачный сервер.
1) Переходим на страницу авторизации и входим в аккаунт при помощи логина или адреса электронной почты и пароля или при помощи ВКонтакте, GitHub, Google.
2) После успешной авторизации отобразится панель управления текущего проекта. Переходим в раздел «Облачные серверы» и нажимаем «Создать» или «Добавить».
3) Выбираем операционную систему, которая будет установлена на сервер. В нашем случае нам необходима Astra Linux CE версии 2.12.
4) Выбираем регион, в котором будет находиться наш сервер. Выбирать рекомендуется тот регион, который ближе всего находится к вам физически. У каждого доступного региона справа вверху отображается ping, т.е. время, необходимое для передачи данных с вашего компьютера на сервер. Чем меньше указанное время, тем быстрее будет осуществляться передача данных.
5) Далее выбираем необходимую конфигурацию сервера. Для почтового сервера выберем двухъядерный процессор и 40 ГБ жесткого диска, выбираем соответствующий тариф:
6) Далее необходимо решить, будет ли сервер доступен из внешний сети или же только из приватной (частной) сети. Для выхода сервера в Интернет, нужно заказать плавающий IP.
7) По желанию можно оформить дополнительные услуги, включая резервные копии и защиту от DDoS-атак (последняя доступна только в Санкт-Петербурге и Москве).
8) Также заранее можно загрузить SSH-ключ, чтобы не входить на север при помощи пароля.
9) Можно задать необходимое имя для сервера которое будет отображаться в панели управления, а также выбрать проект.
10) Для создания сервера необходимо нажать на кнопку «Заказать»:
Если на вашем аккаунте недостаточно средств, то будет выведено предупреждение о необходимости пополнить баланс. После оплаты и создания сервера откроется Дашборд сервера, где можно будет найти IP-адрес, логин и пароль для подключения.
Все команды, которые будут использоваться в данном и последующих разделах, необходимо выполнить от имени root
-пользователя.
1) Для начала необходимо задать имя хоста (hostname
). Для этого укажем его в файле /etc/hostname
:
nano /etc/hostname
В данном примере hostname
будет указан как 2633143-bi08079.twc1.net
. Использовать можно любое имя хоста.
Сохраняем изменения и выходим из файла.
2) Также имя хоста необходимо продублировать в файле /etc/hosts
:
nano /etc/hosts
127.0.0.1 2633143-bi08079.twc1.net
Сохраняем изменения и выходим из файла.
3) Если вы используете firewall, например, UFW, то его необходимо либо выключить при помощи команд:
systemctl stop ufw && systemctl disable ufw
Либо открыть порты 110, 143 при помощи команды:
ufw allow 110,143/tcp
Также необходимо открыть 25 порт. Он заблокирован по умолчанию, поэтому необходимо отправить запрос в техническую поддержку.
1) Обновляем списки пакетов и устанавливаем необходимые пакеты:
exim4-daemon-heavy
— сервер почты;dovecot-imapd
— агент доставки почты.apt update && apt -y install exim4-daemon-heavy dovecot-imapd
На этом установка пакетов завершена.
1) Вводим следующую команду в терминале для настройки exim
:
dpkg-reconfigure exim4-config
Откроется псевдографический интерфейс — Mail Server configuration (Конфигурация почтового сервера).
1) На первом шаге выбираем пункт internet site; mail is sent and received directly using SMTP (интернет-сайт; приём и отправка почты напрямую, используя SMTP):
2) Далее задаем имя для создаваемого почтовое сервера. Можно использовать имя хоста, которое было задано ранее:
3) На следующем шаге необходимо указать IP-адреса, с которых следует ожидать входящие соединения по протоколу SMTP. Оставляем данное поле пустым (это означает, что соединения будут доступны со всех сетевых интерфейсов):
4) Указываем имя почтового сервера, которое было указано во 2 шаге:
5) Следующий пункт оставляем пустым:
6) На этапе создание списка IP-адресов, с которых разрешена релейная передача почты, можно указать как IP-адрес, так и всю подсеть сразу:
В данном примере используется подсеть 188.225.57.140/24.
7) В пункте Keep number of DNS-queries minimal (Dial-on-Demand) (Сокращать количество DNS-запросов до минимума) указываем NO (нет):
8) Delivery method for local mail (Метод доставки локальной почты) — указываем Maildir format in home directory (Maildir-формат в домашнем каталоге):
9) Split configuration into small files? (Разделить конфигурацию на маленькие файлы) — выбираем No (нет):
На этом первичная настройка exim
завершена. Далее будут рассмотрены углубленная настройка exim
и dovecot
.
1) Открываем на редактирование конфигурационный файл exim4.conf.template
при помощи любого текстового редактора:
nano /etc/exim4/exim4.conf.template
Необходимо отредактировать два параметра:
domainlist relay_to_domains
— указать доменное имя почтового сервера (которое было задано на этапе первичной настройки exim);hostlist relay_from_hosts
— указать подсеть сервера почты в формате IP_адрес/подсеть
:1) Для настройки логирования используется файл 90_exim4-config_log_selector
:
nano /etc/exim4/conf.d/main/90_exim4-config_log_selector
Приводим файл к следующему виду:
.ifdef MAIN_LOG_SELECTOR
log_selector = \
+all_parents \
+connection_reject \
+lost_incoming_connection \
+received_sender \
+received_recipients \
+smtp_confirmation \
+smtp_syntax_error \
+smtp_protocol_error \
-queue_run
log_file_path = /var/log/exim4/exim_%slog
.endif
Сохраняем изменения и выходим из файла.
После внесения правок в конфигурационные файлы, необходимо перезапустить сервис exim
, добавить его в автозагрузку и проверить статус:
systemctl enable exim4 && service exim4 restart && service exim4 status
Если конфигурация не содержит ошибок, то exim
будет запущен со статусом active (running)
:
1) Открываем на редактирование основной конфигурационный файл dovecot — dovecot.conf
:
nano /etc/dovecot/dovecot.conf
Необходимо отредактировать параметр listen
, прописав в нем символ *
. Это означает, что почта будет приниматься со всех адресов:
listen = *
2) Далее необходимо настроить аутентификацию в dovecot. Мы будем использовать PAM-аутентификацию. Это означает, что в качестве пользователей будут использоваться пользователи, которые присутствуют в операционной системе.
Открываем на редактирование конфигурационный файл 10-auth.conf
:
nano /etc/dovecot/conf.d/10-auth.conf
В параметрах auth_realms
и auth_default_realm
необходимо задать доменное имя почтового сервера, которое было задано на этапе первичной настройки exim.
Необходимо отредактировать (а при необходимости также раскомментировать, удалив символ #
) следующие параметры:
disable_plaintext_auth = no
auth_realms = 2633143-bi08079.twc1.net
auth_default_realm = 2633143-bi08079.twc1.net
auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@
auth_username_format = %n
3) Далее необходимо прописать порт, на котором будет доступен dovecot
. Для этого открываем на редактирование конфигурационный файл 10-master.conf
и находим в нем блок с именем service imap-login
. Ппрописываем или раскомментируем параметр port
, указав в значении порт 143 (это порт по умолчанию для службы dovecot
):
nano /etc/dovecot/conf.d/10-master.conf
4) Так как мы не будем использовать SSL, необходимо выключить данный параметр. Открываем на редактирование файл 10-ssl.conf
:
nano /etc/dovecot/conf.d/10-ssl.conf
Находим параметр ssl
и в значении указываем no
:
ssl = no
5) Далее открываем на редактирование файл 10-mail.conf
:
nano /etc/dovecot/conf.d/10-mail.conf
Ищем следующую строку:
mail_location = mbox:~/mail:INBOX=/var/mail/%u
И меняем ее значение на maildir:~/Maildir
:
mail_location = maildir:~/Maildir
Сохраняем изменения и выходим из файла.
6) При необходимости можно настроить логирование в dovecot. Для этого открываем файл 10-logging.conf
:
nano /etc/dovecot/conf.d/10-logging.conf
И редактируем следующие параметры:
log_path = /var/log/dovecot/main.log
debug_log_path = /var/log/dovecot/debug.log
auth_verbose = yes
log_timestamp = "%b %d %H:%M:%S "
Где:
log_path
— полный путь до файла, в который будут записываться логи;debug_log_path
— полный путь до файла, в который будут записывать логи уровня debug.7) Так как ранее мы задали путь до файла, куда будут записываться логи, необходимо создать директорию dovecot
, а в ней — пустой файл main.log
:
mkdir /var/log/dovecot/
touch /var/log/dovecot/main.log
8) Добавляем сервис dovecot
в автозагрузку и перезапускаем:
systemctl enable dovecot && systemctl restart dovecot
После этого проверяем статус dovecot
при помощи команды:
systemctl status dovecot
Если dovecot
будет успешно запущен, то в статусе сервиса будет указано active (running)
.
Дальнейшее тестирование почтового сервера будет производиться при помощи клиентской программы Thunderbird, которая доступна только в графическом интерфейсе пользователя. Так как у нас используется сервер без графического интерфейса пользователя, мы можем воспользоваться одним из следующих решений:
1) Арендовать второй сервер Astra Linux с предустановленным графическим интерфейсом. Для этого на этапе создания сервера на странице «Создать сервер» необходимо перейти в раздел «Маркетплейс» и найти образ «Astra Linux Desktop»:
После того как сервер будет готов к работе, необходимо установить пакет xrdp
, при помощи которого можно подключаться к серверу из Windows по протоколу RDP.
Команда установки xrdp
и клиента Thunderbird будет следующей:
apt update && apt -y install xrdp xorgxrdp thunderbird
Добавляем сервис xrdp
в автозагрузку и запускаем его:
systemctl enable xrdp && systemctl start xrdp
На компьютере с установленной ОС Windows запускаем клиент RDP. Для этого в поиске пишем rdp
и открываем программу «Подключение к удаленному рабочему столу»:
В появившемся окне вводим IP-адрес сервера с Astra Linux и нажимаем на кнопку «Подключить»:
При появлении предупреждения проверки подлинности нажимаем на кнопку «Да»:
Откроется окно с вводом данных пользователя. Вводим логин и пароль того пользователя, который уже присутствует на сервере:
При необходимости пользователя можно создать при помощи команды adduser new-user
, где new-user
— имя создаваемого пользователя.
После нажатия на кнопку «ОК» отобразится главный экран входа пользователя интерфейса Astra Linux:
Вводим логин и пароль еще раз.
2) Второй способ заключается в установке графической оболочки на сервер, у которого нет GUI.
Для этого устанавливаем официальный графический интерфейс Fly, а также клиент xrdp
и клиент Thunderbird при помощи команды:
apt update && apt -y install fly-all-main xrdp xorgxrdp thunderbird
Добавляем сервис xrdp
в автозагрузку и запускаем его:
systemctl enable xrdp && systemctl start xrdp
Подключение по RDP происходит аналогично шагам, описанным в предыдущем пункте.
Переходим в графический интерфейс пользователя Astra Linux и запускам почтовый клиент Thunderbird, который находится в меню «Start» и в разделе «Network».
В открывшемся окне вводим имя пользователя в поле «Your name». Пользователь должен быть заранее создан в операционной системе. В нашем случае пользователь с именем alex
уже присутствует в системе. В поле «Email address» вводим имя пользователя и имя нашего почтового сервера, в формате имя@адрес_почтового_сервера
. В поле «Пароль» вводим пароль от учетной записи пользователя:
Нажимаем на кнопку «Continue». Далее клиент найдет конфигурацию сервера и сообщит об этом:
Так как мы не настраивали SSL, то появится предупреждение о том, что сервер электронной почты не использует шифрование.
В левом нижнем углу ставим чекбокс напротив надписи «I understand the risks» и нажимаем на кнопку «Done».
Откроется интерфейс почтового клиента:
Для проверки работоспособности почтового сервера напишем письмо самому себе. Для этого на верхней панели нажимаем на кнопку «Write». В поле «Кому» (To) указываем свой адрес электронной почты, в поле «Тема» (Subject) указываем тему. Пишем любой текст сообщения и отправляем сообщение (кнопка Send):
В папке «Входящие» появилось наше сообщение самому себе:
Поднимите свой почтовый сервер на серверах Timeweb Cloud
В данной статье мы рассмотрели установку и настройку своего почтового сервера. Данный туториал можно использовать для организации почтового сервера внутри организации.
Здравствуйте. Спасибо за информацию. Пытаюсь использовать её в работе. Сервисы exim4*dovecot на почтовом сервере настроены и внешне работает штатно. В качестве клиента используется Thunderbird по схеме: юзеры коннектятся с своих хостов (через XRDP) к почтовому серверу, попадают в на свой рабочий стол с ограниченным функционалом (доступен Thunderbird, возможность смены пароля, выход из сессии). Пользователи через Thunderbird успешно отправляют сообщения, но которые никто не может получить, при попытке опроса сервера все получают сообщение: "На сервере нет новых сообщений". Не могут отправить и сами себе. Что м.б. не так ?
Добрый день!
С подобной ошибкой не сталкивались. Пожалуйста, уточните, есть ли какие-то ошибки в логах Dovecot и Exim? Логи вы можете найти в директориях
/var/log/exim4/
и/var/log/dovecot/
. Проверка логов может помочь понять, что именно вызывает проблему.