Настраиваем домашний почтовый сервер и уходим с «бесплатной» почты
Время на прочтение
15 мин
Количество просмотров 278K
С каждым годом рекламы в интернете становится все больше, а подают ее с каждым разом все навязчивее. Дошло уже до почты: реклама в интерфейсе почтового ящика выглядит как первое непрочитанное письмо, которое машинально хочется открыть. Я не против рекламы, особенно когда она в тему и не сбивает с толку. Но маскировать её под непрочитанное письмо ‒ это перебор. Чувствуется, что следующим шагом рекламу начнут вставлять прямо в тело письма.
Мы уже привыкли, что наша активность в интернете анализируется для подсовывания релевантной рекламы. Но там нет персональных данных в чистом виде: есть пользователь-1 с такими-то привычками, есть пользователь-2 с другими привычками, пользователь-3, 4, 5 и т.д.
Совсем другое дело почта. Обработка почты ‒ это зачастую обработка персональных данных. Все что вы покупаете ‒ квитанции приходят к вам на почту, какими сервисами вы пользуетесь ‒ регистрационные данные и отчеты приходят к вам на почту, купили билеты в отпуск ‒ все данные о вашей поездке у вас в почте. А почта у вас где?
Проблема в том, что вся почта обрабатывается, плюс нет гарантий, что не будет случаев злоупотребления. А реклама в почте ‒ это просто вишенка на торте. Так что если вы неугомонный параноик, то вам давно пора отказаться от «бесплатной» почты.
Но отказаться не так то просто:
-
Можно завести ящик на другом почтовом сервисе, но там тоже не будет никаких гарантий отсутствия обработки писем.
-
Можно арендовать виртуальный сервер в интернете и настроить его как почтовый сервер, но без физического доступа ваши письма никогда не станут только вашими.
-
Можно сделать почту на каком-нибудь зашифрованном protonmail’e, но по этой же причине он стал так популярен у мошенников, что был заблокирован в этой стране.
В голове остается один вариант ‒ делать почтовый сервер прямо дома. Идея на первый взгляд смешная, но если разобраться, то можно получить довольно интересный результат с некоторыми дополнительными бонусами для всей домашней сети. Что у меня из этого вышло ‒ читайте далее.
Домашний сервер
Очевидно, что для почтового сервера нам нужен комп или его аналог, который будет доступен извне 24/7. Можно было бы посмотреть в сторону чего-нибудь компактного и маломощного типа Raspberry Pi, но т.к. мне нужен задел на будущее для других домашних систем, то я отдал предпочтение полноценному компу. На комп устанавливается гипервизор VMWare ESXi, а на нем уже живут виртуальные машины с необходимыми функциями и в том числе почтовый сервер. Такой подход дает дополнительную гибкость при проведении экспериментов и распределении ресурсов, а в случае чего виртуальные машины можно легко перенести на другое железо. Если нет особых требований к скорости работы, то для компа можно взять обычный HDD, т.к. от разделов подкачки виртуальных машин б/ушный SSD может быстро деградировать. Либо делать виртуальные машины без swap. Либо ставить два диска: основной диск виртуальной машины живет на SSD, а раздел подкачки на HDD. Компьютер я выбрал HP ProDesk 600 G2 SFF с процессором i5-6500: компактный корпус, достаточно низкое энергопотребление и ESXi на него устанавливается как родной. Все это хозяйство в режиме простоя потребляет 25 Вт, под нагрузкой 40-45 Вт. В частных объявлениях такой комп вполне реально найти за вменяемые деньги.
ESXi устанавливается со всеми настройками по умолчанию, затем сетевому интерфейсу присваивается статический IP. Более подробно и с картинками см. здесь.
Связь, электричество, бэкапы
Дома, в отличие от датацентра возможны перебои электричества, поэтому нужен ИБП с батареей на несколько часов работы сервера и роутера. От этого же электричества зависит работа оборудования внутридомового провайдера, поэтому ИБП для домашнего сервера не решает проблему отключения провайдерского оборудования и интернета вместе с электричеством. Получается, что на домашний роутер должно быть заведено два провайдера: основной (например, по витой паре или оптике) и резервный (через LTE модем). В разных роутерах процесс настройки выглядит по разному, но суть не меняется. Для резервного интернет-канала я взял LTE модем Huawei E3372-320. Свисток хорош тем, что есть в свободной продаже в разлоченном виде и он оснащен разъемами для внешних антенн, что в некоторых ситуациях может сильно улучшить качество связи.
Однако, с двумя провайдерами у вас будет два разных серых IP адреса, а почтовому серверу нужно нормальное доменное имя и по хорошему белый IP. Выход из ситуации у меня такой: арендуется виртуальный сервер (VPS) за границей, на нем настраивается VPN-сервер, а на почтовом сервере настраивается туннель до VPS. Кроме того, туннель можно поднять прямо с домашнего роутера (если он умеет) и таким образом ликвидируется сразу два зайца: мы получаем статический белый IP не зависящий от локальных провайдеров, а после тюнинга маршрутизации на роутере ‒ централизованный обход блокировок Роскомпозора для всех устройств домашней сети. Схема получается примерно такая:
Будет не очень весело, если жесткий диск домашнего сервера неожиданно накроется вместе со всей почтой. Поэтому необходимость бэкапов сервера даже не обсуждается. О настройке бэкапов поговорим в конце статьи.
Условные обозначения
В статье будут содержаться примеры конфигурации, в которых вам потребуется заменить некоторые значения на свои:
-
Hostname (имя компьютера) почтового сервера ‒ mail
-
Домен ‒ example.com
-
IP адрес VPS сервера ‒ 1.2.3.4
-
Локальная домашняя сеть 192.168.1.0 с маской /24 (255.255.255.0) и шлюзом 192.168.1.1
-
IP адрес почтового сервера в локальной сети ‒ 192.168.1.3
-
Внутри VPN тунеля IP адрес VPN сервера 192.168.77.1, IP адрес VPN клиента 192.168.77.3
Арендуем VPS, настраиваем VPN сервер
Есть куча разных VPS провайдеров, я выбрал vps2day.com, потому что они не просят персональные данные при регистрации, платить можно криптой, можно выбрать страну, где разместить сервер. Для целей VPN будет достаточно VPS в базовой конфигурации, который обойдется в 5 €/месяц. Сперва я зарегистрировал почтовый ящик на protonmail’e, а затем на него оформил аккаунт в vps2day, закинул крипту и арендовал VPS. В качестве ОС я выбрал Debian 10, через несколько минут после оформления аренды на почту приходит отбойник с IP адресом сервера и учетными данными для SSH подключения.
Логинимся, обновляемся:
apt update && apt upgrade
В качестве решения для VPN я выбрал Wireguard, но для установки на Debian 10 надо добавить его репозиторий в apt:
echo 'deb http://deb.debian.org/debian buster-backports main contrib non-free' > /etc/apt/sources.list.d/buster-backports.list
apt update
apt install wireguard
Создаем каталог для файлов конфигурации (если его вдруг нет), назначаем права доступа туда, переходим в него и генерируем закрытый и открытый ключи:
mkdir /etc/wireguard
chmod 700 /etc/wireguard
cd /etc/wireguard
wg genkey | tee privatekey | wg pubkey > publickey
На выходе получим два файла: privatekey
с закрытым ключом и publickey
с открытым ключом. Создаем файл конфигурации /etc/wireguard/wg0.conf
вида:
[Interface]
PrivateKey = сюда вставляем значение ключа из файла privatekey
Address = 192.168.77.1/24
ListenPort = 51820
MTU = 1380
Чуть позже мы дополним этот файл, а пока едем дальше.
Регистрация домена, настройка DNS
При регистрации домена в зоне .RU нужно предоставлять паспортные данные, а делать этого не очень хочется… В международной зоне список необходимых для регистрации данных скромнее. Для регистрации можно указать все тот же ящик с protonmail’a. В качестве примера представим, что мы зарегистрировали домен example.com.
В редакторе DNS зоны нужно добавить «А» запись с именем mail и с указанием на внешний IP нашего почтового сервера, коим будет являться арендованный VPS:
Запись «MX» с приоритетом 10 и указанием на mail.example.com:
Запись «TXT» с SPF v=spf1 ip4:1.2.3.4 mx ~all
:
Запись «TXT» DMARC v=DMARC1; p=reject; adkim=s; aspf=s; pct=100;
:
Создание виртуальной машины
На ESXi создаем виртуальную машину (ВМ). Диск почтового сервера будем шифровать, поэтому нужно учесть один нюанс. По умолчанию гипервизор создает swap файл, равный размеру оперативной памяти виртуальной машины в каталоге ВМ. Таким образом есть вероятность, что ключ шифрования диска, хранимый в памяти ВМ во время работы окажется в swap файле на гипервизоре, что совсем не здорово. Чтобы этого не случилось, в настройках виртуальной машины нужно зарезервировать всю отведенную под ВМ оперативную память, тогда swap файл будет нулевой длины.
Установка системы и начальная конфигурация
В гостевой ОС вполне можно отказаться от раздела подкачки, особенно если назначить ВМ достаточное количество оперативки, а datastore гипервизора находится на SSD. Я взял Debian 10, процесс установки полностью стандартный за исключением разметки диска. Имя сервера задаем mail, домен example.com. Система ставится в минимальной конфигурации. В разметке дисков я сделал первый раздел под /boot и второй раздел с шифрованием:
После установки системы я делаю несколько базовых вещей. Удаляю созданного при установке пользователя командой deluser <username> --remove-home
.
Задаю статический адрес, если это не было сделано во время установки. Для этого правим файл /etc/network/interfaces
. Обратите внимание, что сетевой адаптер вашего сервера может называться по другому, в моем примере ens192
. Секция файла с настройкой сетевого адаптера должна получиться такой:
allow-hotplug ens192
iface ens192 inet static
address 192.168.1.3/24
gateway 192.168.1.1
Для применения изменений выполняем команду (не забываем здесь заменить название сетевого интерфейса на свое):
ifdown ens192 && ifup ens192
Чтобы не углубляться в настройку домашних роутеров, VPN туннель мы будем делать сразу с почтового сервера до VPS и завернем туда весь трафик. Поэтому имеет смысл поменять DNS сервера на публичные. Для этого правим файл /etc/resolv.conf
, конечный вид которого примет вид:
nameserver 1.1.1.1
nameserver 1.0.0.1
IPv6 я тоже отключаю, для этого в конец файла /etc/sysctl.conf
добавляю строку:
net.ipv6.conf.all.disable_ipv6 = 1
Чтобы параметр применился выполняем команду:
sysctl -p
Проверить, отключился ли IPv6 довольно легко. Для этого нужно просмотреть вывод нижеследующей команды на наличие ipv6 адресов:
ip a
Устанавливаем ssh и wget:
apt install ssh wget
Включаю логин по паролю для root по SSH, для этого в файле /etc/ssh/sshd_config
добавляем строку PermitRootLogin yes
. Применяем изменения:
service ssh restart
Коннектимся к серверу по ssh и едем дальше.
Настройка VPN подключения
Устанавливаем wireguard на почтовом сервере так же как это делали на VPS несколькими шагами выше:
echo 'deb http://deb.debian.org/debian buster-backports main contrib non-free' > /etc/apt/sources.list.d/buster-backports.list
apt update
apt install wireguard
mkdir /etc/wireguard
chmod 700 /etc/wireguard
cd /etc/wireguard
wg genkey | tee privatekey | wg pubkey > publickey
Создаем файл конфигурации /etc/wireguard/wg0.conf
следующего содержания:
[Interface]
PrivateKey = значение ключа из файла privatekey
Address = 192.168.77.3/32
MTU = 1380
[Peer]
PublicKey = значение ключа из файла publickey с VPS сервера
AllowedIPs = 0.0.0.0/0
Endpoint = 1.2.3.4:51820
PersistentKeepalive = 20
Теперь идем по SSH на VPS сервер и в файл конфигурации /etc/wireguard/wg0.conf
добавляем:
# mail server
[Peer]
PublicKey = значение ключа из файла publickey с почтового сервера
AllowedIPs = 192.168.77.3/32
На VPS сервере в файл /etc/sysctl.conf
добавляем строку net.ipv4.ip_forward = 1
, чтобы разрешить форвардинг трафика, а чтобы применить эту настройку без перезагрузки, даем команду sysctl -w net.ipv4.ip_forward = 1
.
На VPS создаем небольшой скрипт фаерволла, который будет срабатывать при каждом включении сетевого адаптера. Создаем файл /etc/network/if-up.d/firewall
, содержимое файла спрятал под спойлер.
/etc/network/if-up.d/firewall
#! /bin/sh
EXT_IP="1.2.3.4"
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
# Разрешаем пинги в разумных пределах
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT --match limit --limit 5/second
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT --match limit --limit 5/second
# Разрешаем SSH
iptables -A INPUT -d $EXT_IP -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -d 192.168.77.1 -p tcp --dport 22 -j ACCEPT
# Established connections
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
# DNS
iptables -A INPUT -i eth0 -p udp -d $EXT_IP --sport 53 -j ACCEPT
# Wireguard
iptables -A INPUT -i eth0 -d $EXT_IP -p udp --dport 51820 -j ACCEPT
iptables -A FORWARD -i wg0 -j ACCEPT
iptables -A FORWARD -o wg0 -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# Выход в интернет для почтового сервера через VPS
iptables -t nat -A POSTROUTING -s 192.168.77.3 -j SNAT --to-source $EXT_IP
# Проброс портов к почтовому серверу через туннель
iptables -t nat -A PREROUTING -d $EXT_IP -p tcp --dport 80 -j DNAT --to-destination 192.168.77.3
iptables -t nat -A PREROUTING -d $EXT_IP -p tcp --dport 443 -j DNAT --to-destination 192.168.77.3
iptables -t nat -A PREROUTING -d $EXT_IP -p tcp --dport 25 -j DNAT --to-destination 192.168.77.3
iptables -t nat -A PREROUTING -d $EXT_IP -p tcp --dport 587 -j DNAT --to-destination 192.168.77.3
iptables -t nat -A PREROUTING -d $EXT_IP -p tcp --dport 143 -j DNAT --to-destination 192.168.77.3
iptables -t nat -A PREROUTING -d $EXT_IP -p tcp --dport 993 -j DNAT --to-destination 192.168.77.3
Не забываем сделать файл исполняемым командой chmod +x /etc/network/if-up.d/firewall
На VPS сервере запускаем wireguard:
systemctl enable wg-quick@wg0
systemctl start wg-quick@wg0
Возвращаемся на почтовый сервер и запускаем wireguard там:
systemctl enable wg-quick@wg0
systemctl start wg-quick@wg0
Состояние подключения можно посмотреть командой wg show
. Если хоть какие-то данные в обоих направления пошли, значит все ОК и можно двигаться дальше:
Настройка почтового сервера
В интернете есть пара отличных гайдов по развертыванию почтового сервера на Debian: e-mail caramel и ispmail. Основная сложность настройки заключается в том, что нужно правильным образом сконфигурировать довольно много файлов и нигде не накосячить. Нужно настроить Apache, PostgreSQL, Postfix, Dovecot, rspamd, sieve, сгенерировать SSL сертификаты и DKIM, выставить права. Со знанием дела весь процесс занимает несколько часов, а у новичков может легко занять пару дней и не факт что все получится с первого раза.
По гайду «e-mail caramel» на выходе получается почтовый сервер с IMAP протоколом для клиентов с обязательным шифрованием STARTTLS и Nextcloud’ом в качестве webmail. Сервер убирает из писем мета-теги User-Agent и Received. Учет почтовых пользователей ведется в БД.
Чтобы не заниматься курением конфигов, а результат был предсказуем ‒ я сделал скрипт, который автоматизирует 90% всего процесса из вышеупомянутого гайда с некоторыми отличиями:
-
Я не хочу ставить на почтовый сервер ресурсоемкий Nextcloud, вместо него я буду использовать Rainloop
-
Подрежем еще несколько мета-тегов: X-Mailer, X-Originating-IP, X-PHP-Originating-Script, Mime-Version. При этом в оригинальном гайде фильтрация конфигурируется в master.cf, а у меня в main.cf
Скрипт устанавливает необходимые пакеты, конфигурирует apache, БД, конфигурирует почтовые службы и на выходе получается практически готовый к употреблению почтовый сервер. При этом я пока не стал включать в скрипт генерирование SSL и DKIM, сделаем это руками чуть ниже.
Скрипт пока не тестировался на корректность работы при многократном запуске. Если почтовый сервер у вас развернут как виртуальная машина, то перед выполнением лучше сделать снапшот ВМ.
Скачиваем и распаковываем скрипт:
wget https://github.com/alexmdv/mailserver-autosetup/archive/main.zip
unzip main.zip
chmod +x -R ./mailserver-autosetup-main
cd ./mailserver-autosetup-main
Всего в каталоге 3 файла:
-
mailserver-setup.sh
— основной скрипт конфигурирования сервера -
mailuser-addnew.sh
— скрипт создания почтового юзера -
mailuser-setpass.sh
— скрипт смены пароля для существующего почтового юзера
Запускаем mailserver-setup.sh
. Скрипт попросит ввести следующие данные: имя хоста почтового сервера (в этом гайде это просто mail), имя домена, который был ранее зарегистрирован (например, example.com), IP адрес почтового сервера в локальной сети. Имя хоста + домен как раз образуют полное имя mail.example.com. По завершению работы скрипта почтовые сервисы остаются в выключенном состоянии, т.к. перед запуском надо сгенерировать SSL сертификаты и DKIM. Так же по завершению будет отображен админский пароль от БД. Этот пароль нужно вставить в скрипты mailuser-addnew.sh
и mailuser-setpass.sh
вместо слова PASSWORD, см в файлах вторую строку:
#!/bin/bash
pgadmpass="PASSWORD"
Генерирование сертификатов, завершение настройки
Генерируем SSL сертификат командой. Не забываем заменить example.com на свой домен:
certbot certonly --apache --agree-tos --email admin@example.com --no-eff-email --domain mail.example.com
Генерируем DKIM. В команде ниже вместе example.com ‒ ваш домен, а вместо 20210121 можно взять текущую дату (ггггммдд):
rspamadm dkim_keygen -b 2048 -d example.com -s 20210121 -k /var/lib/rspamd/dkim/example.com.20210121.key
Результатом выполнения команды будет такой текст:
20210121._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAumOhUcY3anZV4tGF1+VsYDD9bTZ0rqiFCm8FPdDHVB0U+ZPfZ2Cxf+x+jIFYXfO/jWEoAw2uYFz3Mt1ImvRQzU9oMx0t/0HtMKS4m3AhOBM5SkkhvoAaJkoIt3gTQ4KQyiBsZemihAw6V/gsex8K6M76m4WkbT92+tg192EGXBUDo0k7kk1rDOld0G9X2P0IxkVfqKqfwg+fI+0Im"
"AOFC1gBCIm18XPEGZA2oOoNbkWO95bD8Rj20yv8639bMA27+B08v4/aPXQb9HZLEwpsz8Qa/WgEZFGJzd6kUaYWHTfMmbgBXnET5N+tjXGvkjtnLbx25ru/PZTeckGjE/komQIDAQAB"
) ;
В файл /etc/rspamd/dkim_selectors.map
нужно добавить дату, чтобы получилось примерно так:
example.com 20210121
Идем в редактор DNS зоны у регистратора, добавляем запись «TXT» с именем 20210121._domainkey
и значением v=DKIM1; k=rsa; p=...
Дата в имени у вас будет своя, параметры перечисляются без двойных кавычек. Примерно так:
Тут есть нюанс. По умолчанию длина ТХТ записи может быть до 255 символов, а т.к. мы сгенерировали 2048 битный DKIM ключ, то его длина выходит за это ограничение и если вы внимательно посмотрите на результат генерации ключа, параметр p
разбит на два, каждый из которых в своих двойных кавычках. Если регистратор поддерживает ТХТ записи большей длины, то две части можно просто схлопнуть, убрав кавычки. У GoDaddy, например, максимальная длина TXT записи 1024 символа. А если регистратор не поддерживает больше 255 символов, то ключ записывается в две ТХТ записи. Или можно сгенерировать более короткий ключ на 1024 бита.
Последнее что нужно сделать ‒ поправить файл /etc/postfix/master.cf
. Необходимо раскомментировать строку:
#submission inet n - - - - smtpd
И 4 вложенных параметра, начинающихся на «-o». Двойной пробел перед ними нужно сохранить. Последний параметр, возможно нужно будет просто дописать. На всякий случай в архиве со скриптом приложен готовый к употреблению файл master.cf. Должно получиться так:
submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o cleanup_service_name=header_cleanup
Перезагружаем сервер.
Теперь заведем первый почтовый ящик. Для этого нужно воспользоваться скриптом mailuser-addnew.sh. Нужно будет ввести короткое имя (слово до @example.com), доменное имя (сам example.com) и пароль два раза. После этого можно попробовать настроить любой почтовый клиент используя созданную учетную запись.
В качестве примера пусть будет oleg@example.com. Для настройки почтового клиента набор параметров будет таким: почтовый адрес oleg@example.com, имя пользователя для IMAP и для SMTP так же oleg@example.com, сервер входящей почты IMAP mail.example.com, исходящей почты тоже mail.example.com, способ подключения везде STARTTLS.
Для проверки корректности настройки DKIM и SPF, можно воспользоваться ресурсом https://dkimvalidator.com, отправив туда тестовое письмо и посмотрев отчет. Все проверки должны быть в статусе pass (пройдено).
Устанавливаем Rainloop webmail
Все необходимые php модули для Rainloop уже были установлены скриптом. Скачиваем актуальную версию проекта, распаковываем, задаем права, включаем vhost на веб-сервере:
wget http://www.rainloop.net/repository/webmail/rainloop-community-latest.zip
unzip rainloop-community-latest.zip -d /var/www/webmail
cd /var/www/webmail
chmod 644 .
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chown -R www-data:www-data .
a2ensite webmail
service apache2 reload
Логинимся в админку rainloop по адресу https://mail.example.com/?admin
с логином admin
и паролем 12345
. Пароль естественно надо будет сменить, это делается в разделе Security.
Далее добавляем наш почтовый сервер. Идем в раздел Domains, отключаем все прочие почтовые сервера и жмем по кнопке Add Domain:
Вводим параметры нашего домена и жмем Add:
Дополнительно в закладке Login можно так же указать домен:
Теперь можно пробовать заходить в webmail https://mail.example.com
используя короткое имя пользователя (без @example.com):
Интерфейс выглядит лаконично, работает быстро, есть возможность настроить внешний вид под себя.
В качестве небольшого тюнинга безопасности Apache добавим пару строк в файл /etc/apache2/apache2.conf
. Это скроет данные о версии веб-сервера:
ServerSignature Off
ServerTokens Prod
Для применения изменений перезагрузим Apache командой service apache2 reload
.
phpPgAdmin
В БД mail_server есть три основные таблицы: alias, sharedmail_boxes, users. Все пользователи с хешами паролей хранятся в users. С помощью таблицы alias можно сделать псевдонимы к уже существующим почтовым ящикам, а с помощью таблицы shared_mailboxes можно сделать доступ к определенным ящикам для нескольких людей. Вход в phpPgAdmin по адресу http://локальный-ip-адрес-сервера/phppgadmin с логином postgres и паролем, который был сгенерирован скриптом.
Если нет нужды ковырять таблицы, то можно отключить сайт с phpPgAdmin вообще:
a2dissite lanhost
service apache2 reload
Бэкапы
Так как почтовый сервер я делал для себя и очень ограниченного круга людей, то много пространства серверу не нужно, емкость всего диска 20 Гб. Схема резервного копирования такая: один раз бэкапится виртуальная машина почтового сервера целиком, чтобы случае чего не настраивать сервер заново. А во вне делается бэкап почтового каталога. Естественно все бэкапы шифруем. Для копий каталога отлично подойдет VPS, у которого целых 25 Гб пространства, бэкапить буду с помощью restic. Но прежде надо настроить ssh подключение до VPS по сертификату.
На почтовом сервере генерируем RSA ключ, на все вопросы мастера просто жмем Enter:
ssh-keygen -t rsa -b 4096
Копируем открытый ключ на VPS:
cat ~/.ssh/id_rsa.pub | ssh root@192.168.77.1 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Устанавливаем Restic
apt install restic
Создаем репозиторий (копии будут храниться на VPS в каталоге /mnt/mserv-bkp
):
restic -r sftp:192.168.77.1:/mnt/mserv-bkp init
Выполнение команды может занять несколько минут, в конце попросят придумать пароль для шифрования репозитория. Чтобы автоматизировать процесс создания резервных копий, создадим файл с переменными /root/.restic
следующего содержания:
export RESTIC_REPOSITORY="sftp:192.168.77.1:/mnt/mserv-bkp"
export RESTIC_PASSWORD="Пароль придуманный на прошлом шаге"
Подхватываем файлик:
source /root/.restic
Попробуем выполнить резервное копирование почтового каталога:
restic backup /var/vmail
Проверяем, что в репозитории что-то появилось:
restic snapshots
Если есть наш только что созданный снапшот, то двигаемся дальше. Создаем файл /etc/root/restic
с содержимым:
#!/bin/bash
source /root/.restic
restic backup /var/vmail
Делаем его исполняемым:
chmod +x /root/restic
И добавляем в /etc/crontab
на запуск раз в сутки:
0 1 * * * root /root/restic
Заключение
Теперь настройку почтового сервера можно считать полностью завершенной.
Как видно, владение своим почтовым сервером стоит некоторых денег. Цена складывается из оплаты регистрации домена, аренды VPS, оплаты второго провайдера дома и в конце концов электричества. В моем случае получается в районе 950 ₽ в месяц за всё. С другой стороны резервный интернет канал и VPN будут полезны для всей домашней сети, но об этом мы поговорим в следующий раз.
Спасибо, что дочитали. Комментарии, вопросы, замечания и пожелания приветствуются!
Оригинал статьи в моем блоге.
Почтовый сервер, как следует из названия, — это устройство, которое отвечает за корректную доставку электронных писем от отправителя получателю. Так, например, когда вы отправляете почту через Gmail, вероятнее всего вы используете почтовый сервер Google.
Почтовый клиент — это программа, которая используется непосредственно для работы с почтой: чтения, отправки и хранения. Примеры таких клиентов — Microsoft Outlook, Thunderbird и так далее.
Протоколы для приёма и отправки почты
SMTP
Сервер исходящей почты использует протокол SMTP — simple mail transfer protocol — дословно переводится как «простой протокол передачи почты». Главная задача протокола — быть ретранслятором между отправителем и получателем. Она заключается в выполнении каждой из двух ключевых функций: проверять конфигурацию и разрешать отправку устройству-отправителю, отправлять сообщение и получать код ответа.
SMTP-сервер использует 25 и 465 порты для отправки почты с шифрованием и без шифрования соответственно.
POP3
POP3 (Post Office Protocol) — протокол для получения электронной почты. Он позволяет установить соединение с сервером и загрузить письмо на локальное устройство, чтобы отобразить его в почтовом клиенте. При этом на удалённом сервере информация не сохраняется (однако существует опция создания дублей).
Этот протокол использует 110 и 995 порты (без шифрования и SSL/TLS).
IMAP
IMAP (Internet Message Access Protocol) — протокол с теми же задачами и функциями, что и POP3. Ключевое отличие в том, что IMAP позволяет работать с почтой непосредственно на сервере, без дублирования почты на локальное устройство.
Используются порты 143 и 993 (без шифрования и SSL/TLS).
Зачем нужен собственный почтовый сервер?
Чаще всего ответ на этот вопрос: «если настроить свой сервер, можно использовать свой домен в адресе электронной почты». Это верный, однако не совсем точный ответ.
Настроить почту на своём домене вы сможете и без создания собственного сервера. Такую услугу, например, предоставляют VK Group, Яндекс.Почта и Google. Вам нужно только купить домен и привязать его к серверам компании в личном кабинете.
Основное преимущество такого подхода — уже настроенный SMTP-сервер. То есть вам не придётся заниматься настройками переадресации, антиспам-фильтрами и прочими сложными настройками. Достаточно лишь грамотно указать NS-записи, а это не так сложно, как создать свой почтовый сервер. Кроме того, стоимость обслуживания и настройки гораздо ниже по сравнению с конфигурацией собственного сервера.
Однако при использовании сторонних сервисов вы не будете иметь полный контроль над работой почты. Во-первых, количество отправляемых писем будет ограничено. У каждой компании установлены свои лимиты, но вам не хватит квоты, если вы работаете с большими объёмами электронной почты: корпоративная почта, рассылки и так далее.
При использовании собственного почтового сервера вам придётся не только следить за лимитами и квотами, но также обеспечивать резервное копирование, избегать попадания в спам-листы, а также настраивать права доступа, если почтой пользуются несколько человек.
Создание почтового сервера
В этой статье мы рассмотрим способы создания собственного почтового сервера. Для наших целей отлично подойдут облачные серверы Timeweb — мы выберем себе устройство с ОС Ubuntu версии 20.04.
Настроенная нами почта будет поддерживать шифрование, мы обеспечим защиту от спама, а также настроим панель администрирования писем в веб-среде.
Подготовка сервера
Первый шаг — переход в режим суперпользователя root:
sudo su
Перед установкой необходимого программного обеспечения обновим пакеты на сервере:
apt update && apt upgrade
Затем необходимо проверить, соответствует ли имя сервера домену вашей электронной почты:
hostname
Если в ответе вы видите что-то отличное от желаемого имени сервера, используйте команду hostnamectl
:
hostnamectl set-hostname mail.hostname.ru,
где mail.hostname.ru
— имя хоста.
Далее для корректной работы всех планировщиков и непосредственно почты настраиваем временную зону — устанавливаем пакет для синхронизации времени chrony
:
apt install chrony
timedatectl set-timezone Europe/Moscow
Если ваша временная зона отличается от МСК, выберите подходящую, воспользовавшись командой timedatectl list-timezones
.
Запускаем chrony
:
systemctl enable chrony
Теперь нужно открыть порты, необходимые для работы почтового сервера, с помощью утилиты iptables. Нам нужен следующий набор портов:
- 25, 465 — SMTP
- 110, 995 — POP3
- 143, 993 — IMAP
- 80, 443 — HTTP
В списке выше первыми идут порты для стандартных соединений, а вторыми — для защищённых. Воспользуемся утилитой iptables
:
iptables -I INPUT 1 -p tcp --match multiport --dports 25,110,143,465,587,993,995,80,443 -j ACCEPT
Правила iptables
сохраняются в течение одного сеанса, то есть после перезагрузки устройства они сбросятся. Чтобы этого избежать, используем пакет iptables-persistent
:
netfilter-persistent save
Теперь можем переходить к тому, как сделать свой почтовый сервер с точки зрения программного обеспечения.
Установка и настройка Postfix
Postfix — агент передачи почты (mail transfer agent) с открытым исходным кодом. Он имеет модульную архитектуру, которая не требует работы из-под суперпользователя root. Установим приложение postfix
и postfix-mysql
для работы с базой данных:
apt install postfix postfix-mysql
В диалоговом окне в процессе установки выбираем Internet Site. Это предполагает, что у вас есть доступ к редактированию DNS-записей и вы можете указать FQDN — полное имя домена. В следующем окне оставляем имя сервера и переходим далее.
После установки создаём новую учётную запись в системе, из-под этого пользователя будем работать с почтой. С помощью утилиты groupadd
создаём группу vmail
:
addgroup -gid 1080 vmail
Далее создадим пользователя vmail
и назначим ему домашнюю директорию /home/mail
:
adduser --home /home/mail -gid 1080 -uid 1080 vmail
… где 1080 — guid группы и uid пользователя. Если он занят, вы можете заменить его на любой другой.
Проверим, что права на директорию /home/mail
принадлежат пользователю vmail
и группе vmail
:
ll /home
Конфигурация почтового сервера
После создания пользователя можно приступить к настройке postfix
. Для этого открываем файл /etc/postfix/main.cf
в любом текстовом редакторе:
nano /etc/postfix/main.cf
… и редактируем строки:
mydestination = localhost.$mydomain, localhost, localhost.localdomain # Для каких доменов принимаем почтуInet_protocols = ipv4 # протокол работы postfix
smtpd_tls_cert_file = /etc/ssl/mail/public.pem # путь до публичного сертификата.
smtpd_tls_key_file = /etc/ssl/mail/private.key # путь до приватного сертификата.
Далее в этот же файл дописываем дополнительные опции, которые необходимы для корректной работы Postfix:
virtual_mailbox_base = /home/mail # где будем хранить почту
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf # путь к псевдонимам
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf # формат хранения доменов
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf # формат хранения почтовых ящиков
virtual_minimum_uid = 1080 # минимальный идентификатор виртуального пользователя
virtual_uid_maps = static:1080 # идентификатор основного пользователя, от которого создаются сообщения
virtual_gid_maps = static:1080 # идентификатор группы, от пользователей которой создаются сообщения
virtual_transport = dovecot # регистрируем доставщик сообщенийsmtpd_sasl_auth_enable = yes # разрешаем безопасную аутентификацию
smtpd_sasl_exceptions_networks = $mynetworks # не используем шифрование в сетях $mynetworks
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot # тип аутентификации
smtpd_sasl_path = private/auth # где лежат временные файлы
smtp_use_tls = yes # шифровать соединение при подключении к другому SMTP-серверу
smtpd_use_tls = yes # поддерживаем подключение TLS
smtpd_tls_auth_only = yes # и используем только TLS
smtpd_helo_required = yes # начинаем сессию с HELO (или EHLO)
Теперь создадим файлы, которые указывали в этой конфигурации. Сперва укажем, где Postfix должен брать псевдонимы. Открываем файл /etc/postfix/mysql_virtual_alias_maps.cf
:
nano mysql_virtual_alias_maps.cf
… и записываем в него следующие строки:
user = postfix
password = postfixPa$$w0rd
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
Здесь dbname
, user
и password
— база данных, имя пользователя и пароль для подключения к MySQL (настроим позже), query
— шаблон запроса.
Делаем аналогичные действия с файлом для получения данных доменов:
nano /etc/postfix/mysql_virtual_domains_maps.cf
Записываем:
user = postfix
password = postfixPa$$w0rd
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%u'
Следом — файл с почтовыми ящиками:
nano /etc/postfix/mysql_virtual_mailbox_maps.cf
Записываем:
user = postfix
password = postfixPa$$w0rd
hosts = localhost
dbname = postfix
query = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s' AND active = '1'
На этом этапе мы можем перейти к настройке файла master.cf
:
nano /etc/postfix/master.cf
И записываем туда следующие настройки:
submission inet n - n - - smtpd
-o smtpd_tls_security_level=may
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=/var/spool/postfix/private/auth
-o smtpd_sasl_security_options=noanonymous
-o smtpd_sasl_local_domain=$myhostnamesmtps inet n - n - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}
Генерация сертификатов безопасности
Для корректной работы почты нужно сгенерировать сертификаты безопасности с помощью утилиты openssl
. В первую очередь создаём директорию, в которой будем хранить сертификаты (указывали в файле main.cf
):
mkdir -p /etc/ssl/mail
openssl req -new -x509 -days 1000 -nodes -out /etc/ssl/mail/public.pem -keyout /etc/ssl/mail/private.key -subj "/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=mail.devnullhost.ru"
Запускаем и перезагружаем postfix
:
systemctl enable postfix && systemctl restart postfix
Установка и настройка Dovecot
Dovecot — IMAP и POP3 сервер с открытым исходным кодом. Установим его и модули для работы с БД:
apt install dovecot-imapd dovecot-pop3d dovecot-mysql
Настраиваем способ хранения сообщений:
nano /etc/dovecot/conf.d/10-mail.conf
Записываем в файл каталог для хранения почты. Будем использовать иерархию домен → пользователь:
mail_location = maildir:/home/mail/%d/%u/
В этом же файле настраиваем метод аутентификации:
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
unix_listener auth-userdb {
mode = 0600
user = vmail
group = vmail
}
}service stats {
unix_listener stats-reader {
user = vmail
group = vmail
mode = 0660
}
unix_listener stats-writer {
user = vmail
group = vmail
mode = 0660
}
}
Настраиваем аутентификацию в Dovecot:
nano /etc/dovecot/conf.d/10-auth.conf
Заменяем строку !include auth-system.conf.ext
на !include auth-sql.conf.ext
, указывая, что использовать нужно sql-авторизацию.
Редактируем настройки шифрования:
nano /etc/dovecot/conf.d/10-ssl.conf
В файле указываем:
ssl = required
ssl_cert = </etc/ssl/mail/public.pem
ssl_key = </etc/ssl/mail/private.key
При первом подключении пользователей создаём каталоги в домашней директории:
nano /etc/dovecot/conf.d/15-lda.conf
Добавляем строку:
lda_mailbox_autocreate = yes
Настраиваем подключение к базе данных:
nano /etc/dovecot/dovecot-sql.conf.ext
И добавим в него:
driver = mysql
connect = host=localhost dbname=postfix user=postfix password=postfixPa$$w0rd
default_pass_scheme = MD5-CRYPT
password_query = SELECT password FROM mailbox WHERE username = '%u'
user_query = SELECT maildir, 1080 AS uid, 1080 AS gid FROM mailbox WHERE username = '%u'
user_query = SELECT CONCAT('/home/mail/',LCASE(`domain`),'/',LCASE(`maildir`)), 1080 AS uid, 1080 AS gid FROM mailbox WHERE username = '%u'
Настраиваем интерфейс Dovecot:
nano /etc/dovecot/dovecot.conf
Указываем:
listen = *
Запускаем и перезагружаем Dovecot:
systemctl enable dovecot && systemctl restart dovecot
Установка и настройка PostfixAdmin
Для корректной работы PostfixAdmin нужен настроенный веб-сервер, PHP и база данных MySQL (стеки LAMP или LEMP). В этом руководстве пропустим конфигурацию веб-сервера и приступим непосредственно к установке PostfixAdmin.
Устанавливаем необходимые расширения php:
apt install php-mysql php-mbstring php-imap
Скачиваем PostfixAdmin в корневой каталог веб-сервера с помощью утилиты wget
:
wget https://sourceforge.net/projects/postfixadmin/files/latest/download -O postfixadmin.tar.gz
Создаём каталог postfixadmin
и помещаем туда содержимое архива:
mkdir /var/www/html/postfixadmin && tar -C /var/www/html/postfixadmin -xvf postfixadmin.tar.gz --strip-components 1
И создаём каталог для хранения кэша шаблонов:
mkdir /var/www/html/postfixadmin/templates_c
Ставим на весь каталог права веб-сервера:
chown -R www-data:www-data /var/www/html/postfixadmin
База данных
Создаём базу данных и пользователя:
mysql -u root
> CREATE DATABASE postfix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
> GRANT ALL ON postfix.* TO 'postfix'@'localhost' IDENTIFIED BY 'postfixPa$$w0rd';
> exit;
В локальном файле конфигурации postfix
добавим конфигурацию базы данных:
nano /var/www/html/postfixadmin/config.local.php
Содержимое файла:
<?php
$CONF['configured'] = true;
$CONF['default_language'] = 'ru';
$CONF['database_password'] = 'postfixPa$$w0rd';
$CONF['emailcheck_resolve_domain']='NO';
Заходим на страницу установщика postfixadmin в браузере — /postfixadmin/public/setup.php
. Здесь нам будет предложено сгенерировать хэш для авторизации.
Вводим пароль и нажимаем на кнопку. Под формой увидим сообщение, в котором содержится хэш, его мы должны вставить в файл /var/www/html/postfixadmin/config.local.php
:
nano /var/www/html/postfixadmin/config.local.php
Обновляем страницу /postfixadmin/public/setup.php
и входим на страницу с паролем, который вводили для генерации хэша. Если сервер настроен верно, в результате мы увидим страницу с проверками конфигурации.
В самом низу расположена форма, в ней создаём админа. После успешного создания переходим на страницу /postfixadmin/public/login.php
и авторизуемся в аккаунт, который только что создали.
В итоге вы будете перенаправлены на стартовый экран панели администрирования.
Создаём почтовый ящик в PostfixAdmin
В браузере переходим по адресу /postfixadmin/public/
. В верхнем меню выбираем «Список доменов → Новый домен».
Далее в разделе «Обзор → создать ящик» вводим данные для тестового почтового ящика.
Теперь вы можете проверить подключение с помощью почтовых клиентов. Параметры для подключения:
- Сервер — имя вашего сервера
- IMAP — 143 STARTTLS
- POP3 — 110 STARTTLS
- SMTP — 25 STARTTLS
- Логин и пароль — данные, которые вы указали при создании ящика
Заключение
В этой статье мы изучили, что представляет из себя домашний почтовый сервер, какие технологии и программное обеспечение используются для его настройки.
Основное преимущество владения своим почтовым сервером — возможность полностью настроить его под себя: создать неограниченное количество почтовых ящиков, привязать псевдонимы, включать и выключать пользователей. Все эти возможности можно реализовать, арендовав облачное решение Timeweb Cloud и настроив сервер по инструкции из этой статьи.
В следующих статьях расскажем о том, как бороться с вирусами в письмах, как настроить собственный веб-клиент для работы с почтой и о том, как избежать попадания в спам-листы.
Привет! Меня зовут Максим Кульгин, я основатель clickfraud.ru. Мы занимаемся защитой от скликивания рекламы «Яндекс.Директ». Немногие знают, что совсем скоро почта Яндекс станет платной для бизнеса. «Макс, нельзя делать свой почтовый сервер — будешь в спаме! Надо пользоваться готовыми сервисами!» — говорили мне. И что? Вот как всё было и чем закончилось…
Подготовил для вас довольно большое и подробное описание как сделать свой почтовый сервер, чтобы слать сколько угодно писем (рассылок и транзакционных), никому не платить, ни от кого не зависеть и это будет на 99.99% бесплатно. Никто вас не спросит откуда у вас база, как вы ее собрали и т.п. (я не пропагандирую спам).
Да, мы сами сейчас шлем не очень много писем (~500-600 в сутки транзакционных сообщений на все почтовые сервисы, и регулярные ежемесячные рассылки где-то на ~35 000 подписчиков). Доставляемость находится в пределах 98-100%. В конце статьи, для самых нетерпеливых :), привел скрины из Postmaster от Gmail и mail.ru в качестве доказательств. Не пугайтесь сложных терминов spf, dkim, dmarc — все это делается один раз и … забываете.
Кстати, один раз нас взламывали и наш WordPress послал ~50 000 писем на восстановление пароля (такую атаку мы не учли). В итоге в Gmail наши письма стали попадать в СПАМ. Что мы сделали? Написали подробное письмо в smaphouse с разъяснениями проблемы и через ~3 недели ситуация выправилась. Это я оппонирую к возможным аргументам, что если вы один раз «загадили» свой домен и IP-адрес почтового сервера, то ситуация тупиковая. Нет, наш опыт говорит о другом.
Ещё я веду Телеграм-канал «Русский ИТ бизнес», где без прикрас, и очень честно рассказываю об изнанке Российского ИТ-бизнеса, чтобы иллюзий не оставалось, если решитесь «войти в ИТ».
Подпишитесь, может быть будет интересно
Статья может показаться сложной, но на самом деле, если вы чуть-чуть углубитесь в вопрос, прочтете это руководство и еще поищите статьи в Интернете, то вы с вероятностью 99% сделаете свой почтовый сервер и забудете навсегда о платных альтернативах (после начала СВО их стало не так уж и много). Вам понадобиться самая дешевая VPS (уложитесь в 300-400 руб. в месяц, у нас серверов не мало, поэтому мы развернули на существующем) и бесплатный hMailServer.
Предвижу вопрос — «Макс, а как делать красивые, mobile ready рассылки, если мы подняли свой почтовый шлюз»? Ребята, никаких проблем. Мы используем прекрасный и 100% бесплатный плагин для WordPress (у нас сайты на WordPress, зачем нам что-то еще?), но на следующей неделе перейдем на платный аналог (40$ стоит, купил и забыл, копейки), который обладает нужным нам функционалом для построения сложных сценариев рассылок (о чем речь — послали рассылку, следующую шлем тем, кто открыл предыдущую, или открыл и куда-то кликнул и т.п.).
Что такое hMailServer?
Если на компьютере установлена операционная система Microsoft Windows (а во всех офисах и на подавляющем большинстве домашних ПК это так) , то когда заходит речь про почтовый сервер, сразу же приходит на ум Microsoft Exchange. А ведь есть и великолепная бесплатная альтернатива с открытым исходным кодом!
hMailServer — это бесплатный почтовый сервер для организаций, предприятий и даже обычных людей. Он легок в установке, использовании, не требует специальных знаний и специфического ПО, для него сгодится любой компьютер с Windows на борту.
Разработка hMailServer началась в 2002 году Мартином Кнафве. За годы он стал одним из самых популярных почтовых серверов для Windows.
В настоящий момент дальнейшая разработка hMailServer прекращена. Но не спешите удивляться! Все необходимые обновления безопасности выходят до сих пор. Его продолжают рекомендовать и скачивать. Он совместим со всеми современными системами.
Технологии, на основе которых работает hMailServer, не меняются, а замороженный функционал является скорее достоинством, нежели недостатком.
Главные компоненты hMailServer включают в себя:
- простой установщик;
- конфигуратор;
- встроенные средства безопасности;
- поддержка SSL-сертификатов;
- интеграция со сканерами вирусов;
- черные списки электронной почты;
- поисковые системы SPF/MX;
- интеграция с другим ПО через интерфейсы COM;
- много другое.
Позже мы остановимся на некоторых из этих функций.
Все необходимые шаги, в том числе и связанные со сложностями получения сертификатов в современных условиях, в статье описаны и опробованы на практике.
Помимо локальных настроек потребуется небольшая настройка записей DNS — иначе другие почтовые серверы не будут знать куда именно слать письма. Об этом тоже поговорим.
Подготовка к установке
Предупреждение о том, что программа больше не разрабатывается — игнорируем.
Для работы сервера не требуется ничего сверх обычного современного компьютера. Обычно hMailServer использует менее 100 Мб оперативной памяти, а потребляемые ресурсы сильно зависят от количества пользователей.
Можно предположить, что для подавляющего большинства случаев будет достаточно следующей конфигурации:
- 4 Гб оперативной памяти;
- 2 процессорных ядра.
Если сервер предназначается для обслуживания десятков тысяч пользователей, то простым увеличением памяти всё равно не обойтись. Но мы же не разорять Яндекс собрались, а всего лишь поднять почтовый сервер для своего предприятия — в этом случае о системных ресурсах можно сильно не переживать.
Поддерживаются все версии Microsoft Server (вплоть до версии 2003 года) и все версии Microsoft Windows, начиная с «десятки» и заканчивая XP с третьим пакетом обновлений. Самые новые версии Microsoft Server не перечислены в списке на официальном сайте, но их пользователи не сталкиваются ни с какими трудностями, что ожидаемо.
hMailServer создавался как простая программа «скачал и работай», поэтому имеет интегрированную облегченную версию MSSQL. Если по каким-либо причинам такая база данных не устраивает, то можно использовать любую из следующих:
- MySQL 4 and MySQL 5 (or Maria DB)
- Microsoft SQL Server 2000, 2005, 2008, 2012 and 2016 (including Express, Standard and Enterprise edition)
- PostgreSQL 8
Аналогично можно предположить, что не возникнет никакой несовместимости, если задействовать любой более новый MSSQL Server.
Последнее, что нужно учесть — hMailServer создан на основе «. NET Framework 2.0». Новые версии .NET имеют обратную совместимость с предыдущими версиями, поэтому любая новая версия прекрасно сгодится.
Установить «. NET Framework» можно многими способами, в том числе из командной строки. Для этого нужно запустить PowerShell с привилегиями администратора: щелкнуть правой кнопкой мыши на меню «Пуск» и выбрать «Windows PowerSwell (Admin)». Далее в открывшемся окне ввести:
Install-WindowsFeature Net-Framework-Core
Установится свежая версия.
Небольшая вводная информация для тех, кто вообще никогда не поднимал своего почтового сервера. Для работы понадобится:
- доменное имя для почты, которое можно купить у регистраторов доменных имен — это та часть почтового адреса, которая стоит после «@»;
- оборудование, подключенное к интернету (и, соответственно, имеющее IP-адрес) , которое дается в аренду хостинг-провайдерами.
Эти услуги можно покупать как раздельно, так и вместе «за раз», поскольку многие хостинг-провайдеры одновременно являются и аккредитованными регистраторами доменных имен.
Поскольку эта статья информационная, а не рекламная, то никаких ссылок давать не будем. Всё необходимое для понимания и использования — в статье ниже. Когда же придет время действовать, то поисковый запрос «регистрация доменного имени» или «хостинг провайдер» покажет все топовые конкурирующие предложения.
Настройки DNS
Как было сказано выше, есть несколько настроек DNS, нужных для правильной работы сервера.
DNS — Domain Name Service, служба доменных имен — глобальная адресная книга сети Интернет, продублированная на множестве специальных серверов. Именно к ней в первую очередь обращаются все программы, которые хотят установить соединение. Другие почтовые серверы, которые захотят посылать почту на наш почтовый сервер — не исключение.
Настройки DNS, как правило, производятся через веб-интерфейс провайдера, предоставившего доменное имя. Оформление страниц может отличаться, но суть одна: мы работаем с так называемыми ресурсными записями DNS, которые имеют стандартизированные названия. Содержание записей тоже стандартизировано. Ничего сложного в этом нет.
Самая главная запись — «A» (от англ. «address») , задающая соответствие между доменным именем и IP-адресом. Одному доменному имени может соответствовать несколько IP-адресов. Но это сложный случай, такая конфигурация используется для автоматической балансировки нагрузки. Поскольку у нас физически сервер только один, то IP-адрес тоже будет один.
Также нам понадобится запись «MX» (от англ, «mail exchange») , которая сообщает куда и как доставлять почту, направленную по указанному домену получателя. MX-записей может быть задано несколько (тоже для балансировки нагрузки) .
Ещё одна ресурсная запись, которую рекомендуется указывать — это «PTR» (от англ. «pointer») , которую ещё называют «обратной записью». Она задает доменное имя для IP-адреса. То есть, её действие является обратным для ресурсной записи «A». Обратите внимание: настраивать эту запись нужно не у провайдера, предоставившего доменное имя, а у хостера, который предоставил IP-адрес!
Без записи PTR принимающий почту сервер не сможет убедиться в том, что отправитель (на уровне доменного имени) — именно тот, за кого себя выдает. Если запись PTR не задана или расходится с тем, что показывает запись «A» — письма гарантированно улетают в спам.
«Лучше один раз увидеть, чем сто раз услышать». Специальная сетевая утилита «dig» идеально подходит для мониторинга записей DNS. Вот примеры с нашей почтой:
Настройка межсетевого экрана
Специальные действия с межсетевыми экранами требуются не всегда. Выбор нужного профиля, как правило, уже несет в себе необходимые и правильные настройки.
Межсетевой экран не должен блокировать порты, используемые почтовым сервером. Мы исходим из того, что будет использоваться только безопасный SSL-трафик, а потому для IP-адреса, используемого нашим почтовым сервером, следующие порты не должны блокироваться межсетевым экраном:
- 465 (SMTP SSL/TLS)
- 995 (POP3 SSL/TLS)
- 993 (IMAP SSL/TLS)
Поскольку настройку будем производить поэтапно, то традиционные порты, использовавшиеся в эпоху небезопасных соединений для работы почтового сервиса тоже могут потребоваться:
- 25 (SMTP)
- 587 (SMTP Send)
- 110 (POP3)
- 143 (IMAP)
Блокировать в дальнейшем их или нет — вопрос на усмотрение пользователя.
Установка
Итак, установочный файл по ссылке, приведенной в предыдущем разделе скачан. Двойной щелчок мышью на скачанном файле setup. exe запускает мастер установки.
Нажимаем «Next» и соглашаемся с лицензией.
Если нужно поменять папку, в которую устанавливается hMailServer, то это можно сделать на следующем шаге.
Дальше можно выбрать несколько вариантов установки. Нам понадобится полный, со всеми компонентами.
Далее выбирается база данных, которая будет использоваться. Для большинства подойдет встроенная Microsoft SQL Compat, которая и предлагается по умолчанию.
Один из последних шагов — выбрать подходящее название для пункта из меню «Пуск». Предлагаемое по умолчанию «hMailServer» — кажется самым удачным.
Наконец, нужно задать административный пароль. Он понадобится для дальнейших настроек. Надеюсь, не стоит напоминать, что пароль должен быть сильным и не теряться!
Всё готово к установке. Можно проверить правильно ли заданы параметры на предыдущих этапах.
Установка завершена — ничего сложного. Осталось настроить.
Для дальнейших действий в меню «Пуск» выбираем «hMailServer Administrator».
Продвигаемся дальше и выбираем «Automatically connect on start-up» — «Автоматически подключаться при запуске» — чтобы не возвращаться к этому в будущем. Если hMailServer расположен на удаленном сервере, то нужно указать хост (полное имя домена, FQDN) или IP-адрес, в противном случае — оставляем «localhost».
Нажимаем «Connect» — «Соединиться» — и вводим административный пароль, созданный при установке. Появляется панель администратора.
Теперь все те данные, которые мы узнали у поставщиков услуг интернета — регистратора доменного имени и хостинг-провайдера — нужно занести в hMailServer.
Конечно, нужно учесть, что это «внешние» данные — то есть те, которые видны со стороны Интернета. Если на уровне локальной сети производится трансляция IP-адресов или проброс портов, то в программе нужно указывать данные именно со стороны нашего почтового сервера.
Одно из многих «узких» мест в настройке — задание публичного имени хоста. Для этого в административной панели нужно перейти в раздел «Settings» −> «Protocols» −> «SMTP», вкладка «Delivery of e-mail».
Разные источники по-разному трактуют, что именно должно быть в поле «Local host name». У кого-то работает «localhost», кто-то указывает доменное имя, дальше все спорят почему у кого-то работает, а у кого-то нет.
Почта будет успешно отправляться при любом значении этого поля. Вопрос в другом — это значение используется принимающими серверами для выявления спама.
Правильно задать здесь такое значение, которое не будет выглядеть с точки зрения удаленного сервера несоответствием. Поэтому самое разумное — указать домен, возвращаемый ресурсной записью PTR для внешнего IP-адреса нашего почтового сервера.
Здесь не страшно что-то перепутать. Ничего опасного не произойдет, просто почтовый сервер поначалу не будет работать или будет работать с ошибками, что сразу выяснится на дальнейшем этапе отладки.
Подключение ретранслятора
Есть ещё одна полезная технология в мире электронной почты, которая может пригодиться — это ретранслятор, когда наш сервер отправляет письма не напрямую, а через промежуточный почтовый сервер-посредник.
Такой подход помогает отправлять большие объемы электронной почты, преодолевая различные ограничения на доставку с одного IP-адреса и не допуская ошибочной маркировки писем как спама.
Это отдельный вид сетевого бизнеса — вкладывание денег в инфраструктуру для обработки больших объемов информации. Типичный представитель этого бизнеса — провайдер интернет-услуг (ISP) , и воспользоваться им (точнее, его IP-адресом) для работы с электронной почтой — очень эффективный подход, который значительно улучшит простоту, надежность и доставляемость электронной почты.
Интернет-провайдер на основе MX-записи DNS разберется куда именно должна доставляться электронная почта.
Все необходимые параметры можно указать на той же странице, что и выше.
В разделе «SMTP Relayer» нужно ввести имя хоста, используемый порт и, возможно, данные для аутентификации — всю эту информацию нужно брать у провайдера на страничке с документацией.
Ретранслятор использовать не обязательно. Особенно при относительно небольших объемах рассылки. Более того, почти наверняка за эту услугу придется платить, хоть и не большую сумму. В принципе, пользоваться услугами того же Яндекса для отправки корреспонденции — это по сути то же самое.
Ретранслятор часто оказывается полезен, когда после взятия IP-адреса где-то в облаках, тот попадается «с историей». Подключить ретранслятор намного проще, чем выводить IP-адрес из-под блокировок и черных списков.
Добавление домена и аккаунтов
Настало время указать доменное имя. Для этого на административной панели нужно щелкнуть «Add domain» или же развернуть сворачивающийся список «Domains», а затем щелкнуть кнопку «Add…».
Теперь осталось добавить пользователей — тех, кто будет иметь почтовые ящики на нашем почтовом сервере. Помимо имен можно задать пароли, ограничение размера для сообщений и тому подобное.
Active Directory
Можно упростить администрирование учетных записей и паролей, если объединить hMailServer с локальной Active Directory. Тогда, используя вкладку Active Directory, можно создавать новых пользователей, удалять старых, менять им пароли и так далее.
Active Directory (далее просто «AD») — это своего рода каталог, в котором хранятся данные о различных объектах в сети: компьютерах, серверах, принтерах, сервисах.
В hMailServer есть два сценария по работе с AD.
Первый сценарий — уже создана учетная запись пользователя в hMailServer и теперь её нужно связать с AD. Тогда, нажав на учетную запись пользователя, надо перейти на вкладку «Active Directory», установить соответствующий флажок, ввести домен AD и имя пользователя (SAMAccountName) .
Другой сценарий — добавление существующего пользователя AD в hMailServer. Для этого нужно щелкнуть правой кнопкой мыши на папке «Accounts», щелкнуть «Add AD account», выбрать домен AD и учетную запись пользователя.
Не забывайте нажимать кнопку «Save»!
SSL-сертификат
Пока что все настройки были базовыми. SSL-сертификат в дополнение дает возможность использовать шифрование электронной почты, а также задействовать прочие средства безопасности.
Но здесь теперь всё не так просто, как было раньше.
Сертификат должен быть признан всеми участниками сети, в том числе теми, кому будет адресована почта. Это значит, что сертификат должен быть выдан уполномоченным центром, который известен и отправителю почты и получателю.
Обычные пользователи, как правило, не задумываются над этими техническими особенностями, потому что корневые сертификаты основных удостоверяющих мировых центров — Sectigo, Thawte, Digisert, GeotTrust, RapidSSL и других — уже встроены во все браузеры, почтовые клиенты и прочие приложения, требующие этой технологии.
Казалось бы, нужно выбрать один из них, заплатить небольшую сумму за сертификат, установить его должным образом на сервере — и все проблемы безопасности решены разом.
Но не тут-то было! Многие из удостоверяющих центров прекратили работу с рядом стран по политическим причинам. Мало того, что они перестали продавать новые сертификаты, так они ещё и начали прекращать действия уже имеющихся, из-за чего посетители многих российских сайтов столкнулись с предупреждающей надписью.
Решений видится два: получить либо российский сертификат, либо сертификат одного из тех центров сертификации, кто занимается делом, а не политикой.
Недостаток первого варианта: далеко не все пользователи установили себе корневой сертификат российского министерства со сложным названием, прозванного в народе МинЦифры, а популярные приложения этот корневой сертификат по умолчанию не имеют.
Недостаток второго варианта: непростой поиск и действия по приобретению. Мы преодолели все сложности и выбрали второй вариант — использовали Global Sign.
Какой бы вариант не был использован, для получения сертификата нужно следовать всем инструкциям на сайте удостоверяющего центра. К сертификату должен прилагаться закрытый ключ (private key) .
Важно! hMailServer работает с сертификатами в формате PEM. Если сертификат получен в другом формате, то нужно выполнить преобразование. Например, чтобы преобразовать DER файл (.crt,. cer. der), можно выполнить в терминале следующую команду:
openssl x509 -inform der -in certificate.cer -out certificate.pem
Команда может завершиться с ошибкой. Такое бывает, если сертификат уже находится в формате PEM и нужно лишь сменить расширение файла.
Наконец, чтобы импортировать сертификат нужно перейти в «Settings», затем в «Advanced», выбрать «SSL Certificates» и нажать «Add».
В поле «Name» можно ввести произвольное название, но удобнее (а в дальнейшем и понятнее) использовать содержимое поля «Subject Name» полученного сертификата.
Итак, сертификат добавлен в программу, но этого не достаточно: hMailServer знает, где искать сертификат в системе по имени, а что с ним делать — не понятно. Чтобы сертификат работал, надо связать его с правильными портами. Для этого нужно там же, в разделе «Advanced», перейти в подраздел «TCP/IP ports».
Нужный порт может изначально не отображаться — нужно щелкнуть «Add», чтобы добавить его. После щелчка на кнопке «Add» нужно будет выбрать сертификат из выпадающего списка.
Напоминаем, какие порты какими протоколами используются:
- 587 — SMTP
- 995 — POP3
- 993 — IMAP
Настройка почтовых клиентов
Все современные почтовые клиенты поддерживают протоколы IMAP/POP3/SMTP, включая Microsoft Outlook. Другой популярной альтернативой является Mozilla Thunderbird, которую, в том числе, удобно использовать для проверки корректности работы сервера.
Все дальнейшие настройки Mozilla Thunderbird подтянет с сервера самостоятельно.
Если появляется похожее сообщение (то есть не используется защищенное соединение) — значит что-то напутано с портами и сертификатом.
Можно попробовать послать несколько почтовых сообщений туда-сюда, убедиться, что всё работает, а заодно посмотреть журнал.
Журнал почтового сервера
Кроме того, для отладки сервера будут полезны следующие ресурсы:
- mxtoolbox — для тестирования и отладки настроек, о которых шла речь в статье;
- mail-tester — для проверки «спам-благонадежности».
Результат
Те, кто уже сталкивался с настройкой Microsoft Exchange Server, заметят, что настройка hMailServer несравненно проще. Именно потому он и пользуется такой популярностью!
Нужно только поработать немного с DNS-записями, получить SSL-сертификат и установить программку. Несколько шагов — и почтовый сервер полностью настроен! Если кто делает такое впервые — потребуется всего час или два, причем основное время уйдет на понимание базовых вещей и осмысление интерфейсов, а не на сами манипуляции по настройке.
Рассмотренное в статье — только основа. Мы не затрагивали сложные штуки, которые поддерживает hMailServer:
- интеграция со сторонними службами, такими как RoundCube или SquirrelMail;
- поддержка специальных служб защиты от нежелательной почты;
- встроенное резервное копирование;
- правила и прочее.
Однако, вернемся к полученным результатам.
Кто-то говорил: «Ай-ай-ай! Будете в спаме!» Ну-ка, посмотрим…
«Ты что⁈ Надо пользоваться готовыми решениями! Ай-ай-ай!»
Я, как упрямый Труфальдино из Бергамо (многие, уверен, помнят такой фильм по пьесе Карло Гольдони) — забавный хитрый малый, который несмотря на окружающий скепсис — взял и поднял свой почтовик
Мы ничего не платим за рассылки и письма. Вообще! И в спам не попадаем. Доставляемость писем почти идеальная. Всё работает.
А почему? А потому, что мы не думаем, а делаем! Чего и всем советую :). А если серьезно, спрашивайте в комментариях, если я что-то упустил!
Последнее время мы уделяли мало внимания почтовым системам, но вновь возросший интерес заставил нас вернуться к этой теме. Основные затруднения начинающих при работе с почтой состоят в том, что почта — это сложная система, состоящая из нескольких компонентов, взаимодействующих как между собой, так и с внешними системами. Кроме того, почта крайне чувствительная к правильной настройке DNS. Чтобы разобраться и не запутаться во всем этом мы предлагаем освежить знания по базовому устройству систем электронной почты при помощи этой статьи.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Общее устройство и принципы работы почтового сервера
Севрер электронной почты — это сложная система, состоящая из множества компонентов, которые взаимодействуют между собой. Поначалу кажется, что разобраться во всем этом многообразии довольно сложно. Но это не так, почтовый сервер содержит ряд ключевых компонентов, вокруг которых уже выстраиваются дополнительные и для понимания происходящих процессов достаточно знать основные принципы работы.
Давайте рассмотрим схему ниже, она предельно упрощена и содержит только самые важные элементы, которые лежат в основе любой почтовой системы.
Их ровно три:
- Message transfer agent (MTA) — агент передачи сообщений. Данный компонент, собственно, и является почтовым сервером в узком понимании этого термина, он работает по протоколу SMTP и его основная задача прием и передача почтовых сообщений, как для внешних получателей, так и для внутренних. Взаимодействует как с внешними серверами, так и с почтовыми клиентами. И это единственный компонент почтового сервера, который имеет связь с внешним миром. Основная задача MTA — это отправка почты внешним получателям и получение почты для внутренних.
- Message delivery agent (MDA) — агент доставки сообщений. Он обеспечивает доставку полученных от MTA сообщений к месту прочтения клиентским приложением. Проще говоря, именно с помощью MDA почтовый клиент может получить доступ к собственной почте. Работает по протоколам POP3 и IMAP, также отдельные решения могут использовать проприетарные протоколы, такие как MAPI Exchange. MDA не взаимодействует с внешними системами и не принимает участие в отправке почты, его задача — доставка уже полученных сообщений клиенту почтовой системы.
- Хранилище почтовых ящиков — третий компонент почтового сервера, отвечающий за хранение полученных и отправленных сообщений. Различные системы могут использовать разные форматы хранения, в Linux системах наиболее распространены mbox и Maildir, но на этом варианты хранилищ не исчерпываются.
С почтовым сервером взаимодействует клиент электронной почты — Mail User Agent (MUA) — он может быть как в виде отдельного приложения, так и в виде популярного ныне веб-интерфейса. В любом случае это только разновидности почтового клиента, принцип их работы одинаков.
Когда пользователь хочет получить свою почту, он обращается к агенту доставки сообщений (MDA), сегодня MDA несут важную дополнительную функцию — ведение базы пользователей и их аутентификацию. Проверив, что пользователь тот, за кого себя выдает MDA предоставляет ему доступ к собственному ящику в хранилище при помощи выбранного пользователем протокола. Во всех современных решениях используется протокол IMAP, который позволяет гибко управлять собственным почтовым ящиком и не требует обязательного скачивания сообщений клиентом.
Если же мы хотим отправить почту, то почтовый клиент связывается с MTA, либо с дополнительным компонентом — Message submission agent (MSA) — агентом отправки почты, он использует отдельный порт — 587 и его задача получение сообщений от почтового клиента и передача их MTA для отправки по назначению. Вне зависимости от наличия MSA клиент всегда может отправить почту непосредственно через MTA.
Мы не стали добавлять MSA на основную схему, чтобы не плодить дополнительных сущностей, но о его существовании надо знать, чтобы не удивляться наличию дополнительного порта на почтовом сервере. Его появление во многом обусловлено ограниченностью протокола SMTP, тогда как для взаимодействия с клиентами нужны были дополнительные функции, поэтому MSA работает через протокол ESMTP (Extended SMTP) и поддерживает, например, такие возможности, как аутентификацию пользователей. Чаще всего функции MTA и MSA выполняет один и тот же пакет.
Теперь, читая, скажем, про связку Postfix + Dovecot + Roundcube вы будете четко понимать, что речь идет про MTA (Postfix), MDA (Dovecot) и веб-клиента MUA (Roundcube), представлять назначение каждого компонента и не путаться во взаимодействии с ними.
Обязательные DNS-записи: MX и PTR
Итак, мы хотим отправить почту. Пользователь открывает MUA, быстро создает сообщение и нажимает кнопку Отправить. Дело сделано, но мало кто задумывается о том, что происходит после, все мы привыкли что уже через считанные секунды наше сообщение будет в почтовом ящике получателя.
На самом деле сообщению предстоит достаточно длительный путь, сопровождаемый активной работой компонентов как сервера отправителя, так и сервера получателя. Но пойдем по порядку.
Первым в дело вступает MTA, он анализирует поле адреса назначения в заголовках письма, допустим мы видим там:
To: Maria Smirnova <MSmirnova@example.org>
From: Ivanov Ivan <IIvaniov@example.com>
Если домен получателя отличается от обслуживаемого MTA домена, то он должен каким-то образом узнать, кому именно отправлять почту. Для этого он использует систему DNS, запросив специальную запись — MX. MX — Mail Exchanger — особая DNS-запись, указывающая на адрес почтового шлюза домена, таких записей может быть несколько, они отличаются приоритетом, чем больше число — тем ниже приоритет.
MX-запись никак не связана с отправкой почты, но именно она указывает на узел, который уполномочен принимать почту в данном домене. Данная запись должна содержать именно имя узла, а не IP-адрес, после чего сервер-отправитель сделает еще один запрос, чтобы по имени хоста получить его IP-адрес. Данные записи прописываются администратором домена и в базовом варианте будут выглядеть так:
@ IN MX 10 srv-mx-01
srv-mx-01 IN A 203.0.113.25
Первая запись — это MX-запись для домена, которая говорит кому отправлять почту. Вторая запись сопоставляет имя srv-mx-01.example.com и действительный IP-адрес узла.
Часто администраторы предпочитают использовать псевдонимы — CNAME — для указания на отдельные почтовые узлы. Это удобно, но в любом случае MX-запись должна содержать реальное имя узла, а не псевдоним, поэтому правильно будет так:
@ IN MX 10 srv-mx-01
smtp IN CNAME srv-mx-01
imap IN CNAME srv-mx-01
srv-mx-01 IN A 203.0.113.25
Принимать почту в домене могут несколько серверов, или один, но на разных каналах. Допустим у нас есть основной канал и есть резервный, тогда набор записей будет выглядеть так:
@ IN MX 10 srv-mx-01
@ IN MX 20 srv-mx-02
srv-mx-01 IN A 203.0.113.25
srv-mx-02 IN A 198.51.100.25
Если сервер-отправитель не сможет отравить почту первому MX-серверу в списке, то он переключится на второй. Обратите внимание на разный приоритет серверов: 10 и 20, таким образом пока доступен сервер с приоритетом 10 почта никогда не будет направляться серверу с приоритетом 20.
А если мы укажем несколько серверов с одинаковым приоритетом? Почта будет направляться на все из них по принципу Round-robin, т.е., чередуясь по кругу, такое решение можно использовать для балансировки нагрузки.
C MX-записями разобрались, переходим к PTR. PTR — Pointer — соответствие адреса имени, позволяет на основании IP-адреса получить имя хоста этого узла. Какое это имеет отношение к отправке и получению почты? Да никакого, наличие или отсутствие PTR-записи никак не влияет на процесс отправки или получения почты. Но зачем же тогда она нужна?
Основное ее назначение — это защита от спама. Уже давно существует соглашение, что добросовестный отправитель почты имеет PTR-запись. Это позволяет сразу отсечь огромный пласт взломанных и инфицированных систем, потому как прописать PTR-запись может только владелец IP-адреса, т.е. хостер или провайдер. Поэтому даже получив полный доступ к инфраструктуре, включая DNS-сервер, злоумышленник все равно не сможет добавить или изменить PTR-запись.
Для кого следует прописывать обратную запись? Для имени узла, фактически отправляющего почту, вне зависимости от того, какие домены он обслуживает. Так один почтовый сервер может обслуживать множество доменов, но PTR-запись мы должны прописать для фактического имени хоста. В классическом виде PTR-запись будет выглядеть так:
25.113.0.203 IN PTR srv-mx-01.example.com.
Обращаем внимание на то, что в PTR всегда указывается полное доменное имя FQDN и обязательно с точкой на конце. Но это знание более академическое, так как обратной зоной будет управлять ваш провайдер и прямого доступа туда у вас не будет.
Еще один интересный момент, это обратные записи для нескольких каналов одного сервера, ошибкой будет прописать:
25.113.0.203 IN PTR srv-mx-01.example.com.
25.100.51.198 IN PTR srv-mx-02.example.com.
Почему? Да потому что сервера srv-mx-02 у нас физически не существует, мы придумали его как второе имя для основного сервера srv-mx-01 и в заголовках писем в качестве отправителя будет присутствовать именно это имя. Кроме того, как мы уже говорили, MX-сервера не имеют никакого отношения к процессу отправки почты.
Поэтому правильно будет сделать PTR-записи так:
25.113.0.203 IN PTR srv-mx-01.example.com.
25.100.51.198 IN PTR srv-mx-01.example.com.
И еще раз предупредим, все записи выше даны сугубо в академических целях, в реальности вам нужно будет только сообщить провайдеру (или провайдерам) для какого узла им нужно сделать PTR-запись.
SPF — Sender Policy Framework
SPF — это специальный тип DNS-записи в формате TXT, позволяющий владельцу домена указать те узлы, которые имеют право отправлять почту от имени домена. Эта запись не является обязательной, но ее наличие резко снижает вероятность попадания вашей корреспонденции в спам.
Чаще всего содержимое SPF сводится к стандартному:
@ IN TXT "v=spf1 +a +mx ~all"
Запись состоит из списка тегов и значений, теги в SPF-записи называются механизмами и могут иметь следующие значения:
- v — версия SPF, это обязательный механизм, сейчас доступно единственное значение v=spf1
- a — определяет узлы на основе доменного имени (A-записи), формат a:example.com, если домен не указан, то применяется текущий домен
- mx — определяет узлы на основе MX-записей домена, если домен не указан, то применяется текущий домен
- ip4/ip6 — определяет узлы на основе IPv4 или IPv6 адреса
- all — все остальные узлы
- include — включает в состав SPF-записи указанного домена, например, include:_spf.yandex.net
- redirect — использовать для домена SPF-записи указанного домена.
Для уточнения действий к механизмам применяются квалификаторы (префиксы):
- + — Аутентификация пройдена. Узлу разрешена отправка почты от имени домена.
- — — Аутентификация не пройдена. Узлу запрещена отправка почты от имени домена.
- ~ — Аутентификация с неполным отказом. Скорее всего, узлу запрещена отправка почты от имени домена.
- ? — Нейтральный квалификатор, обозначает что для узла нет явных указаний, обычно используется как ?all
Таким образом стандартная запись читается как: разрешено отправлять почту узлам перечисленным в A и MX записях домена, остальным, скорее всего запрещено. При аутентификации с неполным отказом письма от прочих узлов обычно не отвергаются получателем, а помечаются как подозрительные. Квалификатор «+» подразумевается по умолчанию и его можно не указывать. Если нам нужно указать несколько узлов, то используем несколько механизмов. Например:
@ IN TXT "v=spf1 a a:mail.example.org mx -all"
Здесь мы указали, что отправлять почту можно с узлов указанных в A и MX записях текущего домена, а также с узла mail.example.org.
Если у вас есть домены с которых никогда не должна отправляться почта, то не будет лишним указать для них следующую SPF-запись:
@ IN TXT "v=spf1 -all"
Теперь немного об include и redirect, может показаться, что они делают одно и тоже, но есть тонкости. Механизм redirect просто перенаправляет вас к записям указанного в нем домена. Это удобно, если сервер обслуживает сразу несколько доменов, это позволяет иметь одну единственную запись, которую будут использовать все остальные. Также это применяется при использовании своего домена совместно c публичными почтовыми системами:
@ IN TXT "v=spf1 redirect=_spf.yandex.net"
Такая запись указывает использовать для домена записи, указанные у публичной службы.
Если же вместе с публичными сервисами вы используете собственные сервера, то вам нужно использовать механизм include, который подгрузит записи указанного домена к вашим собственным.
@ IN TXT "v=spf1 ip4:203.0.113.25 include=_spf.yandex.net ~all"
Данная запись говорит о том, что отправлять почту имеет право узел с адресом 203.0.113.25, а также все остальные, которые перечислены в записях указанного домена.
DKIM — DomainKeys Identified Mail
Если говорить коротко, то DKIM — это технология электронно-цифровой подписи, которая позволят получателю убедиться, что письмо действительно принадлежит отправителю. Для этого на каждом почтовом сервере, которые отправляют почту в нашем домене мы генерируем ключевую пару RSA. Закрытый ключ мы добавляем в конфигурацию почтового сервера и теперь он будет подписывать все исходящие письма.
Если сервер обслуживает несколько доменов, то ключевые пары нужно создать для каждого домена.
Для того, чтобы проверить подлинность подписи мы публикуем открытый ключ и используем для этого систему DNS, сформировав специальную запись типа TXT:
m1._domainkey TXT "v=DKIM1; k=rsa; p=<публичный ключ>"
Где m1 — селектор, он выбирается произвольно и должен быть уникальным для каждого почтового сервера, также селектор указывается в конфигурации почтового сервера при настройке подписи DKIM. Он нужен для того, чтобы получатель мог получить открытый ключ именно того сервера, который отправил данное письмо.
Механизм предельно прост, при подписи письма сервер отправитель добавляет в заголовки селектор, сервер получатель извлекает селектор и ищет в DNS запись DKIM для этого селектора, после чего извлекает оттуда открытый ключ и проверяет подлинность подписи.
Технология DKIM не является обязательной к применению, но значительно повышает вероятность доставки ваших писем получателям.
DMARC — Domain-based Message Authentication, Reporting and Conformance
DMARC — это техническая спецификация, обеспечивающая единые механизмы проверки почты по SPF и DKIM, а также формирование и отправку отчетов. На первый взгляд выглядит сложно и непонятно, но на самом деле позволяет отправителю не только дать прямые указания что делать с почтой, но и получать обратную связь от получателей, что очень важно если вы только тестируете отправку почты.
В простейшем случае DMARC запись выглядит так:
_dmarc TXT "v=DMARC1; p=none; rua=mailto:report@example.com"
Запись состоит из тегов:
- v — версия DMARC, обязательный тег, в настоящее время единственное значение v=DMARC1
- p — правило для домена, указывает какое действие следует предпринять если письмо не прошло проверку, может иметь значения: none — ничего не делать, quarantine — поместить письмо в карантин, reject — отклонить письмо.
- sp — правило для субдоменов, принимает такие же значения, как и p.
- aspf и adkim — позволяют указать строгость проверки, по умолчанию используется мягкая проверка, при которой результат будет провален только при провале и SPF и DKIM, с помощью данных опций и значения s (strict) мы можем ужесточить проверку, и она будет провалена при провале только одной из указанных опций.
- pct — процент писем, подлежащих фильтрации DMARC, удобно для постепенного внедрения проверки, например, мы можем для начала указать 10% и потом по отчетам анализировать правильность настройки почтовой для отправляемых нами писем.
- rua и ruf — адреса для направления ежедневных отчетов о применении политик DMARC, при этом ruf используется для отчета только о письмах, не прошедших проверку.
- fo — определяет о каких не пройденных проверках сообщать владельцу домена, по умолчанию значение 0 — сообщать только если не пройдены проверки SPF и DKIM, 1 — если не пройдена хотя бы одна проверка, s или d — если не пройдена SPF или DKIM.
В самом простом варианте мы говорим получателям ничего не делать с не прошедшими проверку письмами и слать нам отчеты на указанный адрес.
Более сложная политика может выглядеть так:
_dmarc TXT "v=DMARC1; p=quarantine; sp=reject; rua=mailto:report@example.com; ruf=mailto:admin@example.com; fo=1; pct=25"
Данная запись предписывает не прошедшие проверку письма основного домена отправлять в карантин, поддоменов — отклонять, сообщать если не пройдена даже одна из проверок и фильтровать 25% входящей почты. Отчеты присылать на указанные адреса, в нашем случае они разные. Общий отчет направляется в один почтовый ящик, отчет о не прошедших проверку письмах в другой.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Если вы любитель конфиденциальности и ищете хорошую альтернативу популярным провайдерам веб-почты, таким как Gmail, Outlook и Yahoo, вам повезло. Вы можете узнать, как настроить свой собственный почтовый сервер и избежать рутинного сканирования писем, которое эти провайдеры выполняют для миллионов пользователей, и наслаждаться безопасной и приватной средой для ваших писем.
Персональные или частные почтовые серверы живут в вашем собственном пространстве, в отличие от обычных серверных ферм Apple, Google и Microsoft. Таким образом, вы можете настроить свой собственный дисковод и полностью контролировать доступ, управление и хранение ваших электронных писем.
Для малых и средних предприятий (SMB), которые хотят сократить расходы, администрирование почты может показаться дорогим. Аналогичным образом, запуск их почтовых серверов кажется трудным из-за непрекращающегося спама . Вероятно, у них также нет собственного технического персонала или инструментов для его правильной настройки и запуска при управлении угрозами.
Вот почему многие малые и средние предприятия привлекают внешних поставщиков. Однако это сопряжено со скрытыми рисками, такими как потеря контроля над безопасностью вашей почты, риск нарушения конфиденциальности и конфиденциальности, проблемы с доставкой с общего сервера и многое другое.
К счастью, вы можете запустить безопасный почтовый сервер с фильтрацией спама для личного использования или использования в малом бизнесе. В этом руководстве мы расскажем, как создать и настроить свой собственный почтовый сервер прямо на вашем компьютере.
Что нужно для настройки персонального почтового сервера
- Отдельный компьютер с достаточной емкостью жесткого диска, который будет выполнять роль почтового сервера.
- Доменное имя для сервера электронной почты, который вы будете использовать для настройки адресов электронной почты.
- Надежное, высокоскоростное интернет-соединение.
- Операционная система, такая как Windows или Linux, для запуска сервера.
- Такие программы, как MailEnable, которые могут сортировать и маршрутизировать электронную почту, антивирусную защиту и фильтр спама, такие как SpamAssassin (программное обеспечение, которое вы будете использовать, зависит от операционной системы, на которой вы остановились).
- Система для оптимизации процесса установки.
Как настроить почтовый сервер
Более простой способ настроить сервер электронной почты — нанять ИТ-специалиста, который сделает это за вас. Как только начальная настройка будет готова, вы можете изменить настройки по своему вкусу.
Если вы не можете позволить себе заплатить кому-то, чтобы он сделал это за вас, все равно можно настроить его самостоятельно.
В этом руководстве мы расскажем вам, как настроить сервер электронной почты на основе операционной системы Windows. Мы будем использовать hMailServer, бесплатный и гибкий почтовый сервер для Windows, который позволяет вам обрабатывать все ваши электронные письма, не полагаясь на то, что ваш ISP будет управлять ими для вас.
Это один из самых популярных серверов электронной почты для Windows, который прост в использовании и установке и предлагает базовые функции, такие как безопасность и встроенная защита от спама от SpamAssassin.
Следуйте инструкциям ниже, чтобы завершить настройку.
Загрузите и запустите установщик hMailServer.
Нажмите Далее и согласитесь с условиями лицензирования.
Выберите Сервер на следующем экране, если вы хотите, чтобы ваш локальный компьютер выступал в качестве сервера, или Административные инструменты для удаленного управления сервером.
Далее выберите базу данных, которую вы будете использовать. Встроенная база данных проверена по умолчанию и идеально подходит для использования, если вы хотите что-то быстрое и простое.
Нажмите «Далее» и выберите папку, в которую будут сохранены ярлыки программы.
Укажите основной пароль, который вы будете использовать для управления установкой hMailServer (запишите его где-нибудь, так как вам придется часто его использовать).
Нажмите Далее, а затем нажмите Установить, чтобы добавить hMailServer на ваш компьютер.
После завершения убедитесь, что установлен флажок «Запустить администратор hMailServer», и нажмите «Готово».
Откроется окно администратора hMailServer. Нажмите Подключиться.
Теперь вы готовы настроить свой SMTP-сервер. В новом окне нажмите Добавить домен.
На вкладке «Общие» введите имя своего домена и нажмите «Сохранить».
На левой панели выберите Домены → Учетные записи.
Нажмите «Добавить», введите имя в поле адреса , пароль и нажмите «Сохранить».
Перейдите в Настройки → Протоколы и выберите SMTP (снимите флажки POP и IMAP).
Нажмите «Дополнительно» и введите localhost в разделе «Домен по умолчанию».
Затем Сохранить.
Нажмите «+» рядом с «Дополнительно», чтобы развернуть список, а затем нажмите «Автобан». Эта функция блокирует IP-адреса после нескольких неудачных попыток входа в систему.
Снимите флажок «Включено» и нажмите «Сохранить».
Выберите «Диапазоны IP-адресов» и «Порты TCP / IP», чтобы увидеть порты, настроенные для SMTP, IMAP и POP, например 25 и 110 для SMTP и POP и 143 для IMAP.
Открытие этих портов гарантирует, что почтовый сервер сможет получать и отправлять почту.
Включите различные параметры, такие как переадресация, автоответчик, черные списки DNS и другие в hMailServer.
Наконец, нажмите + рядом с Утилитами, чтобы развернуть список, и нажмите Диагностика, чтобы проверить свою конфигурацию.
В разделе «Выбор» (домен, на котором вы хотите запустить тестирование) введите домен, который вы ввели ранее, и нажмите «Пуск».
Ваш hMailServer настроен с основными опциями.
- Проверьте сведения о сервере сбора, чтобы увидеть версию hMailServer и тип базы данных.
- Протестируйте исходящий порт — здесь ошибка означает, что ваш SMTP-сервер не сможет обмениваться данными, и в этом случае необходимо устранить неполадки.
Поздравляем, вы только что создали свой собственный почтовый сервер.
Чтобы читать или писать свои электронные письма, получите клиент веб-почты, такой как Outlook или Thunderbird. Если вы хотите использовать вместо этого компьютерное приложение, введите свой адрес электронной почты в качестве имени пользователя, а тип аутентификации — пароль.
Хотя хостинг вашего собственного почтового сервера требует от вас определенных усилий и мер предосторожности, его стоит иметь, если вы не хотите суеты и незащищенности популярных провайдеров веб-почты.
Не забывайте следить за IP-адресом своего домена и доменом, всегда проверяя, есть ли какие-либо проблемы, такие как публичное внесение в черный список, поскольку некоторые поставщики могут сделать это для входящих сообщений электронной почты из-за неправильных настроек DNS.
Если вы цените конфиденциальность и ставите в приоритет доступность, лучшим выбором для вас будет собственный почтовый сервер.
Электронная почта — самый популярный способ общения в профессиональном мире. Хотя существуют различные поставщики услуг хостинга электронной почты, многие компании ищут альтернативу, например, собственные серверы для электронной почты.
Давайте узнаем больше о самостоятельных почтовых серверах и лучших платформах, предлагающих эту услугу.
Что такое самостоятельный хостинг?
Самостоятельно размещенные электронные письма — это серверы, которые могут быть размещены в вашей локальной сети или на вашем сервере. При желании вы всегда можете использовать его, интегрировав со сторонними учетными записями электронной почты. Однако его основная функция — позволить вам создать свой собственный почтовый сервер.
Преимущества использования самостоятельных почтовых серверов
Когда у вас есть собственный почтовый сервер, вся переписка по электронной почте будет полностью конфиденциальной. Больше не нужно быть жертвой стороннего слежки и обмена вашей личной информацией с рекламодателями.
Такие почтовые клиенты доступны через Интернет или локальную сеть после их интеграции со сторонними почтовыми службами.
Если вы решите использовать почтовый сервер с открытым исходным кодом, вы можете создать любое количество псевдонимов, которые вы хотите, и это тоже без каких-либо денег. Кроме того, вы можете отправлять неограниченное количество писем с этих серверов.
Более того, вы можете полностью контролировать свои почтовые ящики и их настройки. Это дает вам возможность устанавливать политики и настраивать параметры в соответствии с требованиями вашей организации.
Использование локального почтового сервера: рекомендации
Ваше решение установить и настроить собственный почтовый сервер для вашей организации должно быть обдуманным.
Прежде чем переходить на него с традиционного почтового клиента, следует проверить:
- Если на сервере есть агент передачи почты (MTA) для отправки писем от разных пользователей.
- Поддерживает ли он IMAP и POP3, два самых популярных протокола электронной почты.
- Чтобы блокировать входящий спам по электронной почте, должен быть эффективный спам-фильтр.
- Если он содержит антивирус для защиты ваших почтовых ящиков от вирусов и вредоносных программ.
- Агент доставки почты также должен быть там, чтобы отправлять электронные письма в папку «Входящие».
Давайте теперь посмотрим на лучшие самостоятельные почтовые серверы.
Модобоа
Модобоа — это почтовый сервер с открытым исходным кодом, который подчеркивает вашу конфиденциальность. Он работает как идеальная альтернатива другим вариантам службы электронной почты, поскольку создание почтового сервера для вас занимает всего около 10 минут.
Здесь вы получаете одни из лучших инструментов для установки, настройки и безопасности почтового сервера с открытым исходным кодом. Эта платформа предлагает все основные жесты электронной почты, включая веб-почту, управление списком контактов, управление календарем, организацию электронной почты с использованием фильтров, автоответчик для электронных писем и неограниченное количество почтовых ящиков, псевдонимов и доменов.
Кроме того, он предлагает различные инструменты администратора, такие как инструмент переноса данных и статистика. Вам не нужно проходить утомительный процесс индивидуальной установки каждого компонента, поскольку его установщик выполняет 95% работы.
Самым большим преимуществом использования Modoboa является безопасность данных и конфиденциальность. Поставщик услуг электронной почты использует протокол TLS для шифрования всех передач данных между сервером электронной почты и внешним миром. Протоколы SPF, DKIM и DMARC — это некоторые другие подходы, которые он использует для защиты вашей онлайн-репутации.
Майлу
Если вы ищете многофункциональный, но простой в использовании собственный почтовый сервер, выберите Майлу. Это бесплатное программное обеспечение предназначено для предоставления пользователям сервера, который можно легко настроить и обслуживать. Он не содержит ненужных функций, которые есть во многих групповых программах.
Платформа позволяет использовать стандартные почтовые серверы и протоколы, такие как IMAP, IMAP+, SMTP и Submission. Помимо веб-доступа, он поставляется с такими функциями, как несколько веб-почт, псевдонимы доменов, настраиваемая маршрутизация и административные интерфейсы.
Пользователи могут легко использовать псевдонимы, автоматическую переадресацию, автоответ и извлеченные учетные записи, чтобы сэкономить время и усилия. Глобальные администраторы, делегирование для каждого домена, объявления и квоты — вот некоторые из его административных атрибутов, которые позволят вам беспрепятственно управлять этим почтовым сервером.
Более того, платформа использует TLS, Letsencrypt! сертификат, исходящий DKIM, серый список, антивирусный сканер, защита от спама, автоматическое обучение, DMARC и SPF для обеспечения максимальной безопасности.
Докер Почтовый Сервер
Докер Почтовый Сервер — это полнофункциональный почтовый сервер с открытым исходным кодом, который поддерживает службу электронной почты через SMTP, LDAP и IMAP. Это готовое к производству решение поставляется только с файлами конфигурации, что делает его простым и версионным. Сервер не имеет базы данных SQL и может быть легко развернут и обновлен.
Он также поддерживает создание пользовательских правил для SpamAssassin и ClamAV, включая автоматические обновления. Сервер использует LetsEncrypt и самозаверяющие сертификаты для обеспечения безопасности данных. Пользователи также получают такие функции, как сценарий установки для настройки и обслуживания сервера, базовую поддержку Sieve через Dovecot, постоянные данные и состояние, а также разделители расширений.
Ваше устройство должно иметь 1 виртуальное ядро и 512 МБ ОЗУ для запуска этого сервера. Однако вам следует деактивировать такие службы, как ClamAV, для запуска на хосте с 512 МБ ОЗУ. Для оптимальной производительности рекомендуемая конфигурация включает 1 процессор Core, 2 ГБ ОЗУ и возможность подкачки для контейнера.
Poste.io
С использованием Poste.io, вы можете получить веб-почту и такие функции, как защита от спама, антивирус и веб-администрирование на своем сервере менее чем за 5 минут. Этот полнофункциональный почтовый сервер хранит пользовательские данные и конфигурацию отдельно от двоичных файлов. Поскольку он хранит пользовательские данные в файлах базы данных SQLite, вы можете использовать эту платформу с внешним хранилищем.
Если вы решите использовать этот собственный почтовый сервер, такие процессы, как обновление, резервное копирование и миграция, станут простыми. Он фокусируется на безопасности данных, поэтому вы обнаружите, что Poste.io оснащен мощными современными мерами безопасности вместо устаревших методов аутентификации.
Администратор может назначать различные права системным администраторам, администраторам домена и владельцам электронной почты. Также можно назначить квоту на количество электронной почты и хранилище почтового ящика. Его встроенный спам-фильтр и антивирусный механизм обнаруживают вирусы, вредоносные программы и трояны, чтобы обеспечить безопасность вашего почтового ящика.
Другими его примечательными функциями являются перенаправление электронной почты, автоответчик, фильтрация электронной почты и шифрование данных. Кроме того, он поставляется со встроенным автообнаружением, совместимым с Microsoft365 и Thunderbird.
iRedMail
Те, кто заинтересован в создании почтового сервера с решениями с открытым исходным кодом, должны выбрать iRedMail. Это почтовый сервер с открытым исходным кодом, который вы можете использовать с Red Hat, Ubuntu, CentOS, Debian, OpenBSD и FreeBSD.
Все элементы iRedMail имеют открытый исходный код, и пользователи будут получать обновления и исправления ошибок от надежных поставщиков Linux/BSD. Вы можете фильтровать электронные письма и упорядочивать их по папкам в интуитивно понятном веб-интерфейсе на основе веб-почты Roundcube.
iRedMail гарантирует, что электронные письма передаются с использованием безопасных соединений (POP3, IMAP и SMTP) и шифруются при передаче, чтобы третьи лица не могли получить доступ к содержимому вашей электронной почты.
Вы можете создавать неограниченное количество пользователей, администраторов, доменов и списков рассылки на этой платформе, не беспокоясь о расходах. Поскольку личные данные остаются на вашем собственном жестком диске, у вас есть полный контроль над безопасностью электронной почты, которую вы можете проверить через журнал транзакций.
Почта в ящике
Почта в ящике — это простой в развертывании собственный почтовый сервер, на котором вы можете полностью контролировать свою электронную почту. Используя эту платформу, вы можете превратиться в своего собственного почтового провайдера. Если рассматривать технический аспект, эта платформа превращает облачный компьютер в функциональный почтовый сервер.
Тем не менее, вам не нужно быть технически подкованным человеком, чтобы настроить это. Эта платформа предлагает веб-почту и сервер IMAP / SMTP, к которым пользователи могут получить доступ с помощью настольного инструмента и мобильных устройств.
Здесь вы получаете все стандартные функции электронной почты, включая правила почтового фильтра, фильтрацию спама, серый список, автоматическую настройку и автоматическое резервное копирование. Помимо этого, вы также можете синхронизировать с ним контакты и календари.
Эта платформа поддерживает размещение нескольких доменных имен и пользователей, что является полезной функцией для крупных компаний и предприятий. Его веб-панель управления позволяет добавлять учетные записи электронной почты, псевдонимы и настраиваемые записи DNS.
hMailServer
Пользователи Microsoft Windows должны выбрать hMailServer для бесплатного собственного почтового сервера. Вы можете использовать его в большинстве коммерческих сценариев, поскольку его расширяемый исходный код доступен на GitHub. Любая система веб-почты с поддержкой IMAP и SMTP может использоваться с hMailServer.
Установка и настройка hMailServer выполняются легко и быстро. Его простой в использовании инструмент администрирования позволяет пользователям добавлять учетные записи и домены, настраивать параметры и включать сканирование на вирусы.
Библиотека COM этой платформы поддерживает интеграцию с другим программным обеспечением, например с вашими существующими ИТ-системами. Его предварительно настроенные инструменты безопасности гарантируют, что ваш сервер никогда не будет использоваться для рассылки спам-сообщений.
Апач Джеймс
Апач Джеймс это агент передачи почты с открытым исходным кодом с поддержкой SMTP и POP3. Джеймс — это аббревиатура от Java Apache Mail Enterprise Server. Он состоит из модульной архитектуры, полной надежных и современных компонентов.
Сервер совместим с протоколами электронной почты, такими как SMTP, LMTP, POP3, IMAP, ManageSieve и IMAP. Он использует MySQL, HSQLDB, Cassandra и PostgreSQL для реализации хранилища. Некоторые из его других функций — это Mailbox API, расширяемые агенты обработки электронной почты, администрирование из командной строки и т. д.
Голубятня
Голубятня — это защищенный сервер IMAP, который можно использовать для небольших и крупных установок. Он считается одним из самых эффективных серверов IMAP, поддерживающих стандартные форматы файлов MBOX и Maildir.
Сервер индексирует почтовые ящики с полной прозрачностью и предлагает совместимость с существующими инструментами управления почтовыми ящиками. Самооптимизирующиеся индексы содержат именно то, что нужно клиентам.
Dovecot поставляется с гибкими режимами аутентификации пользователей, которые принимают различные базы данных и механизмы аутентификации. Кроме того, он позволяет переносить данные электронной почты с разных серверов IMAP и POP3. Дизайн и реализация этой платформы, ориентированные на безопасность, означают, что вам не нужно беспокоиться о конфиденциальности ваших данных.
Будучи удобным для администратора сервером, он генерирует понятные сообщения об ошибках. Его текущие функции могут быть расширены с помощью плагинов. Например, вы можете выделить квоту, включая поддержку ACL, добавить другие новые команды и отредактировать существующие с помощью плагинов.
Если сервер выходит из строя по какой-либо причине, он устраняет причину этого. При использовании этого почтового сервера пользователи могут изменять почтовые ящики и индексы одновременно с разных устройств. Это возможно, потому что Dovecot хорошо работает с кластерными файловыми системами.
Почтовый сервер WildDuck
Когда дело доходит до выбора программного обеспечения современного почтового сервера для POP3 и IMAP, люди часто зависят от Почтовый сервер WildDuck. Этот сервер полностью масштабируемый, отдает предпочтение Unicode и управляется через API. Объединив его с Haraka и ZoneMTA, пользователи могут создать полноценный почтовый сервер.
Он предлагает первоклассную поддержку IMAP, поэтому у вас не должно возникнуть проблем с его использованием с любым почтовым клиентом. Кластер MongoDB используется вместо файловой системы для хранения любых данных электронной почты. Более того, вы можете создать кластер любого размера.
Для написания этого почтового сервера используется безопасный для памяти язык. Кроме того, вам не нужно предоставлять какие-либо привилегии root или доступ к файловой системе.
MailSlurper
MailSlurper — полезный почтовый SMTP-сервер, который вы можете использовать для локальной и групповой разработки приложений. Этот легкий сервер подходит для отдельных разработчиков или небольших групп, которые хотят протестировать функциональность электронной почты, за исключением хлопот, связанных с установкой полноценного почтового сервера.
Его простой пользовательский интерфейс позволяет быстро искать и проверять электронную почту, отправленную с помощью ваших приложений. Независимо от того, используете ли вы ноутбук, стандартное оборудование или виртуальную машину небольшого размера, этот сервер будет без проблем работать на любом из этих устройств.
Более того, он способен обрабатывать тысячи одновременных подключений и работать с базами данных, включая SQLite, MySQL и MSSQL. Настроить этот почтовый сервер легко, и он имеет отзывчивый веб-интерфейс.
Вы можете запустить MailSlurper в Windows, OSX и Linux. Помимо возможности поиска электронных писем по теме, отправителю, получателю и содержимому электронной почты, он сохраняет часто используемые термины.
Демон сервера Magma
Демон сервера Magma — это система электронной почты с открытым исходным кодом, которая использует шифрование для обеспечения безопасности ваших данных. Сервер поддерживает протоколы POP, HTTP, SMTP, IMAP и MOLTEN. Кроме того, вскоре будет расширена поддержка DMTP и DMAP.
Разработчики этого почтового сервера коммерческого уровня изначально построили его в 2004 году. В настоящее время сервер обслуживает всех пользователей, включая малые и средние предприятия или предприятия.
Подведение итогов 📧
Компании, которым необходимо создать множество адресов электронной почты и иметь полный контроль над почтовым сервером и данными, сочтут автономные почтовые серверы очень выгодными. Кроме того, выбрав любые почтовые платформы из приведенного выше списка, вы можете обеспечить конфиденциальность и добавить настройки.
Поскольку вы заинтересованы в самостоятельном размещении, вы можете узнать о самостоятельных платформах электронного маркетинга, чтобы продвигать свой бизнес и получать больше потенциальных клиентов.
Содержание
- Как настроить свой почтовый сервер
- Что нужно для настройки персонального почтового сервера
- Как настроить почтовый сервер
- Как бесплатно настроить собственный почтовый сервер
- Преимущества
- Недостатки
- Настройка IP и DNS
- Обеспечение внешнего статического IP-адреса, публичного домена и записи PTR
- Настройка MX записи в DNS
- Настройка DKIM записи в DNS
- Настройка SPF записи в DNS
- Дополнительные записи DNS
- Выбор и запуск приложения почтового сервера
- Инициализация
- Протоколы электронной почты
- POP3, IMAP
- Проверка
- Аккаунт Gmail.com
- Специальные онлайн-сервисы
- Занесение своего почтового сервера в белые списки
- Внесение в белый список в публичных источниках
- Внесение в белый список определенных почтовых серверов
- Обход черных списков
- Заключение
- Добавить комментарий Отменить ответ
- Настраиваем домашний почтовый сервер и уходим с «бесплатной» почты
- Домашний сервер
- Связь, электричество, бэкапы
- Условные обозначения
- Арендуем VPS, настраиваем VPN сервер
- Регистрация домена, настройка DNS
- Создание виртуальной машины
- Установка системы и начальная конфигурация
- Настройка VPN подключения
- Настройка почтового сервера
- Генерирование сертификатов, завершение настройки
- Устанавливаем Rainloop webmail
- phpPgAdmin
- Бэкапы
- Заключение
Как настроить свой почтовый сервер
Если вы любитель конфиденциальности и ищете хорошую альтернативу популярным провайдерам веб-почты, таким как Gmail, Outlook и Yahoo, вам повезло. Вы можете узнать, как настроить свой собственный почтовый сервер и избежать рутинного сканирования писем, которое эти провайдеры выполняют для миллионов пользователей, и наслаждаться безопасной и приватной средой для ваших писем.
Персональные или частные почтовые серверы живут в вашем собственном пространстве, в отличие от обычных серверных ферм Apple, Google и Microsoft. Таким образом, вы можете настроить свой собственный дисковод и полностью контролировать доступ, управление и хранение ваших электронных писем.
Вот почему многие малые и средние предприятия привлекают внешних поставщиков. Однако это сопряжено со скрытыми рисками, такими как потеря контроля над безопасностью вашей почты, риск нарушения конфиденциальности и конфиденциальности, проблемы с доставкой с общего сервера и многое другое.
К счастью, вы можете запустить безопасный почтовый сервер с фильтрацией спама для личного использования или использования в малом бизнесе. В этом руководстве мы расскажем, как создать и настроить свой собственный почтовый сервер прямо на вашем компьютере.
Что нужно для настройки персонального почтового сервера
Как настроить почтовый сервер
Более простой способ настроить сервер электронной почты — нанять ИТ-специалиста, который сделает это за вас. Как только начальная настройка будет готова, вы можете изменить настройки по своему вкусу.
Если вы не можете позволить себе заплатить кому-то, чтобы он сделал это за вас, все равно можно настроить его самостоятельно.
В этом руководстве мы расскажем вам, как настроить сервер электронной почты на основе операционной системы Windows. Мы будем использовать hMailServer, бесплатный и гибкий почтовый сервер для Windows, который позволяет вам обрабатывать все ваши электронные письма, не полагаясь на то, что ваш ISP будет управлять ими для вас.
Это один из самых популярных серверов электронной почты для Windows, который прост в использовании и установке и предлагает базовые функции, такие как безопасность и встроенная защита от спама от SpamAssassin.
Следуйте инструкциям ниже, чтобы завершить настройку.
Загрузите и запустите установщик hMailServer.
Нажмите Далее и согласитесь с условиями лицензирования.
Выберите Сервер на следующем экране, если вы хотите, чтобы ваш локальный компьютер выступал в качестве сервера, или Административные инструменты для удаленного управления сервером.
Далее выберите базу данных, которую вы будете использовать. Встроенная база данных проверена по умолчанию и идеально подходит для использования, если вы хотите что-то быстрое и простое.
Нажмите «Далее» и выберите папку, в которую будут сохранены ярлыки программы.
Укажите основной пароль, который вы будете использовать для управления установкой hMailServer (запишите его где-нибудь, так как вам придется часто его использовать).
Нажмите Далее, а затем нажмите Установить, чтобы добавить hMailServer на ваш компьютер.
После завершения убедитесь, что установлен флажок «Запустить администратор hMailServer», и нажмите «Готово».
Откроется окно администратора hMailServer. Нажмите Подключиться.
Теперь вы готовы настроить свой SMTP-сервер. В новом окне нажмите Добавить домен.
На вкладке «Общие» введите имя своего домена и нажмите «Сохранить».
На левой панели выберите Домены → Учетные записи.
Перейдите в Настройки → Протоколы и выберите SMTP (снимите флажки POP и IMAP).
Нажмите «Дополнительно» и введите localhost в разделе «Домен по умолчанию».
Нажмите «+» рядом с «Дополнительно», чтобы развернуть список, а затем нажмите «Автобан». Эта функция блокирует IP-адреса после нескольких неудачных попыток входа в систему.
Снимите флажок «Включено» и нажмите «Сохранить».
Выберите «Диапазоны IP-адресов» и «Порты TCP / IP», чтобы увидеть порты, настроенные для SMTP, IMAP и POP, например 25 и 110 для SMTP и POP и 143 для IMAP.
Открытие этих портов гарантирует, что почтовый сервер сможет получать и отправлять почту.
Включите различные параметры, такие как переадресация, автоответчик, черные списки DNS и другие в hMailServer.
Наконец, нажмите + рядом с Утилитами, чтобы развернуть список, и нажмите Диагностика, чтобы проверить свою конфигурацию.
В разделе «Выбор» (домен, на котором вы хотите запустить тестирование) введите домен, который вы ввели ранее, и нажмите «Пуск».
Ваш hMailServer настроен с основными опциями.
Поздравляем, вы только что создали свой собственный почтовый сервер.
Чтобы читать или писать свои электронные письма, получите клиент веб-почты, такой как Outlook или Thunderbird. Если вы хотите использовать вместо этого компьютерное приложение, введите свой адрес электронной почты в качестве имени пользователя, а тип аутентификации — пароль.
Хотя хостинг вашего собственного почтового сервера требует от вас определенных усилий и мер предосторожности, его стоит иметь, если вы не хотите суеты и незащищенности популярных провайдеров веб-почты.
Не забывайте следить за IP-адресом своего домена и доменом, всегда проверяя, есть ли какие-либо проблемы, такие как публичное внесение в черный список, поскольку некоторые поставщики могут сделать это для входящих сообщений электронной почты из-за неправильных настроек DNS.
Источник
Как бесплатно настроить собственный почтовый сервер
Если есть необходимость бесплатно создать свой собственный почтовый сервер для вашей компании или личного пользования (это особенно актуально для малого бизнеса), эта информация будет интересна. В результате почту можно будет отправлять по всему миру через бесплатный почтовый сервер для вашего домена.
Зачем вообще делать собственный почтовый сервер?
Преимущества
Отправка почты компании с ее домена – хорошая идея увеличить привлекательность и солидность бизнеса. Например, sales@mycompany.com.
Мы можем создать столько пользователей, сколько захотим, без дополнительной оплаты.
Нет ограничений на целевые адреса при отправке почты. Используя же внешние сервисы, мы в так или иначе должны платить за каждого пользователя.
Никто из вне не сможет увидеть наши внутренние деловые разговоры.
Некоторые общедоступные почтовые серверы не могут отправлять почту на некоторые домены, например protonmail.com из-за ограничений страны. Использование собственного почтового сервера дает нам возможность обходить такие ограничения.
Недостатки
Да, это такая же головная боль, как и создание нашего собственного веб-сервера, например, поддержка его онлайн, администрирование и т. д.
Для правильной настройки требуются специальные знания. Но, если вы готовы к этому, мы расскажем об этом в этой статье.
Некоторые диапазоны статических адресов могут быть занесены в черные списки. Но есть решение, как этого избежать.
Есть три основных шага, чтобы установить и настроить собственный почтовый сервер.
Настройка IP и DNS
Обеспечение внешнего статического IP-адреса, публичного домена и записи PTR
Это основные требования для запуска собственного почтового сервера.
IP-адрес нашего собственного почтового сервера должен быть общедоступным и одинаковым во времени. Убедитесь в этом у вашего хостинг или интернет-провайдера.
DNS-запись публичного доменного имени нашего собственного почтового сервера должна указывать на этот IP-адрес. Им можно управлять в настройках DNS вашего провайдера доменного имени.
Кроме того, обратная DNS-запись (именуемая PTR) должна наш IP-адрес указывать на доменное имя нашего собственного почтового сервера. Вы можете попросить своего хостинг-провайдера или поставщика интернет-услуг настроить его для вашего общедоступного доменного имени. Его можно легко проверить по вашему IP-адресу с помощью специальной онлайн-проверки, подобной этой, или с помощью командной утилиты Windows ‘nslookup’ и команды ‘host’ в системах на основе UNIX.
Настройка MX записи в DNS
Запись почтового обмена (MX) указывает почтовый сервер, ответственный за прием сообщений электронной почты от имени домена.
Таким образом, мы должны указать доменное имя нашего собственного почтового сервера, который будет обрабатывать почту нашего основного домена. Например, если наш домен – mycompany.com, почтовый сервер – mail.mycompany.com, то запись DNS для mycompany.com будет:
Type
Host
Value
Priority
Настройка DKIM записи в DNS
Почта, идентифицированная ключами домена (DKIM) — это протокол безопасности электронной почты, который прикрепляет зашифрованную цифровую подпись к электронному письму. Принимающий сервер проверяет его с помощью открытого ключа, чтобы убедиться, что электронное письмо не было подделано.
Итак, нам нужны приватный и открытый ключи. Их можно создать с помощью онлайн-инструментов, например Power DMARC Toolbox – DKIM Record Generator, или с помощью команд OpenSSL (показано для Windows):
И наша запись DNS будет выглядеть так:
Type
Host
Value
selector._domainkey
Настройка SPF записи в DNS
Инфраструктура политики отправителя (SPF) — это стандарт проверки подлинности электронной почты, который проверяет IP-адрес отправителя по списку авторизованных IP-адресов владельца домена для проверки входящей электронной почты.
Наша запись DNS будет выглядеть так:
Type
Host
Value
Можно использовать удобный онлайн-генератор записи SPF.
Дополнительные записи DNS
Некоторые поля не обязательны, но желательно иметь.
Запись доменной проверки подлинности сообщений, отчетов и соответствия (DMARC) позволяет собственному почтовому серверу нашего хоста декларировать политику того, как другие почтовые серверы должны реагировать на недостоверные сообщения от него.
Индикаторы бренда для идентификации сообщений (BIMI) — это новый стандарт, созданный для того, чтобы упростить отображение нашего логотипа рядом с нашим сообщением во входящих сообщениях. Кроме того, BIMI предназначен для предотвращения мошеннических электронных писем и улучшения доставки.
TLS-отчетность (TLS-RPT) дает ежедневные сводные отчеты с информацией о электронных письмах, которые не зашифровываются и не доставляются.
Строгая транспортная безопасность агента пересылки почты (MTA-STS) – это новый стандарт, направленный на повышение безопасности SMTP, позволяя доменным именам выбирать строгий режим безопасности транспортного уровня, требующий аутентификации и шифрования.
Все эти записи кроме MTA-STS могут быть созданы с помощью Power DMARC Toolbox. Конфигурация MTA-STS похожа на Google и, наконец, может быть проверена с помощью Hardenize.
Выбор и запуск приложения почтового сервера
Убедитесь, что ваш хостинг позволяет устанавливать программное обеспечение. В таком случае можно использовать любое подходящее приложение для почтового сервера. Например, есть бесплатный hMailServer для Windows, который предоставляет все необходимые функции с минимальным использованием ресурсов. Для систем на базе UNIX существует множество бесплатных почтовых серверов, таких как Exim Internet Mailer или iRedMail.
Если вы знаете ещё хорошие программы, то можете поделиться ими в комментариях ниже. Вообще, подробный выбор такого программного обеспечения заслуживает отдельной статьи.
Для Windows мы рекомендуем использовать hMailServer из-за его соответствия нашим принципам компактного и эффективного программного обеспечения.
Инициализация
Когда программное обеспечение выбрано и установлено, самое время его настроить.
Мы должны добавить пользователей нашего бесплатного почтового сервера для домена. Их можно добавить или удалить в любой момент.
Чтобы обеспечить соответствующий уровень безопасности, мы должны добавить сертификат SSL для нашего домена. Конфигурацию SSL можно проверить здесь.
Далее следует настроить DKIM. Нам нужно добавить полученные выше приватный ключ и селектор. Кроме того, методы заголовка и тела должны быть установлены на «расслабленный», алгоритм подписи должен быть установлен на «SHA256» для совместимости с современной проверкой передачи почты.
Наконец, не забудьте настроить проверку антиспама специальными узлами черных списков, такими как spamhaus.org, чтобы защитить пользователей нашего почтового сервера от сообщений спама.
Протоколы электронной почты
Мы должны настроить три протокола электронной почты, которые необходимы для её отправки и получения.
SMTP используется для приема входящей и исходящей почты с/на другие почтовые серверы. И это позволяет пользователям нашего домена отправлять свои сообщения.
Этот порт необходим для управления входящими подключениями от других почтовых серверов. Метод безопасности следует установить в STARTTLS.
Он нужен для почтовых клиентов собственного почтового сервера. Метод безопасности следует установить в STARTTLS.
Это может потребоваться для старых почтовых клиентов нашего собственного почтового сервера. И метод безопасности следует установить в SSL/TLS.
POP3, IMAP
POP3 и IMAP используются отдельными почтовыми клиентами, такими как Outlook на ПК или любой почтовый клиент на наших мобильных телефонах. Это позволяет пользователям нашего домена управлять своими сообщениями.
Порт 993 следует использовать для защищенных соединений IMAP, а порт 995 – для POP3. Для обеспечения совместимости с большинством клиентов метод безопасности следует установить в SSL/TLS (не STARTTLS).
Также можно настроить порты 143 для IMAP и 110 для POP3, но их не рекомендуется использовать из-за их небезопасности.
Проверка
Итак, когда все настроено, мы можем протестировать наш собственный почтовый сервер, отправив письмо кому-нибудь из списка наших пользователей. Кроме того, в некоторых почтовых приложениях есть функция самодиагностики, например hMailServer, которая показывает готовность к работе всех подсистем (см. ниже).
Теперь пора проверить отправку на внешний адрес.
Аккаунт Gmail.com
Если у нас есть учетная запись Gmail.com, мы также можем отправить тестовое письмо на наш адрес Gmail. Затем откроем нашу электронную почту в браузере и нажмём «Показать подробности».
Если есть «подписано: наш домен», наша подпись DKIM настроена правильно. Если есть «отправлено по почте: наш домен», наш SPF в порядке.
Затем убедимся, что статус проверки нашей отправки пройден в оригинальных заголовках.
Также в Outlook мы можем видеть те же заголовки в свойствах сообщения.
Специальные онлайн-сервисы
Существует множество онлайн-сервисов, которые могут проверять отправку электронной почты. Ниже приведены некоторые из них.
Этот сервис позволяет тестировать конфигурацию почтового сервера, такую как DKIM и SPF, отправляя электронное письмо на указанный сгенерированный почтовый адрес. Нам нужно просто следовать инструкциям на экране и результаты теста будут отображены там же.
Предоставляет те же функции, что и предыдущая служба. Результаты тестирования будут отправлены на адрес отправителя.
Чтобы проверить отправку сообщения здесь, нам нужно отправить специальное сообщение на tester@email-test.had.dnsops.gov. Результаты тестирования будут отправлены на адрес отправителя.
Этот сервис предоставляет только облегченную проверку всех атрибутов, но у него есть удобные инструменты, перечисленные выше.
Итак, если всё настроено правильно, но наш сервер присутствует в чёрных списках спама, мы должны внести в белый список наш собственный почтовый сервер. Смотри ниже.
Занесение своего почтового сервера в белые списки
Таким образом, если всё вышеперечисленное настроено правильно, другие почтовые серверы по-прежнему могут отмечать сообщения как спам и отклонять их. Это бывает, когда IP (или его диапазон) нашего домена попадает в какой-то черный список. Чаще всего причиной этого является использование соседних IP-адресов для рассылки спам-сообщений.
Внесение в белый список в публичных источниках
Итак, сначала давайте проверим IP (и, если необходимо, домен) онлайн на наличие в каких-либо черных списках. Его можно проверить в любом онлайн-чекере, который можно найти через поиск. Например, MXToolBox проверяет самые популярные черные списки. И мы рекомендуем проверить его на multirbl.valli.org, потому что он показывает много источников черного списка и показывает доверие к каждому из них.
Внесение в белый список определенных почтовых серверов
Некоторые серверы, такие как Outlook, имеют свои собственные черные списки. Проверка проста – ваше приложение почтового сервера уведомит вас о неудачной доставке в почтовом клиенте. Большинство почтовых серверов предоставляют в ответе URL-адреса разблокировки. Таким образом, мы должны открыть такой URL и следовать инструкциям, например, как этот.
Обход черных списков
Если какой-то официальный черный список не разрешает добавление в исключения или когда-нибудь почта перестает отправляться на определенный домен – не паникуем – мы можем использовать внешние службы ретрансляции SMTP. Они позволяют использовать их в качестве шлюзов или прокси при отправке почты.
Мы рекомендуем использовать его как самый дешевый – он позволяет бесплатно отправлять 20 тысяч писем в месяц и имеет низкую стоимость дополнительной отправки. Особенность: поля CC и BCC пока не поддерживаются.
Это еще один хороший сервис, который позволяет бесплатно отправлять 9 тысяч писем в месяц с лимитом 200 в день. Особенность: встроенное отслеживание электронной почты нельзя отключить.
В каждой службе мы должны зарегистрировать и получить подтверждение домена нашего почтового сервера. После подтверждения, каждый из них дает указания на то, что должно быть настроено для нашего DNS и нашего приложения собственного почтового сервера. Для DNS это настройки DKIM, SPF и DMARK, для приложения – это адрес сервера ретрансляции SMTP, порт и учетные данные.
Заключение
Итак, теперь мы можем использовать все преимущества запуска собственного почтового сервера. Надеемся, что этот материал поможет вам наиболее эффективно достичь поставленной цели. Если у вас есть какие-либо вопросы или предложения по этой теме, добро пожаловать в обсуждение в наших комментариях или по электронной почте.
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Источник
Настраиваем домашний почтовый сервер и уходим с «бесплатной» почты
С каждым годом рекламы в интернете становится все больше, а подают ее с каждым разом все навязчивее. Дошло уже до почты: реклама в интерфейсе почтового ящика выглядит как первое непрочитанное письмо, которое машинально хочется открыть. Я не против рекламы, особенно когда она в тему и не сбивает с толку. Но маскировать её под непрочитанное письмо ‒ это перебор. Чувствуется, что следующим шагом рекламу начнут вставлять прямо в тело письма.
Мы уже привыкли, что наша активность в интернете анализируется для подсовывания релевантной рекламы. Но там нет персональных данных в чистом виде: есть пользователь-1 с такими-то привычками, есть пользователь-2 с другими привычками, пользователь-3, 4, 5 и т.д.
Совсем другое дело почта. Обработка почты ‒ это зачастую обработка персональных данных. Все что вы покупаете ‒ квитанции приходят к вам на почту, какими сервисами вы пользуетесь ‒ регистрационные данные и отчеты приходят к вам на почту, купили билеты в отпуск ‒ все данные о вашей поездке у вас в почте. А почта у вас где?
Проблема в том, что вся почта обрабатывается, плюс нет гарантий, что не будет случаев злоупотребления. А реклама в почте ‒ это просто вишенка на торте. Так что если вы неугомонный параноик, то вам давно пора отказаться от «бесплатной» почты.
Но отказаться не так то просто:
Можно завести ящик на другом почтовом сервисе, но там тоже не будет никаких гарантий отсутствия обработки писем.
Можно арендовать виртуальный сервер в интернете и настроить его как почтовый сервер, но без физического доступа ваши письма никогда не станут только вашими.
Можно сделать почту на каком-нибудь зашифрованном protonmail’e, но по этой же причине он стал так популярен у мошенников, что был заблокирован в этой стране.
В голове остается один вариант ‒ делать почтовый сервер прямо дома. Идея на первый взгляд смешная, но если разобраться, то можно получить довольно интересный результат с некоторыми дополнительными бонусами для всей домашней сети. Что у меня из этого вышло ‒ читайте далее.
Домашний сервер
Очевидно, что для почтового сервера нам нужен комп или его аналог, который будет доступен извне 24/7. Можно было бы посмотреть в сторону чего-нибудь компактного и маломощного типа Raspberry Pi, но т.к. мне нужен задел на будущее для других домашних систем, то я отдал предпочтение полноценному компу. На комп устанавливается гипервизор VMWare ESXi, а на нем уже живут виртуальные машины с необходимыми функциями и в том числе почтовый сервер. Такой подход дает дополнительную гибкость при проведении экспериментов и распределении ресурсов, а в случае чего виртуальные машины можно легко перенести на другое железо. Если нет особых требований к скорости работы, то для компа можно взять обычный HDD, т.к. от разделов подкачки виртуальных машин б/ушный SSD может быстро деградировать. Либо делать виртуальные машины без swap. Либо ставить два диска: основной диск виртуальной машины живет на SSD, а раздел подкачки на HDD. Компьютер я выбрал HP ProDesk 600 G2 SFF с процессором i5-6500: компактный корпус, достаточно низкое энергопотребление и ESXi на него устанавливается как родной. Все это хозяйство в режиме простоя потребляет 25 Вт, под нагрузкой 40-45 Вт. В частных объявлениях такой комп вполне реально найти за вменяемые деньги.
ESXi устанавливается со всеми настройками по умолчанию, затем сетевому интерфейсу присваивается статический IP. Более подробно и с картинками см. здесь.
Связь, электричество, бэкапы
Дома, в отличие от датацентра возможны перебои электричества, поэтому нужен ИБП с батареей на несколько часов работы сервера и роутера. От этого же электричества зависит работа оборудования внутридомового провайдера, поэтому ИБП для домашнего сервера не решает проблему отключения провайдерского оборудования и интернета вместе с электричеством. Получается, что на домашний роутер должно быть заведено два провайдера: основной (например, по витой паре или оптике) и резервный (через LTE модем). В разных роутерах процесс настройки выглядит по разному, но суть не меняется. Для резервного интернет-канала я взял LTE модем Huawei E3372-320. Свисток хорош тем, что есть в свободной продаже в разлоченном виде и он оснащен разъемами для внешних антенн, что в некоторых ситуациях может сильно улучшить качество связи.
Однако, с двумя провайдерами у вас будет два разных серых IP адреса, а почтовому серверу нужно нормальное доменное имя и по хорошему белый IP. Выход из ситуации у меня такой: арендуется виртуальный сервер (VPS) за границей, на нем настраивается VPN-сервер, а на почтовом сервере настраивается туннель до VPS. Кроме того, туннель можно поднять прямо с домашнего роутера (если он умеет) и таким образом ликвидируется сразу два зайца: мы получаем статический белый IP не зависящий от локальных провайдеров, а после тюнинга маршрутизации на роутере ‒ централизованный обход блокировок Роскомпозора для всех устройств домашней сети. Схема получается примерно такая:
Будет не очень весело, если жесткий диск домашнего сервера неожиданно накроется вместе со всей почтой. Поэтому необходимость бэкапов сервера даже не обсуждается. О настройке бэкапов поговорим в конце статьи.
Условные обозначения
В статье будут содержаться примеры конфигурации, в которых вам потребуется заменить некоторые значения на свои:
Hostname (имя компьютера) почтового сервера ‒ mail
IP адрес VPS сервера ‒ 1.2.3.4
Локальная домашняя сеть 192.168.1.0 с маской /24 (255.255.255.0) и шлюзом 192.168.1.1
IP адрес почтового сервера в локальной сети ‒ 192.168.1.3
Внутри VPN тунеля IP адрес VPN сервера 192.168.77.1, IP адрес VPN клиента 192.168.77.3
Арендуем VPS, настраиваем VPN сервер
Есть куча разных VPS провайдеров, я выбрал vps2day.com, потому что они не просят персональные данные при регистрации, платить можно криптой, можно выбрать страну, где разместить сервер. Для целей VPN будет достаточно VPS в базовой конфигурации, который обойдется в 5 €/месяц. Сперва я зарегистрировал почтовый ящик на protonmail’e, а затем на него оформил аккаунт в vps2day, закинул крипту и арендовал VPS. В качестве ОС я выбрал Debian 10, через несколько минут после оформления аренды на почту приходит отбойник с IP адресом сервера и учетными данными для SSH подключения.
В качестве решения для VPN я выбрал Wireguard, но для установки на Debian 10 надо добавить его репозиторий в apt:
Создаем каталог для файлов конфигурации (если его вдруг нет), назначаем права доступа туда, переходим в него и генерируем закрытый и открытый ключи:
На выходе получим два файла: privatekey с закрытым ключом и publickey с открытым ключом. Создаем файл конфигурации /etc/wireguard/wg0.conf вида:
Чуть позже мы дополним этот файл, а пока едем дальше.
Регистрация домена, настройка DNS
В редакторе DNS зоны нужно добавить «А» запись с именем mail и с указанием на внешний IP нашего почтового сервера, коим будет являться арендованный VPS:
Запись «MX» с приоритетом 10 и указанием на mail.example.com:
Запись «TXT» с SPF v=spf1 ip4:1.2.3.4 mx
Запись «TXT» DMARC v=DMARC1; p=reject; adkim=s; aspf=s; pct=100; :
Создание виртуальной машины
На ESXi создаем виртуальную машину (ВМ). Диск почтового сервера будем шифровать, поэтому нужно учесть один нюанс. По умолчанию гипервизор создает swap файл, равный размеру оперативной памяти виртуальной машины в каталоге ВМ. Таким образом есть вероятность, что ключ шифрования диска, хранимый в памяти ВМ во время работы окажется в swap файле на гипервизоре, что совсем не здорово. Чтобы этого не случилось, в настройках виртуальной машины нужно зарезервировать всю отведенную под ВМ оперативную память, тогда swap файл будет нулевой длины.
Установка системы и начальная конфигурация
В гостевой ОС вполне можно отказаться от раздела подкачки, особенно если назначить ВМ достаточное количество оперативки, а datastore гипервизора находится на SSD. Я взял Debian 10, процесс установки полностью стандартный за исключением разметки диска. Имя сервера задаем mail, домен example.com. Система ставится в минимальной конфигурации. В разметке дисков я сделал первый раздел под /boot и второй раздел с шифрованием:
Для применения изменений выполняем команду (не забываем здесь заменить название сетевого интерфейса на свое):
IPv6 я тоже отключаю, для этого в конец файла /etc/sysctl.conf добавляю строку:
Чтобы параметр применился выполняем команду:
Проверить, отключился ли IPv6 довольно легко. Для этого нужно просмотреть вывод нижеследующей команды на наличие ipv6 адресов:
Устанавливаем ssh и wget:
Коннектимся к серверу по ssh и едем дальше.
Настройка VPN подключения
Устанавливаем wireguard на почтовом сервере так же как это делали на VPS несколькими шагами выше:
Создаем файл конфигурации /etc/wireguard/wg0.conf следующего содержания:
Теперь идем по SSH на VPS сервер и в файл конфигурации /etc/wireguard/wg0.conf добавляем:
Не забываем сделать файл исполняемым командой chmod +x /etc/network/if-up.d/firewall
На VPS сервере запускаем wireguard:
Возвращаемся на почтовый сервер и запускаем wireguard там:
Настройка почтового сервера
В интернете есть пара отличных гайдов по развертыванию почтового сервера на Debian: e-mail caramel и ispmail. Основная сложность настройки заключается в том, что нужно правильным образом сконфигурировать довольно много файлов и нигде не накосячить. Нужно настроить Apache, PostgreSQL, Postfix, Dovecot, rspamd, sieve, сгенерировать SSL сертификаты и DKIM, выставить права. Со знанием дела весь процесс занимает несколько часов, а у новичков может легко занять пару дней и не факт что все получится с первого раза.
По гайду «e-mail caramel» на выходе получается почтовый сервер с IMAP протоколом для клиентов с обязательным шифрованием STARTTLS и Nextcloud’ом в качестве webmail. Сервер убирает из писем мета-теги User-Agent и Received. Учет почтовых пользователей ведется в БД.
Чтобы не заниматься курением конфигов, а результат был предсказуем ‒ я сделал скрипт, который автоматизирует 90% всего процесса из вышеупомянутого гайда с некоторыми отличиями:
Я не хочу ставить на почтовый сервер ресурсоемкий Nextcloud, вместо него я буду использовать Rainloop
Подрежем еще несколько мета-тегов: X-Mailer, X-Originating-IP, X-PHP-Originating-Script, Mime-Version. При этом в оригинальном гайде фильтрация конфигурируется в master.cf, а у меня в main.cf
Скрипт устанавливает необходимые пакеты, конфигурирует apache, БД, конфигурирует почтовые службы и на выходе получается практически готовый к употреблению почтовый сервер. При этом я пока не стал включать в скрипт генерирование SSL и DKIM, сделаем это руками чуть ниже.
Скрипт пока не тестировался на корректность работы при многократном запуске. Если почтовый сервер у вас развернут как виртуальная машина, то перед выполнением лучше сделать снапшот ВМ.
Скачиваем и распаковываем скрипт:
Всего в каталоге 3 файла:
Генерирование сертификатов, завершение настройки
Генерируем SSL сертификат командой. Не забываем заменить example.com на свой домен:
Генерируем DKIM. В команде ниже вместе example.com ‒ ваш домен, а вместо 20220121 можно взять текущую дату (ггггммдд):
Результатом выполнения команды будет такой текст:
В файл /etc/rspamd/dkim_selectors.map нужно добавить дату, чтобы получилось примерно так:
Идем в редактор DNS зоны у регистратора, добавляем запись «TXT» с именем 20220121._domainkey и значением v=DKIM1; k=rsa; p=. Дата в имени у вас будет своя, параметры перечисляются без двойных кавычек. Примерно так:
Тут есть нюанс. По умолчанию длина ТХТ записи может быть до 255 символов, а т.к. мы сгенерировали 2048 битный DKIM ключ, то его длина выходит за это ограничение и если вы внимательно посмотрите на результат генерации ключа, параметр p разбит на два, каждый из которых в своих двойных кавычках. Если регистратор поддерживает ТХТ записи большей длины, то две части можно просто схлопнуть, убрав кавычки. У GoDaddy, например, максимальная длина TXT записи 1024 символа. А если регистратор не поддерживает больше 255 символов, то ключ записывается в две ТХТ записи. Или можно сгенерировать более короткий ключ на 1024 бита.
И 4 вложенных параметра, начинающихся на «-o». Двойной пробел перед ними нужно сохранить. Последний параметр, возможно нужно будет просто дописать. На всякий случай в архиве со скриптом приложен готовый к употреблению файл master.cf. Должно получиться так:
Теперь заведем первый почтовый ящик. Для этого нужно воспользоваться скриптом mailuser-addnew.sh. Нужно будет ввести короткое имя (слово до @example.com), доменное имя (сам example.com) и пароль два раза. После этого можно попробовать настроить любой почтовый клиент используя созданную учетную запись.
В качестве примера пусть будет oleg@example.com. Для настройки почтового клиента набор параметров будет таким: почтовый адрес oleg@example.com, имя пользователя для IMAP и для SMTP так же oleg@example.com, сервер входящей почты IMAP mail.example.com, исходящей почты тоже mail.example.com, способ подключения везде STARTTLS.
Для проверки корректности настройки DKIM и SPF, можно воспользоваться ресурсом https://dkimvalidator.com, отправив туда тестовое письмо и посмотрев отчет. Все проверки должны быть в статусе pass (пройдено).
Устанавливаем Rainloop webmail
Все необходимые php модули для Rainloop уже были установлены скриптом. Скачиваем актуальную версию проекта, распаковываем, задаем права, включаем vhost на веб-сервере:
Далее добавляем наш почтовый сервер. Идем в раздел Domains, отключаем все прочие почтовые сервера и жмем по кнопке Add Domain:
Вводим параметры нашего домена и жмем Add:
Дополнительно в закладке Login можно так же указать домен:
Теперь можно пробовать заходить в webmail https://mail.example.com используя короткое имя пользователя (без @example.com):
Интерфейс выглядит лаконично, работает быстро, есть возможность настроить внешний вид под себя.
phpPgAdmin
В БД mail_server есть три основные таблицы: alias, sharedmail_boxes, users. Все пользователи с хешами паролей хранятся в users. С помощью таблицы alias можно сделать псевдонимы к уже существующим почтовым ящикам, а с помощью таблицы shared_mailboxes можно сделать доступ к определенным ящикам для нескольких людей. Вход в phpPgAdmin по адресу http://локальный-ip-адрес-сервера/phppgadmin с логином postgres и паролем, который был сгенерирован скриптом.
Если нет нужды ковырять таблицы, то можно отключить сайт с phpPgAdmin вообще:
Бэкапы
Так как почтовый сервер я делал для себя и очень ограниченного круга людей, то много пространства серверу не нужно, емкость всего диска 20 Гб. Схема резервного копирования такая: один раз бэкапится виртуальная машина почтового сервера целиком, чтобы случае чего не настраивать сервер заново. А во вне делается бэкап почтового каталога. Естественно все бэкапы шифруем. Для копий каталога отлично подойдет VPS, у которого целых 25 Гб пространства, бэкапить буду с помощью restic. Но прежде надо настроить ssh подключение до VPS по сертификату.
На почтовом сервере генерируем RSA ключ, на все вопросы мастера просто жмем Enter:
Копируем открытый ключ на VPS:
Создаем репозиторий (копии будут храниться на VPS в каталоге /mnt/mserv-bkp ):
Выполнение команды может занять несколько минут, в конце попросят придумать пароль для шифрования репозитория. Чтобы автоматизировать процесс создания резервных копий, создадим файл с переменными /root/.restic следующего содержания:
Попробуем выполнить резервное копирование почтового каталога:
Проверяем, что в репозитории что-то появилось:
Если есть наш только что созданный снапшот, то двигаемся дальше. Создаем файл /etc/root/restic с содержимым:
Делаем его исполняемым:
И добавляем в /etc/crontab на запуск раз в сутки:
Заключение
Теперь настройку почтового сервера можно считать полностью завершенной.
Как видно, владение своим почтовым сервером стоит некоторых денег. Цена складывается из оплаты регистрации домена, аренды VPS, оплаты второго провайдера дома и в конце концов электричества. В моем случае получается в районе 950 ₽ в месяц за всё. С другой стороны резервный интернет канал и VPN будут полезны для всей домашней сети, но об этом мы поговорим в следующий раз.
Спасибо, что дочитали. Комментарии, вопросы, замечания и пожелания приветствуются!
Источник
Почтовый сервер – это устройство, при помощи которого происходит доставка электронных сообщений от отправителя к получателю. Собственно, это и следует из его названия. В данной статье рассмотрим, как происходит установка и базовая настройка почтового сервера на VPS с операционной системой семейства Windows Server, а также на виртуальном сервере, работающем на Ubuntu 20.04.
Установка сервера SMTP на Windows Server
На серверах, работающих под управлением операционных систем Windows, для передачи почтовых сообщений часто используется протокол SMTP. В Windows Server служба SMTP является одним из компонентов операционной системы.
Для корректной отправки почтового сообщения от имени домена, к которому будет привязан сервер SMTP, нам необходимо иметь доменное имя. При этом в настройках домена должна быть указана A-запись, содержащая IP-адрес VPS. В нашем примере мы будем использовать имя домена my-domain.host
.
Установку почтового сервера нужно будет начать именно с добавления необходимых компонентов. Для этого запустите Server Manager
, перейдите Manage
→ Add Roles and Features
.
В открывшемся окне нажмите Next
.
Далее выберите опцию Role-based or feature-based installation
, после чего нажмите Next
.
В следующем окне укажите сервер, на который будет производиться установка новых компонентов, либо просто нажмите Next
, если в вашем пуле серверов одна-единственная запись.
На следующем шаге активируйте строку Web Server (IIS)
, после чего нажмите Add Features
.
Далее нажмите Next
.
После чего отметьте строку SMTP Server
и нажмите Add Features
.
И нажмите Next
.
Далее ещё раз нажмите Next
.
В следующем окне снова нажмите Next
.
Для запуска установки выбранных компонентов нажмите Install
.
Настройка сервера SMTP
На следующем этапе необходимо будет настроить сервер SMTP. Для чего в Server Manager
перейдите Tools
→ Internet Information Services (IIS) 6.0 Manager
.
В открывшемся окне менеджера IIS раскройте ветку вашего сервера и на строке SMTP Virtual Server
нажмите правую кнопку мыши, после чего перейдите в Properties
.
Далее в строке IP address:
необходимо выбрать IP-адрес вашего сервера и активировать опцию Enable logging
.
Во вкладке Access
нажмите кнопку Authentication...
В открывшемся окне активируйте опцию Anonymous access
. Активация данной опции нужна, чтобы пользователи и приложения смогли бы использовать сервер SMTP анонимно. Позже можно будет настроить более безопасную аутентификацию, пока же нажмите OK
.
Далее в разделе Connection control
нажмите кнопку Connection...
В окне Connection
установите переключатель на Only the list below
и при помощи кнопки Add...
добавьте IP-адрес вашего VPS. После чего нажмите OK
.
Точно такую же настройку необходимо проделать в разделе Relay restrictions
. Для чего нажмите кнопку Relay...
и добавьте IP-адрес вашего сервера установив переключатель в Only the list below
.
После чего перейдите во вкладку Delivery
и нажмите Advanced...
Здесь в строку Fully-qualified domain name:
необходимо внести имя вашего домена, в нашем примере это – my-domain.host
.
Для того, чтобы проверить корректность данной настройки, нажмите кнопку Check DNS
.
Далее сохраните все внесённые в настройки изменения при помощи кнопки OK
.
Также необходимо указать корректное имя домена в ветке Domains
.
На следующем шаге нужно активировать функцию автоматического запуска сервера SMTP. Для этого запустите командную строку PowerShell и выполните следующие команды для запуска службы:
set-service smtpsvc -StartupType Automatic
start-service smtpsvc
Чтобы убедиться, что служба запущена, необходимо выполнить ещё одну команду:
get-service smtpsvc
Вывод данной команды должен выглядеть примерно следующим образом:
Теперь там же, в командной строке PowerShell, при помощи следующей команды отправьте сообщение на свою электронную почту:
Send-MailMessage -SmtpServer my-domain.host -To your@email.address -From mail@my-domain.host -Subject "Message Subject" -Body "Message Body"
Здесь:
my-domain.host
– имя домена, с которого будет производиться отправка сообщения;your@email.address
– адрес электронной почты, на который будет отправлено сообщение;mail@my-domain.host
– этот электронный адрес будет указан в сообщении как адрес отправителя;Message Subject
– тема письма;Message Body
– тело письма.
После чего проверьте свою почту, на которую должно прийти сообщение от вашего почтового сервера.
Установка и настройка Postfix на Ubuntu 20.04
Для операционной системы Ubuntu существует довольно популярный почтовый сервер – Postfix. Для установки Postfix мы будем использовать виртуальный сервер, работающий на Ubuntu 20.04. При этом на VPS должны быть произведены работы по первоначальной настройке, описанные в соответствующей статье нашего справочника.
Также, для работы Postfix нужен домен с привязанной A-записью, которой является IP-адрес вашего виртуального сервера.
Плюс ко всему, необходимо соотнести имя домена с именем сервера и его IP-адресом. Для этого запустите следующую команду:
$ sudo hostnamectl set-hostname ubuntu-server
Здесь, ubuntu-server
– имя нашего сервера, вместо которого вы можете использовать своё.
Теперь при помощи текстового редактора откройте файл /etc/hosts
:
$ sudo nano /etc/hosts
В данный файл добавьте строку:
XXX.XXX.XXX.XXX my-domain.host ubuntu-server
В данном случае:
XXX.XXX.XXX.XXX
– IP-адрес вашего сервера;my-domain.host
– имя вашего домена;ubuntu-server
– имя вашего сервера.
Теперь запустите установку Postfix
и почтового пакета mailutils
:
$ sudo apt install postfix mailutils
В процессе установки система попросит вас выбрать тип конфигурации. Необходимо указать Internet Site
:
Также установщик попросит согласиться с именем домена, в отношении которого производится настройка почтового сервера. В нашем случае это будет my-domain.host
.
По окончании установки можно попробовать с нашего почтового сервера отправить тестовое сообщение. Команда для отправки сообщения выглядит следующим образом:
$ echo "Message Body" | mail -s "Message Subject" your@email.address
В данной команде:
Message Body
– тело письма;Message Subject
– тема письма;your@email.address
– адрес электронной почты, на который будет отправлено сообщение.
Проверьте свой почтовый ящик (в нашем примере это – your@email.address
), на который должно прийти отправленное из Postfix
сообщение.