Настраиваем домашний почтовый сервер и уходим с «бесплатной» почты

С каждым годом рекламы в интернете становится все больше, а подают ее с каждым разом все навязчивее. Дошло уже до почты: реклама в интерфейсе почтового ящика выглядит как первое непрочитанное письмо, которое машинально хочется открыть. Я не против рекламы, особенно когда она в тему и не сбивает с толку. Но маскировать её под непрочитанное письмо ‒ это перебор. Чувствуется, что следующим шагом рекламу начнут вставлять прямо в тело письма.

Мы уже привыкли, что наша активность в интернете анализируется для подсовывания релевантной рекламы. Но там нет персональных данных в чистом виде: есть пользователь-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

Чтобы не углубляться в настройку домашних роутеров, VPN туннель мы будем делать сразу с почтового сервера до VPS и завернем туда весь трафик. Поэтому имеет смысл поменять DNS сервера на публичные. Для этого правим файл /etc/resolv.conf, конечный вид которого примет вид:

nameserver 1.1.1.1
nameserver 1.0.0.1

IPv6 я тоже отключаю, для этого в конец файла /etc/sysctl.conf добавляем несколько параметров. Не забываем, что название сетевого адаптера ens192 у вас может быть другим:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.ens192.disable_ipv6 = 1

Устанавливаем ssh и wget:

apt install ssh wget

Включаю логин по паролю для root по SSH, для этого в файле /etc/ssh/sshd_config добавляем строку PermitRootLogin yes. Перезагружаем сервер и коннектимся уже по 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 [email protected] --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) и пароль два раза. После этого можно попробовать настроить любой почтовый клиент используя созданную учетную запись.

В качестве примера пусть будет [email protected]. Для настройки почтового клиента набор параметров будет таким: почтовый адрес [email protected], имя пользователя для IMAP и для SMTP так же [email protected], сервер входящей почты 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 [email protected] "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 будут полезны для всей домашней сети, но об этом мы поговорим в следующий раз.

Спасибо, что дочитали. Комментарии, вопросы, замечания и пожелания приветствуются!

Реклама
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее

