Linux vps mail server

#7 VPS — почтовый сервер | Ubuntu | Debian

Оглавление:

Подготовка и инструкция:

Все команды мы будем выполнять от имени пользователя root, поэтому мы не будем использовать в командах sudo для повышения прав, если вы выполняете под своим пользователям добавляйте sudo в начале команды.

Необходимо чтобы был установлен mysql server | apache2 | php, если его нет необходимо установить:

Также мы будем использовать Midnight Commander, если у вас его нет необходимо установить следующей командой:

Краткая справка по командам MC:

  • запуск: mc
  • открытие файла для редактирования: F4
  • открытие файла для чтения: F3
  • удаление файла или выделенного текста в файле: F8
  • сохранение отредактированного файла: F2
  • создание директории: F7
  • переход в верхнее меню: F9
  • закрытие mc: F10
  • история команд: alt + H
  • свернуть и развернуть mc: Ctrl + O

Краткая справка по работе в shell — консоли unix | linux:

  • переход по директория: cd /путь/путь
  • создание файла: :>имяфайла
  • копирование файла: cp имяисходного имянового
  • перемещение или переименование файла: mv имяисходного имянового
  • список файлов и папок в текущей директории: ls -l

Установка пакетов почтового сервера:

* Все команды будут выполняться от имени root, если вы выполняете под своим пользователям добавляйте sudo в начале команды.

Создание пользователя для работы с почтой:

Создание базы mysql

* Необходимо чтобы был установлен mysql-server, введите команды ниже и пароль от пользователя root в mysql.

* Необходимо заменить MysqlPasswordForMailBase на ваш пароль cгенерированный либо придуманный для пользователя mail в mysql:

Устанавливаем postfixadmin систему управления ящиками через веб-интерфейс:

Переходим в директорию

* Пример команды скачивания файла в текущую директорию:

Переименовываем полученный файл в postfixadmin.tar.gz:

Промотрим список директорий и файлов в текущей папке:

Переименовываем папку в postfixadmin, имя вашей папки может отличаться смотрите результат команды ls -l:

Переходим в директорию и выставляем права 770 и владельца root:www-data, на директорию postfixadmin также нужно выставить такие значения:

Вставляем в файл:

Запуск конфигурирования почтового демона exim:

1. Тип конфигурации
интернет-сайт; приём и отправка почты напрямую, используя SMTP
internet site; mail is sent and received directly using SMTP
2. Почтове имя
mydomain.ru
3. Список IP-адресов, с которых Exim ожидает подключение
Оставляем пустым – ждем почту с любых адресов
4. Список доменов получателей
mydomain.ru;mydomain2.ru
5. Домены для релея
Оставляем пустым – не будем релеить почту.
6. IP-адреса, с которых разрешён релей.
Оставляем пустым.
7. Сокращать кол-во DNS-запросов до минимума
Нет
8. Место доставки локальной почты
mbox формат в /var/mail/
9. Разделить конфигурацию на маленькие файлы
Нет
10. Получатель почты, адресованной root и postmaster
root

Копируем в файл exim4.conf содержимое нижнего блока:

Для начала создадим файл:

* Необходимо заменить MysqlPasswordForMailBase на пароль от вашего пользователя mail в mysdl который мы создали выше и заменить mydomain.ru на ваш:

Копируем в файл /etc/dovecot/dovecot.conf содержимое нижнего блока:

Обнулим содержимое файла:

* Необходимо заменить MysqlPasswordForMailBase на пароль от вашего пользователя mail в mysdl который мы создали выше:

Копируем в файл /etc/dovecot/dovecot-sql.conf содержимое нижнего блока

Создаим файл конфигурации:

* Необходимо заменить MysqlPasswordForMailBase на пароль от вашего пользователя mail в mysdl который мы создали выше:

Необходимо создать dovecot-sieve.log в директории /var/log и выставить владельца и права:

Для dovecot.log аналогично:

Установка и настройка spamassassin:

Обнулим содержимое файла конфигурации:

Копируем в файл /etc/spamassassin/local.cf содержимое нижнего блока:

