OpenSMTPD — различия между версиями
(→OpenSMTPD + Dovecot) |
|||
(не показано 10 промежуточных версий этого же участника) | |||
Строка 13: | Строка 13: | ||
rpm -ql opensmtpd | rpm -ql opensmtpd | ||
− | + | Запустите службу: | |
sudo systemctl start opensmtpd | sudo systemctl start opensmtpd | ||
+ | |||
+ | Проверьте, что служба запустилась: | ||
+ | sudo systemctl status opensmtpd | ||
Лог работы можно получить так: | Лог работы можно получить так: | ||
− | |||
sudo journalctl -u opensmtpd | sudo journalctl -u opensmtpd | ||
Проверьте, какие интерфейсы и порты прослушиваются: | Проверьте, какие интерфейсы и порты прослушиваются: | ||
sudo ss -ntulp | grep smtpd | sudo ss -ntulp | grep smtpd | ||
+ | По умолчанию opensmtpd слушает порт 25 на локальном сетевом интерфейсе (127.0.0.1). | ||
− | Если запуск произошел успешно, | + | Если запуск произошел успешно, добавьте службу в автозапуск: |
sudo systemctl enable opensmtpd | sudo systemctl enable opensmtpd | ||
− | |||
− | |||
− | |||
= Настройка = | = Настройка = | ||
− | Настройка | + | == Настройка имени хоста (домена) сервера == |
+ | Настройте имя хоста у почтового сервера, например: | ||
+ | sudo hostnamectl set-hostname mail.rosa.loc | ||
+ | В этом примере имя хоста <code>mail.rosa.loc</code> является доменом третьего уровня, а почтовый сервер настраивается для обслуживания почты в домене второго уровня <code>rosa.loc</code>, т.е. для почтовых адресов вида <code>xxx@rosa.loc</code>. | ||
+ | |||
+ | == Настройка OpenSMTPD == | ||
+ | Настройки задаются в файле <code>/etc/opensmtpd/smtpd.conf</code>: | ||
sudo nano /etc/opensmtpd/smtpd.conf | sudo nano /etc/opensmtpd/smtpd.conf | ||
− | == Какой интерфейс слушать == | + | === Какой интерфейс слушать === |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
По умолчанию в конфиге написано: | По умолчанию в конфиге написано: | ||
listen on localhost | listen on localhost | ||
Строка 42: | Строка 44: | ||
Если требуется доступность почтового сервера из вне, то следует заменить эту строку на: | Если требуется доступность почтового сервера из вне, то следует заменить эту строку на: | ||
listen on 0.0.0.0 | listen on 0.0.0.0 | ||
− | == Указание домена == | + | === Указание домена === |
− | + | Над строкой "match for local action "local"" добавьте строку: | |
− | + | ||
− | + | ||
match from any for domain "rosa.loc" action "local" | match from any for domain "rosa.loc" action "local" | ||
+ | Замените "rosa.loc" на свой домен в соответствии с ранее заданным именем хоста. | ||
+ | |||
+ | === Перезапуск после правки настроек === | ||
Перезапустите сервис после правки конфигурационного файла: | Перезапустите сервис после правки конфигурационного файла: | ||
sudo systemctl restart opensmtpd | sudo systemctl restart opensmtpd | ||
Строка 115: | Строка 118: | ||
Домашний каталог пользователя ivanov был получен через PAM, конфигурационный файл находится по адресу <code>/etc/pam.d/opensmtpd</code>. Благодаря PAM, пользователь мог бы быть не только локальным, но и доменным (LDAP). | Домашний каталог пользователя ivanov был получен через PAM, конфигурационный файл находится по адресу <code>/etc/pam.d/opensmtpd</code>. Благодаря PAM, пользователь мог бы быть не только локальным, но и доменным (LDAP). | ||
+ | |||
+ | = OpenSMTPD + Dovecot = | ||
+ | |||
+ | Чтобы по IMAP полученные через SMTP, установите пакет dovecot: | ||
+ | sudo dnf install dovecot | ||
+ | |||
+ | Отредактируйте конфиг: | ||
+ | sudo nano /etc/dovecot/conf.d/10-mail.conf | ||
+ | |||
+ | В нем замените | ||
+ | #mail_location = | ||
+ | на: | ||
+ | mail_location = maildir:~/Maildir | ||
+ | |||
+ | Запустите службу: | ||
+ | sudo systemctl enable --now dovecot.socket | ||
+ | |||
+ | Теперь можно подключаться по IMAP и SMTP, например, через Thunderbird. | ||
+ | |||
+ | OpenSMTPD получает письмо по протоколу SMTP, кладет его в ~/Maildir, а Dovecot отдает его по IMAP. | ||
+ | |||
+ | По умолчанию и opensmtpd, и dovecot настроены использовать системных пользователей Linux и их пароли. | ||
[[Категория:ROSA Server]] | [[Категория:ROSA Server]] |
Текущая версия на 23:10, 25 мая 2024
Содержание
Введение
Эта статья описывает некоторые типовые варианты настройки почтового сервера OpenSMTPD на дистрибутивах ROSA Fresh/Chrome 12 и новее.
OpenSMTPD отличается сочетанием простоты настройки и функционала.
Установка и запуск
Выполните:
sudo dnf install opensmtpd
Ознакомьтесь со списком файлов в пакете (в т.ч. со списков мануалов):
rpm -ql opensmtpd
Запустите службу:
sudo systemctl start opensmtpd
Проверьте, что служба запустилась:
sudo systemctl status opensmtpd
Лог работы можно получить так:
sudo journalctl -u opensmtpd
Проверьте, какие интерфейсы и порты прослушиваются:
sudo ss -ntulp | grep smtpd
По умолчанию opensmtpd слушает порт 25 на локальном сетевом интерфейсе (127.0.0.1).
Если запуск произошел успешно, добавьте службу в автозапуск:
sudo systemctl enable opensmtpd
Настройка
Настройка имени хоста (домена) сервера
Настройте имя хоста у почтового сервера, например:
sudo hostnamectl set-hostname mail.rosa.loc
В этом примере имя хоста mail.rosa.loc
является доменом третьего уровня, а почтовый сервер настраивается для обслуживания почты в домене второго уровня rosa.loc
, т.е. для почтовых адресов вида xxx@rosa.loc
.
Настройка OpenSMTPD
Настройки задаются в файле /etc/opensmtpd/smtpd.conf
:
sudo nano /etc/opensmtpd/smtpd.conf
Какой интерфейс слушать
По умолчанию в конфиге написано:
listen on localhost
Если требуется доступность почтового сервера из вне, то следует заменить эту строку на:
listen on 0.0.0.0
Указание домена
Над строкой "match for local action "local"" добавьте строку:
match from any for domain "rosa.loc" action "local"
Замените "rosa.loc" на свой домен в соответствии с ранее заданным именем хоста.
Перезапуск после правки настроек
Перезапустите сервис после правки конфигурационного файла:
sudo systemctl restart opensmtpd
Удостоверьтесь, что он запустился корректно:
sudo systemctl status opensmtpd
Проверка работы
На конфиге по умолчанию выполняется доставка писем в формате Maildir (отдельный файл на каждое сообщение) в каталог ~/Maildir внутри домашнего каталога пользователя-получателя. Каталог ~/Maildir должен быть создан заранее.
И так, вы выполнили описанные выше шаги: установили opensmtpd, исправили "listen" и "match" в конфиге и перезапустили службу после правки конфига.
Создаем пользователя:
sudo useradd ivanov
Создаем каталог для почты:
sudo -u ivanov mkdir -p /home/ivanov/Maildir
Смотрим IP-адрес машины (или контейнера) с почтовым сервером:
ip a
Будем считать, что IP-адрес 192.168.122.12.
Подключаемся к нему с другой машины:
telnet 192.168.122.12 25
Ждем пару секунд появления текста:
220 mail.rosa.loc ESMTP OpenSMTPD
Отправляем сообщение-приветствие:
helo dom.loc
В ответ получаем:
250 mail.rosa.loc Hello dom.loc [192.168.122.1], pleased to meet yo
Указываем отправителя письма (обратите внимание на необходимость строгого соблюдения RFC 2822 и указания адреса в < >):
mail from:<vasya@domain.loc>
В ответ получаем:
250 2.0.0 Ok
Указываем получателя письма:
rcpt to:<ivanov@rosa.loc>
В ответ получаем:
250 2.1.5 Destination address valid: Recipient ok
Вводим:
data
В ответ получаем приглашение начать ввода письма. Вставляем текст:
Message-ID: <x01@dom.loc> Subject: Test Privet .
В ответ получаем:
250 2.0.0 df9164e0 Message accepted for delivery
Смотрим лог opensmtpd:
sudo journalctl -u opensmtpd
Видим там доставку нашего сообщения.
Оно сохранилось в домашнем каталоге пользователя-получателя:
$ sudo cat /home/ivanov/Maildir/new/1670703224.ded2147b.mail.rosa.loc Return-Path: <vasya@domain.loc> Delivered-To: ivanov@rosa.loc Received: from dom.loc (hp-xfce [192.168.122.1]) by mail.rosa.loc (OpenSMTPD) with SMTP id df9164e0 for <ivanov@rosa.loc>; Sat, 10 Dec 2022 20:13:31 +0000 (UTC) Message-ID: <x01@dom.loc> Subject: Test Privet
Домашний каталог пользователя ivanov был получен через PAM, конфигурационный файл находится по адресу /etc/pam.d/opensmtpd
. Благодаря PAM, пользователь мог бы быть не только локальным, но и доменным (LDAP).
OpenSMTPD + Dovecot
Чтобы по IMAP полученные через SMTP, установите пакет dovecot:
sudo dnf install dovecot
Отредактируйте конфиг:
sudo nano /etc/dovecot/conf.d/10-mail.conf
В нем замените
#mail_location =
на:
mail_location = maildir:~/Maildir
Запустите службу:
sudo systemctl enable --now dovecot.socket
Теперь можно подключаться по IMAP и SMTP, например, через Thunderbird.
OpenSMTPD получает письмо по протоколу SMTP, кладет его в ~/Maildir, а Dovecot отдает его по IMAP.
По умолчанию и opensmtpd, и dovecot настроены использовать системных пользователей Linux и их пароли.