Комментарии 100

    +2
    У большинства домашних провайдеров поднять почтовик не получится из-за закрытого 25-го порта (а сейчас и TLS/SSL порты для почты стали закрывать).
    Впрочем, виртуалки у хостеров никто не отменял.
      0
      Плюс провайдера два, поэтому VPS-VPN.
        0

        Спасибо. Уточните, пожалуйста, по PTR DNS: ваш провайдер создавал обратную DNS запись или сейчас это уже не требуется для отправки почты?

          +1
          Требуется для отправки почты на некоторые сервера, активно противодействующие спаму, например gmail просто дает отлуп таким письмам и они никогда не доходят до получателя.
            –3
            gmail не дает отлуп, проверяю уже 2.5 недели, ни одно письмо в спам не попало.
            0
            В описанной схеме такую запись должен сделать хостер VPS. Правильный хостер такое умеет.
          0
          Можно купить самый дешёвый хостинг и отправлять через smtp хостера.
            0
            на шаред-хостинге как правило 1-2 ипа и куча доменов с такой вот почтой. а PTR-запись вообще на свое какое-то имя.
            и ваши письма летят в спам даже на простеньких серверах-получателях.
            0

            У дом ру можно разблокировать порт в лс.

            +2
            Напишите потом про опыт использования такого сервера, есть ли проблемы, неочевидные вещи, о которых следует знать. Будет интересно.
              0
              Да, планирую.
                +6
                Самая большая проблема: нет выделенной команды эксплуатации. Логи переполнили диск, бд встала/упала, все, почта не приходит. А вы в отпуске на камчатке, и пока не доберетесь до сервера и не почините, почта ваша будет уходить вникуда.
                Тоже самое с интернетом: сегодня работает, завтра так сложились звезды, что упал провайдер, а опсос съел деньги на счету, почты нет. Не просто нет доступа к пришедшим сообщениям, а вообще нет.

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

                Еще открытый вопрос о политиках спам-детекции. Почтовых серверов куча, и в какой-то момент вы можете обнаружить, что уже полгода отправленные письма на условный мейлру письма уходят в спам, что потребует от вас трат времени на общение с поддержкой и курения манов по настройке всяких хитрых флагов и подписей.

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

                Для себя решил вопрос уходом на fastmail.
                  0
                  Ну по диаграмме Эйлера — Венна всегда приходится чем-то платить. Низким уровнем доступности, низким уровнем надёжности, низким уровне интеграции ради увеличением приватности писем например, или безопасностью, или большей независимостью, или ещё чем-либо.
                    –1
                    Справедливо, но…
                    Место на диске может закончится, логи, БД — надо сделать уведомление, допишу в статье.
                    Почта реально может быть очень критична, если используется как способ 2FA, но для 2FA есть и другие варианты.
                    В остальном, тем более в отпуске, тем более на Камчатке во время похода на вулкан… мне почта не нужна. Для себя я не увидел проблемы, если звезды сойдутся и сервер погаснет на несколько дней.
                      +1
                      В остальном, тем более в отпуске, тем более на Камчатке во время похода на вулкан… мне почта не нужна. Для себя я не увидел проблемы, если звезды сойдутся и сервер погаснет на несколько дней.

                      а я вижу в этом проблему ) если там какая-нибудь налоговая выписка или уведомление из госорганов не придет. Или что-то подобное. Причем именно в момент того, как сервер лежит...

                    0
                    годами будет работать эта поделка. и по сути, даже веб-морда и украшения типа ssl (для веба, не для smtp\imap) тоже оверхедны.
                    хватило бы 993\587 и любой внешней программы аля-оутлук на компе\мобиле.
                    0

                    для меня самое интересное, как на таком почтовом сервере организован поиск в почте, если перетащить туда архив за последние двадцать лет.

                      0
                      Поиск? Средствами IMAP и почтового клиента.
                        0

                        очень тормозно будет

                          +1
                          Не исключено. Альтернатива — писать свою веб-морду и индексатор почты для быстрого поиска.

                          С другой стороны — а часто ли надо искать что-то, перерывая весь ящик за двадцать лет?
                            0

                            если-б я заранее знал что и когда я буду искать…


                            Вот в gmail с поиском всё очень хорошо

                            0
                            Зато классически и ностальгически :-)
                              0
                              dovecot FTS посмотрите.
                            +1
                            mu. Один раз скармливаете все письма, он их проиндексирует минут за 10, и всё. В дальнейшем, поиск по его базе происходит моментально. Правда, не знаю, на сколько mu можно прикрутить к этому веб-лицу, но тут уж дело техники.
                              0

                              ну что, круто. Сначала заливаем архив писем из нескольких ГБ на новый облачный сервер, а потом загружаем его-же на локального клиента по IMAP и индексируем. А потом со смартфона ходим на него по SSH, я правильно понял логику?

                                0

                                Гигабайт? Шутите? У меня уже почта за десятки гигабайт перевалила… Может даже сотни. Наверное, не все там нужно, но Гугль приучил не чистить

                                  0

                                  у меня gmail 16Гб, пришлось брать подписку.

                                  0
                                  Во-первых, я так понял, что автор хранит письма на домашнем сервере, ради чего и затеял всё описанное. Если он будет хранить их в формате maildir, то может прямо там и индексировать. Останется только mu-шный поиск прикрутить к веб-интерфейсу.
                                  Во-вторых, не надо мне претензии предъявлять. Лично мне проще потерпеть рекламу, чем такой огород городить.
                                    0

                                    на самом деле надо найти и сконфигурировать нормальную поисковую систему с веб мордой. Но автор до этого не дошёл.

                                      0
                                      Да но автор, очевидно, не любитель лёгких путей
                                        0
                                        на самом деле надо найти и сконфигурировать нормальную поисковую систему с веб мордой. Но автор до этого не дошёл.

                                        elasticsearch и эта система будет кушать больше, чем почтовик со всеми плагинами? Нет, спасибо :-)

                                        0

                                        кстати, a письма на русском mu нормально индексирует?

                                          0
                                          использую только на работе, так что письма на русском не пробовал. Но, на основании опыта с другими популярными инструментами с отрытым кодом, предположу, что проблем быть не должно. А если вдруг, то проект на гитхабе
                                  +3
                                  А из каких соображений вы vps-ку саму не стали делать почтовым сервером? По модулю того, что бэкапитесь вы всяк туда, получается что вся развлекуха с резервными каналами и ибп-шником только для того, чтобы почта в реальном времени долетала именно до домашнего компа, правда? Надежность решения от такого перехода ухудшилась (вы добавили точек отказа, хоть и зарезервировали их), задержка — ухудшилась (для почты это не важно, согласен), стоимость — увеличилась.
                                    –7
                                    К VPS нет физического доступа, чтобы хранить там инфу в незашифрованном виде. Шифровать диск VPS, а ключ вводить через консоль VPS провайдера? Бэкапы же шифруются, поэтому могут полежать и на VPS.
                                      +2

                                      Более разумно было бы поставить на VPS проксирующий SMTP server. Он же SMTP relay. Он же secondary smtp. Тогда эта система будет более устойчива к отказу чего-либо ниже VPS сервера (входящая почта будет некоторое время лежать на SMTP), а при устранении неисправности, будет доставлена на основной сервер.


                                      Кроме того, есть большая разница между почтой от условного гугла и VPS пусть даже от того же самого условного гугла. Если для почты вы ресурс — вам впаривают рекламу, соответственно вся ваша почта по умолчанию парсится, то для VPS вы клиет, так как сами платите за VPS. И в VPS конечно кто-то может влезть, но для более-менее нормальных хостеров этот риск минимален. (Тут дальше было много рассуждений об устойчивости хостинга к атакам и неуловимых Джо, но это все и так знают)

                                        –3
                                        Отличная мысль, спасибо, попробую…
                                    +4
                                    Бороться с рекламой можно проще — поставить например себе почтовый клиент на ПК.
                                    Как там на мобильных с почтовыми клиентами — без понятия.
                                    ПС: лет 10 уже на thunderbird, без разницы как выглядят почтовые сайты.
                                      –2
                                      Речь не только про борьбу с рекламой, это лишь вишенка на торте. Речь о том, что ваши данные в почте могут быть предметом обработки.
                                        0
                                        Если я в жизни не захожу на почту, то и рекламу по данным с почты я не увижу. А какая ещё обработка моей почты может быть опасна?
                                          0
                                          Тогда желательно, чтобы и отправитель не пользовался бесплатными почтовиками.
                                            0
                                            Я пример вам приведу. Оформил вот я подписку на Spotify и пришел мне отбойник на бесплатную почту, которая у меня размещена в «Х». Обработала «Х» это письмо и давай мне впаривать свою музыкальную подписку с удвоенной силой.
                                              0
                                              У таких сервисов по требованиям к рассылка всегда должна быть форма отписки прямо в письме, иначе они сами попадут в спам.
                                                0
                                                У таких сервисов по требованиям к рассылка всегда должна быть форма отписки прямо в письме, иначе они сами попадут в спам.

                                                зачастую это не рассылки, а "персональные рекомендации".

                                                  0

                                                  Можно не пользоваться их вебмордой, и никаких "персональных рекомендаций" видно не будет.

                                                0
                                                Но, ведь «X» впаривает вам свою музыкальную подписку в каком-нибудь рекламном блоке на каком-нибудь сайте, который вы всё-равно не читаете, потому что он, как бы, заполнен рекламой. Или они к вам домой приходят?
                                                А с другой стороны, вдруг они увидят, что вы уходите к конкурентам и сделают вам выгодное предложение.
                                              0

                                              Тут все гораздо хуже. Да, Вы не храните свое письмо ни полученнноениотправленное. Но Ваш адресат адресат сохранит его на том же ресурсе.в 90% случаев это тот же google. Хотя сама по себе статья очень полезная недавно поднимал себе сервер на хостинге один из бесплатного ных с веб интерфейсом. Поначалу все было ванильного. Потом оказалось что сервер забилогами аж 30Гб диска забрав таким образом весь диск. После чистки диска что то там в данных разрушилось и он не стартовал. Если бы знал Ваш стек может быть поднял его и все было бы нормально

                                            +4
                                            Как решается проблема со спамом?
                                              +2

                                              А PTR где? Все отправленные письма в спаме будут без него !


                                              P.S.


                                              Ну и spamassasin, mta-sts да и tlsa dane неплохо-бы прикрутить ...

                                                –1
                                                К моему удивлению — нет. Проверил на Я, G, MS и еще нескольких менее распространенных.
                                                  +2
                                                  Блокируют не моментально.
                                                  Во вторых есть вероятность, что там уже есть какая-либо ptr запись.
                                                    –1
                                                    Я не отрицаю правильности с PTR, но сперва посмотрю что будет дальше.
                                                      0
                                                      там уже есть какая-либо ptr запись.

                                                      Плюс у некоторых хостеров она еще и совпадает с хостнеймом арендуемого сервера/vds — звезды сложились.
                                                        0
                                                        Ну вообще чёрт его знает как это проверяют именно сейчас. Учитывая, что можно имея много доменов с каждым из них работать только с одной ptr записью с одного почтового сервера.
                                                          0
                                                          Сейчас обычно проверяют, чтобы IP ресолвился в домен, а этот домен — обратно в тот же IP. Еще домен на третьем уровне и ниже не должен содержать «нехороших» слов типа «adsl», «client» и т. п. Т. е. «server555.firma.com» — хороший, а «adsl-192-168-1-999.provider.com» — плохой.
                                                            0
                                                            По идее да. Ну так получается, что используя много доменов у вас ip резолвится в другой домен, который есть на этом же сервере. Но… я кажется перепутал порядок проверки).
                                                              +1
                                                              Не. Обратная запись для IP — одна. Проверяем ресолвинг IP в хостнэйм. Не ресолвится — отклоняем письмо. Если ресолвится — проверяем ресолвинг полученного хостнэйма обратно в IP, который сконнектился с нашим 25-ым портом. Если получили тот же IP — можно принимать письмо, не получили — отключаем нафиг.

                                                              Доменов на одном IP может быть сколько угодно, но проверяется тот, который записан как обратный.

                                                              Еще бывает, что дополнительно проверяется домен в команде HELO. Если он не совпадает с обраткой — тоже отключаем такого «сендера».
                                                                0
                                                                Еще бывает, что дополнительно проверяется домен в команде HELO

                                                                Обычно $sender_helo_name (в нотации exim) проверяется в самом начале сессии (типичный пример), а уже потом танцуем остальные дела.
                                                  0
                                                  И через час улетаем в бан на почтовиках (куда уже отсылали что-либо) из-за отсутствия ptr записи.
                                                    –3
                                                    Две с половиной недели, полет нормальный.
                                                      0
                                                      У вы точно уверены, что у вас точно нет хоть «какой-либо» ptr записи? Это вообще очень странно. Только недавно нам провайдер «задержал» вывешивание ptr записи на пару часов, после миграции почты (много доменов, много пользователей, много писем в час) — почти моментально были везде забанены, пришлось выгонять из блэклистов пол дня.

                                                      Ну говоря о фриковости я где-то лет ~13 назад, поднимал локальный почтовик используя dyndns и динамический выделенный адрес используя лишь A запись. Что очень странно (ведя совсем не активную переписку) в спам начал попадать спустя где-то пол года и вроде даже не был нигде забанен.
                                                        0
                                                        Проверю, отпишусь чуть позже.
                                                          0
                                                          Проверил, prt нет. mail-tester.com дал 7.7 баллов из 10. 1.2 балла снял за отсутствие ptr и еще 1.1 балла за то что мое письмо называлось test и в теле содержало одно слово test — типа так нормальные люди письма не пишут.
                                                      0
                                                      а protonmail разве не разбанили?
                                                        0
                                                        Нет, не разбанили, но есть же способы туда попасть. Просто это уже за рамками статьи и я не призываю каждого иностранный VPS регить на протон. Я просто говорю, что это вариант.
                                                          0
                                                          Способы проще, чем обойти NAT провайдера (иногда не один).
                                                        0
                                                        Так что если вы неугомонный параноик, то вам давно пора отказаться от «бесплатной» почты.

                                                        Только тогда надо отказаться от общения со всеми контрагентами на бесплатных почтах… потому что очевидно, что они собирают информацию не только о своих пользователях, но и о контактах своих пользователей…


                                                        Однако, с двумя провайдерами у вас будет два разных серых IP адреса, а почтовому серверу нужно нормальное доменное имя и по хорошему белый IP. Выход из ситуации у меня такой: арендуется виртуальный сервер (VPS) за границей, на нем настраивается VPN-сервер, а на почтовом сервере настраивается туннель до VPS. Кроме того, туннель можно поднять прямо с домашнего роутера (если он умеет) и таким образом ликвидируется сразу два зайца: мы получаем статический белый IP не зависящий от локальных провайдеров, а после тюнинга маршрутизации на роутере ‒ централизованный обход блокировок Роскомпозора для всех устройств домашней сети. Схема получается примерно такая:

                                                        Сразу вопрос — почему не почтовый сервер там, на vps? К тому же, многие vps бывают с заблокированным 25-и портом или часто попадают в «чёрные» списки спамхауса и прочих. Я уж не говорю, что для резервирования нужно минимум две впски. Ну, и ничего под Луной надежнее своей asки нет

                                                            0
                                                            Можно попытаться заставить использовать свои контакты pgp. Сложнореализуемо, но можно.
                                                              0
                                                              Я пытался, через S/MIME. Это не реально. Вообще. От слова совсем.
                                                              Проблема первая — Нет единого УЦ. Сгенерили вы сертификат, шифранули отправили и… на той стороне должны его установить. А там админы, безопасники которые хренас два будут импортировать всякое не доверенное. Тем более от туевой кучи народа и фирм контр-агентов. Т.е. на уровне «Васян, я тут серт сгенерил, воткни себе.» — все ок. На уровне предприятий не работает, т.к. какой-ндь «глав.строй.мега.инвест.компани» пошлет вас в даль.
                                                              Вторая проблема — не работает через web-морды. А на некоторых предприятиях все через веб-морду.
                                                              Третья — IDS\IPS и прочие DPI, которые используют компании.
                                                              Четвертая — люди. Вы то свою почту будете шифровать, а вот в ответы вам будут прилетать в нешифрованном plain-text
                                                                0
                                                                Ну это ассиметричное шифрование через УЦ. Это будет явно сложнее, чем просто pgp для бюрократии. В pgp открытые ключи можно в публичный доступ вывесить и шифровать на конечных устройствах, плюс в этом, что отправляющяя сторона не может видеть содержания отправленных писем и содержание не будет обрабатываться. Но с другой стороны я прекрасно понимаю какими ошеломленными глазами на тебя будет смотреть бухгалтер Зинаида Сигизмундовна о просьбе зашифровать письмо, пользоваться нативным почтовым клиентом и pgp.
                                                                Я думаю в этом плане обработки писем не избежать (причем и inbox и outbox), кроме как между доверенными почтовыми серверами и сам этот кейс не особо решается.
                                                                  0
                                                                  Тут проблемы по большому счету две.
                                                                  1. Внедрение ПО. S/MIME поддерживается большой тройкой почтовых клиентов (Outlook, The Bat, Thunderbird) из коробки. Т.е. в отличии от PGP не надо ставить плагины, но надо импортировать чужие сертификаты. Был бы единый все-российский\международный УЦ соответственно, работало бы полностью из коробки.
                                                                  2. Заставить пользователе использовать фичу. Тут за pgp не скажу(не использовал), а вот с S/MIME все просто в почтовике выставляешь «всегда шифровать\подписывать». И все. Оно по дефолту начинает шифровать и подписывать всю исходящую корреспонденцию. Причем в интерфейсе ничего не меняется. Т.е. конечный пользователь может вообще не знать шифруется\не шифруются письма.
                                                                    0
                                                                    Простите, а чем вам не подходят существующие международные сертификационные центры вроде Sectigo?
                                                                      0
                                                                      Тем, что использование другого международного сертификационного центра показало — у ряда контрагентов все равно были проблемы. Конкретно в одной гос. компании и с оутлуком. Естественно, техническими подробностями с той стороны никто не делился, просто попросили переслать письмо по нормальному и не выделываться. Вангую, что там мог быть запрещен внешний траффик. Могли использовать старые версии ОС (Win7).
                                                                      Бонусом The Bat любит по дефолту использовать свой, а не ОСный список УЦ.
                                                                        +1
                                                                        Не совсем представляю последовательность действий. Для того, чтобы на той стороне возникли проблемы с прочтением, они сначала должны послать вам свой сертификат в подписанном сообщении (а для этого его получить и себе установить), только в этом случае вы сможете послать им зашифрованное сообщение. Если на той стороне никогда не слышали об S/MIME, то максимум, что вы можете, это послать им подписанное сообщение со своим сертификатом. Даже если у них все удостоверяющие центры выброшены, ну будет сверху надпись, что сигнатуру проверить не удалось.

                                                                        Другое дело, что порог вхождения в S/MIME, а, тем более, в PGP практически непреодолим для 99.999% контрагентов, но как раз подписанное S/MIME сообщение будет иметь маленький, едва заметный значёк проверенности практически у всех, проблем такое сообщение вызвать не должно, но и польза от этого значка чисто номинальная, если пользователь не понимает, что он означает.
                                                            0

                                                            Установил почти такой же аппарат дома, подтверждаю низкое потребление и вполне тихую работу (но совсем бесшумным не назовеш)
                                                            Работает почта, с десяток сайтов, все на proxmox-e и haproxy раскидывает траффик по ВМ в зависимости от домена.
                                                            Если кому нужен будет конфиг Haproxy для работы сайтов через SSL (они кстати генерятся каждый на своей ВМ и а не точке входа где крутится haproxy) скажите в личку или сюда.
                                                            PS письма кстати прекрасно уходят и приходят (крутится форум и на нем ощутимый поток писем каждый день)

                                                              0
                                                              Давайте. Как раз недавно искал генерацию ssl на конечной точке, а не на прокси.
                                                              0
                                                              Я уже где-то лет 10 на собственном почтовом сервере, но ещё прикручена спамоловка, rspamd.

                                                              Мейл засвечен в портах, которые я мейнтейню, никаких проблем и гораздо быстрее spamasassin.

                                                              И, как я помню, пришлось выводить ip провайдера из 2 BL (сделали по письмам) и просить прописать PTR. С тех пор никаких проблем не возникало, письма доходят.
                                                                +2

                                                                Если есть сомнения как ходит почта и насколько корректно настроен сервер есть замечательный ресурс
                                                                mail-tester.com
                                                                в консоли сервера пишем команду


                                                                echo "Test text" | mail -s "Test title" [email protected]

                                                                где [email protected] вам выдаст тот сайт (он генерится автоматом и уникален), после нескольких секунд жмете кнопочку Проверить результат и получаете условные баллы и рекомендации. Я получил 8.9 баллов, до 10 нужно PTR запись но она у меня к сожалению кривая (такую выдает mgts gpon)

                                                                  –2

                                                                  Статья неплохая, но малость неактуальна. За 5 евро можно gsuite на одного пользователя сделать вместо того чтобы делать диванный сервер и брать на себя головную боль его обслуживания. Вот если 5 евро нет — это уже другой вопрос...

                                                                    0

                                                                    вопрос не денег, а приватности…
                                                                    Если б гмыло можно было изнасиловать, чтоб удобно шифровать тела писем....

                                                                      +1

                                                                      По-моему любой клиент умеет в pgp. Если нет — зачем вы используете этот клиент? :)
                                                                      На тему шифрования gmail: тут же, на хабре статья.

                                                                    +1
                                                                    В статье про свой почтовый сервер половина (а то и больше) про VPN, ssh, backup. Proton, регить домен без паспорта. Зачем вам дома тогда почта? Ну и оставьте все анонимно на дедике каком-нить. Все равно ваша почта будет висеть у ваших корреспондентов, если это переписка, в аутлуке :) А если вам налоговые декларации принимать на gmail опасно, вам почту не дома надо держать — там ее свистнуть можно воришке простому. И без всяких VPN можно на VPS поднять postfix relay. Или просто всю канитель почтовую. А, вы через Тор не пропустили трафик — попандос. Так и палятся.
                                                                      0
                                                                      С rainloopwebmail не все просто.
                                                                      Сам такой использую, но при вопросе знакомых, а где собственно почта то находится?
                                                                      Стал ковырять php файлы rainloop а там все то, что отвечает за отправку и получения прямиком на стороне серверов rainloop

                                                                        +1
                                                                        Можно арендовать виртуальный сервер в интернете и настроить его как почтовый сервер, но без физического доступа ваши письма никогда не станут только вашими.


                                                                        Откройте заголовки любого письма. Посмотрите, сколько там Received: (обычно не меньше 2).
                                                                        Любой из этих серверов может сохранить копию вашего письма (и 146% созраняет логи) — это я вам как параноик параноику сообщаю.
                                                                          +1

                                                                          Для своей почты использую axigen mail — очень годный продукт, до 5 пользователей — бесплатная лицензия. Приятная веб-морда, все настройки с веба, удобная установка (по желанию можно сразу скачать образ для vmware), антиспам через SpamAssassin, антивирус через clamav. А птр запись пока ещё даёт возможность сделать дом.ру

                                                                            0
                                                                            Можно сэкономить массу усилий, если отказаться от веб-морды. На домашнем сервере больше десяти лет крутится дебиан с exim(SMTP)+dovecot(IMAP)+spamassassin(спам)+clamav(антивирус). Почту отправляю через smtp дешёвого хостинга. Принимаю напрямую. Сертификаты с letsencrypt.

                                                                            Клиент на линуксе claws-mail (на виндосе вроде бы тоже работает), на андроиде — k9.

                                                                            Веб-морда для почты это конечно прикольно, но это лишняя работа и лишние потенциальные дырки.
                                                                              0
                                                                              А зачем всё эти страдания? Когда есть mailcow.
                                                                                0

                                                                                О, у меня как раз mailcow стоит. Всем хорош, но по количеству контейнеров немного жирноват, да и докер уже потихоньку выселяют, а в подман mailcow не может. Но результатом я доволен

                                                                                  –1
                                                                                  про «подман» не понял.
                                                                                    0
                                                                                    про «подман» не понял

                                                                                    Замена докера от красношапки, тут про Podman было много статей. Проблема в том, что нет аналога docker-compose, от которого очень сильно зависят внутренние скрипты, такие как обновление и бэкап


                                                                                    про выселение Docker это конечно смешно…

                                                                                    Понятно, что он еще долго будет жить, но редхат уже медленно от него уходит. У кубернетеса он депрекейтнут, в Fedora CoreOS в версии для хоста контейнеров докера нет, вместо него подман. Хотя для дома это не значит ровным счетом ничего, но есть подвижки и желание. Ладно, когда уже докер начнут активно хоронить, а не как сейчас, тогда и надо будет думать, а пока смысла особо нет

                                                                                  –1
                                                                                  про выселение Docker это конечно смешно…
                                                                                0

                                                                                Странно, что никто не написал слово iredmail. https://www.iredmail.org/

                                                                                  0

                                                                                  Мне тут такое прислали… православненько:


                                                                                  https://git.mbk-lab.ru/MBK-Lab/go-tegu

                                                                                    0
                                                                                    всегда любил такие поделки, да еще и с припиской гост и вот это все )
                                                                                    жаль скринов нет (не нашел). поделитесь?
                                                                                  0
                                                                                  Вариант хороший, но только для специалистов, так как довольно затратный в плане обслуживания — мало того что платить нужно почти за всё (провайдеры, впс, электричество), так и необходимо поддерживать работоспособность железа и обеспечивать обслуживание софта (обновления, исправления ошибок, безопасность, борьба со спамом и прочее). Более простой, но вполне надёжный вариант — купить домен и платный аккаунт на протоне, расходы: $8/год домен и $40/год протон, а там уже и шифрование и отсутствие рекламы.
                                                                                    –1
                                                                                    Я извиняюсь господа, не проще на gmail привязать почтовый домен как доп. ящик
                                                                                    а сам сервер на mail, yandex и другом аналогичном?

                                                                                    p.s. gmail даже доп. акк основным сделать позволяет
                                                                                      0
                                                                                      были вопросы выше на счет PTR. так он прописывается на vps-vpn в кабинете, где эту самую vps купили. тот же хецнер\дигиталокеан и прочие ребята без проблем это умеют. у вас же MX запись смотрит на ип vps, а не на ваших домо-провайдеров.

                                                                                      но вот мои три копейки — слишком затратно (деньги\время\мониторинг) держать две машины, если только для почты.
                                                                                      проще уж сразу на vps настраивать себе почту. и никакой свет, кот, провайдер и прочие вещи не сломают сложную связку по впн (пример с извещением из налоговой и пребыванием на Камчатке в тему)

                                                                                      другой вопрос, если кроме почты хочется чего-то еще.
                                                                                      у меня под столом почти такая конструкция, как у автора. только винтов больше и разных и вместо esxi стоит proxmox (дело вкуса). у меня на нем впн, почта, s3-minio (бекапы туда-сюда), мини-кластер из трех нод под k8s, zabbix и место (cpu\mem,nvme) для прочих игрищ.
                                                                                      долгое время покупал разные виртуалки у провайдеров, потом посчитал и решил, что свой сервер давно бы уже окупился. так и вышло.
                                                                                      а тут еще и провайдер подвел 500мб\с с белым статичным ипом за 900р — так вообще по красоте.
                                                                                        0
                                                                                        Интересненько, я правда не понимаю всей это паранои по поводу хранения почты дома под рукой, при условии что они хранится еще и у получателей и ходит через VPS над которой у нас о боже нет контроля…
                                                                                        2 года назад озоботился для себя VPN сервером, и как оказалось даже самой дешевой VPSки для этого с головой, вот и решил прикрутить туда почту, сначала был российский хостер, скромно умолчу об этих 2 месяцах своих экскриментов — работало плохо, потом уехал на AWS — круто, бесплатный тариф красота, работало примерно полгода — а потом мне прострелили колено, в смысле закрыли 25 порт… После не долгой переписки с суппортом я оставил попытки убедить их в том что я не спумер а просто разместил объявление, уехал на хетцнер — и моё почтение, работает как часики, единственная неприятность это флоатинг ip — его надо ручками к тачке крутить, но можно и без него, мне так почему то спокойнее…
                                                                                        По стеку я на энтузиазме (никогда раньше не имел дело с почторями) пытался сам собрать и настроить все вот эти девкоты посиксы и спамассасины, но за е имением опыта у меня не очень получилось и решил я пойти в гуголь и узнать есть чо для ленивых… дествительно нашёл почти супер решение для меня — маилинзебокс — ставится одним скриптом — внетри и мордочка есть и антиспам и даже облако прикрутили некстклауд и место для своего сайтега оставили. Но есть нюанс, просто отвратительно дружит с Let'sencrypt — что бы работало надо либо настраивать перекидку сертов в место хранения самого бокса либо переписать много конфингов (а после обновления еще раз переписать)…
                                                                                        По поводу PTR и прочего — мои письма, с учетом всех настроенных рекомендаций 9 баллов из 10 — последний бал снимают только за текст письма :D), гугл регулярно отправляет в спам, у йоты кстати тоже улетал в спам — но там я не очень, PTR не было и вообще только настроил…
                                                                                        Жду в общем продолжения с опытом эксплуатации и подводные камни там все дела
                                                                                        PS очень не нравится количество точек отказа в реализации автора, у меня тут сертификат чуть не протух уже головняк, а тут и канал и сам сервак и тот же серт — прям надежность меня пугает

                                                                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                        Самое читаемое