После установки он по умолчанию выключен.

Поэтому открываем файл /etc/default/spamassassin и меняем строку:
ENABLED=1

Установка и настройка clamav — антивирус:

Выполним команду для просмотра прав:

Результат должен быть похож на:

Дополнительно поставить модуль dovecot:

И просмотрим статус работы:

Настройка postfixadmin:

Переходим по адресу mydomain.ru/postfix и нажимаем setup, нам отображается сообщение:

Проходим в настройки и устанавливаем данное значение.

Также находим строчки с подключением к базе и меняем на имя нашей базы и пароль от неё.

Прокручиваем страницу в конец и здесь нам предлагают установить пароль для установки (Change setup password), придумываем любой пароль.

* Важно: пароль должен содержать минимум три буквы.

После установки пароля нам необходимо скопировать сгенерированный hash скопировать в настройки (config.inc.php), у вас он будет другой не копируйте наше значение.

Далее вводим наш пароль который мы придумали (не hash).

Логин админстратора пример: root@dka-develop.ru

И придумываем для администратора пароль, с этими данными мы будем заходить в администрование почтовых ящиков.

Нажимаем Add Admin, и нас поздравят с основной настройкой postfixadmin:

Переходим по ссылке с именем login to PostfixAdmin и входим с логином и паролем от нашего супер админа root@dka-develop.ru.

Далее переходим в список доменов, добавить домен:

Обзор, создать ящик:

Ящик создан и письмо отправлено, давайте посмотрим в директории /var/vmail/dka-develop.ru/info/new наше письмо.

* dka-develop.ru это наш путь у вас свой домен.

Все работает осталось немного, установить и настроить roundcube для просмотра и отправки писем, это почтовый клиент на подобее outlook, the bat. только в веб-интефейсе на подобее gmail.

Установка, настройка roundcube:

Переходим на сайт https://roundcube.net/ и скачиваем последнюю версию * — Complete.

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

Переходим в директорию и выставляем права 770 и владельца root:www-data или вашпользователь:www-data, на директорию roundcubemail также нужно выставить такие значения:

Вставляем в файл:

Создадим базу для roundcubemail, подключаемся под root пользователем mysql, не путать root в системе linux (ubuntu|debian . ):

Вводим пароль, затем выполняем команды, MysqlPasswordForMailBase необходимо заменить на свой пароль, этот пароль мы будем вводить дальше в конфигурации для подключения:

Переходим по адресу, где dka-develop.ru это ваш домен: http://dka-develop.ru/webmail/installer/

На первом шаге нажимаем Next и здесь нас интересует:

Читайте также:  Как изменять главное меню windows

Нажимаем Create Config. Нам сообщают что конфиг успешно создан, нажимаем Continue (Продолжить):

Нажимаем Initialized Database.

Переходим в диреторию roundcubeamail и открываем файл конфигурации config.inc.php:

И добавьте в конец следующие строчки:

Для безопасности необходимо удалить папку installer:

Переходим по адресу, где dka-develop.ru это ваш домен: http://dka-develop.ru/webmail/

И входим под нашим пользователем info@dka-develop.ru

На этом все настройка почтового сервера завершена.

ClamAV returned lstat() failed: Permission denied. ERROR

Нужно в конфигурационных файлах

изменить параметр на «yes»:

Подписывайтесь на наш канал в YouTube, ведь это ещё не конец!

Источник

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

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

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

Читайте также:  Windows 10 сам перезагружается когда хочет

Арендуем 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

При регистрации домена в зоне .RU нужно предоставлять паспортные данные, а делать этого не очень хочется. В международной зоне список необходимых для регистрации данных скромнее. Для регистрации можно указать все тот же ящик с protonmail’a. В качестве примера представим, что мы зарегистрировали домен example.com.

В редакторе 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 и второй раздел с шифрованием:

После установки системы я делаю несколько базовых вещей. Удаляю созданного при установке пользователя командой deluser —remove-home .

Задаю статический адрес, если это не было сделано во время установки. Для этого правим файл /etc/network/interfaces . Обратите внимание, что сетевой адаптер вашего сервера может называться по другому, в моем примере ens192 . Секция файла с настройкой сетевого адаптера должна получиться такой:

Для применения изменений выполняем команду (не забываем здесь заменить название сетевого интерфейса на свое):

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

IPv6 я тоже отключаю, для этого в конец файла /etc/sysctl.conf добавляю строку:

Чтобы параметр применился выполняем команду:

Проверить, отключился ли IPv6 довольно легко. Для этого нужно просмотреть вывод нижеследующей команды на наличие ipv6 адресов:

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

Включаю логин по паролю для root по SSH, для этого в файле /etc/ssh/sshd_config добавляем строку PermitRootLogin yes . Применяем изменения:

Коннектимся к серверу по ssh и едем дальше.

Настройка VPN подключения

Устанавливаем wireguard на почтовом сервере так же как это делали на VPS несколькими шагами выше:

Создаем файл конфигурации /etc/wireguard/wg0.conf следующего содержания:

Теперь идем по SSH на VPS сервер и в файл конфигурации /etc/wireguard/wg0.conf добавляем:

На VPS сервере в файл /etc/sysctl.conf добавляем строку net.ipv4.ip_forward = 1 , чтобы разрешить форвардинг трафика, а чтобы применить эту настройку без перезагрузки, даем команду sysctl -w net.ipv4.ip_forward = 1 .

На VPS создаем небольшой скрипт фаерволла, который будет срабатывать при каждом включении сетевого адаптера. Создаем файл /etc/network/if-up.d/firewall , содержимое файла спрятал под спойлер.

Не забываем сделать файл исполняемым командой chmod +x /etc/network/if-up.d/firewall

На VPS сервере запускаем wireguard:

Возвращаемся на почтовый сервер и запускаем wireguard там:

Состояние подключения можно посмотреть командой 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, сделаем это руками чуть ниже.

Скрипт пока не тестировался на корректность работы при многократном запуске. Если почтовый сервер у вас развернут как виртуальная машина, то перед выполнением лучше сделать снапшот ВМ.

Читайте также:  Входящие соединения брандмауэр windows

Скачиваем и распаковываем скрипт:

Всего в каталоге 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, см в файлах вторую строку:

Генерирование сертификатов, завершение настройки

Генерируем SSL сертификат командой. Не забываем заменить example.com на свой домен:

Генерируем DKIM. В команде ниже вместе example.com ‒ ваш домен, а вместо 20210121 можно взять текущую дату (ггггммдд):

Результатом выполнения команды будет такой текст:

В файл /etc/rspamd/dkim_selectors.map нужно добавить дату, чтобы получилось примерно так:

Идем в редактор DNS зоны у регистратора, добавляем запись «TXT» с именем 20210121._domainkey и значением v=DKIM1; k=rsa; p=. Дата в имени у вас будет своя, параметры перечисляются без двойных кавычек. Примерно так:

Тут есть нюанс. По умолчанию длина ТХТ записи может быть до 255 символов, а т.к. мы сгенерировали 2048 битный DKIM ключ, то его длина выходит за это ограничение и если вы внимательно посмотрите на результат генерации ключа, параметр p разбит на два, каждый из которых в своих двойных кавычках. Если регистратор поддерживает ТХТ записи большей длины, то две части можно просто схлопнуть, убрав кавычки. У GoDaddy, например, максимальная длина TXT записи 1024 символа. А если регистратор не поддерживает больше 255 символов, то ключ записывается в две ТХТ записи. Или можно сгенерировать более короткий ключ на 1024 бита.

Последнее что нужно сделать ‒ поправить файл /etc/postfix/master.cf . Необходимо раскомментировать строку:

И 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 на веб-сервере:

Логинимся в админку 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 . Это скроет данные о версии веб-сервера:

Для применения изменений перезагрузим Apache командой service apache2 reload .

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 будут полезны для всей домашней сети, но об этом мы поговорим в следующий раз.

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

Источник

Оцените статью