Найти в Дзене
Андрей Ага

Установка RUPOST в качестве сервера для "внешней" почты

Рупост может работать как внутри локальной сети, так и для работы с почтой в интернете. Рассмотрим 2-ой вариант, потому что, как мне кажется, по первому там все ежу понятно. Все, что тут будет написано- можно опять же найти в Руководстве по установке и в интернете. Ставится Рупост только на Астру Линукс. Сервер наш будет называться srv-rupost, IP 192.168.0.11, шлюз 192.168.0.1 В самом Рупосте пользователей завести нельзя- он должен брать их из AD, ALD или FreeIPA. У нас будет как раз 3-ий вариант. FreeIPA нужно ставить на другой сервер, т.к. они с Рупостом используют одни и те же 80 и 443 порты и ни там ни там, насколько я знаю, переопределить их нельзя. Установить FreeIPA можно также на Астру или на Alt Linux. У нас будет 2-ой вариант, т.к. Альт- дешевле. Установка описана здесь: И здесь же написано, как сделать на сервере сетевую папку- ее нужно создать и на сервере, на котором мы будем ставить Рупост. На Астру ставится точно так же, единственное отличие- команда установки Самбы не

Рупост может работать как внутри локальной сети, так и для работы с почтой в интернете. Рассмотрим 2-ой вариант, потому что, как мне кажется, по первому там все ежу понятно. Все, что тут будет написано- можно опять же найти в Руководстве по установке и в интернете.

Ставится Рупост только на Астру Линукс. Сервер наш будет называться srv-rupost, IP 192.168.0.11, шлюз 192.168.0.1 В самом Рупосте пользователей завести нельзя- он должен брать их из AD, ALD или FreeIPA. У нас будет как раз 3-ий вариант. FreeIPA нужно ставить на другой сервер, т.к. они с Рупостом используют одни и те же 80 и 443 порты и ни там ни там, насколько я знаю, переопределить их нельзя. Установить FreeIPA можно также на Астру или на Alt Linux. У нас будет 2-ой вариант, т.к. Альт- дешевле. Установка описана здесь:

И здесь же написано, как сделать на сервере сетевую папку- ее нужно создать и на сервере, на котором мы будем ставить Рупост. На Астру ставится точно так же, единственное отличие- команда установки Самбы не apt-get install samba, а apt install samba.

Заодно можно установить РДП, чтобы не сидеть около сервера:

apt install xorgxrdp xrdp && sed -i 's/fork=true/fork=false/' /etc/xrdp/xrdp.ini

Ставим postgres: apt install -y postgresql

Создаем пароль для пользователя postgres:

pdpl-user -i 63 postgres

sudo -u postgres psql

\password (команда вводится именно так- со слешем)

После этого предложит создать новый пароль. После этого выходим по Ctrl+D.

Дистрибутив Рупоста- файл с расширением run и файл лицензии с расширением rplic - закидываем в нашу папку /temp. На всякий случай запустим apt update - должно пройти без ошибок, иначе настройка вылетит.

Запускаем дистрибутив, жмем Далее и т.д. Когда дойдет до настройки подключения к базе- меняем пользователя rupost на postgres и вводим там пароль, который для него создали. На каком-то шаге предложит выбрать лицензию.

Заходим на Рупост по адресу ip_адрес:5000 (если заходите прямо на сервере- пишем localhost:5000), пользователь- mailadmin , пароль- rupost

Теперь нужно настроить связку с FreeIpa. Перед этим нужно у ТП Рупоста попросить скрипт для FreeIPA и запустить его на сервере, на котором эта самая IPA установлена. Если вы устанавливали FreeIpa по моей статье- то файл можно закинуть в папку temp по сети и запустить из нее.

Заходим в Настройки- Домены LDAP, Добавить. Имя домена- xz.loc(если вы ставили IPA по моей статье), Имена узлов контроллера- 192.168.0.10, Тип службы- FreeIPA, порт- 636, Уникальное имя- uid=ldapbind,cn=users,cn=accounts,dc=xz,dc=loc , пароль- тот, который вы прописывали в настройках скрипта, который вы запускали на сервере FreeIPA, Подключение к LDAP-домену через SSL- ставим псису галку. Жмем Проверить.., если все нормально- Сохранить.

Идем в Почтовые домены, там прописываем свой почтовый домен(например, он у вас называется kontora.ru). Ставим галку на "Не проверять корректность DNS записей" и жмем Сохранить. Замечание: в инструкции написано много параметров, которые надо прописать в настройках вашего домена, на самом деле бОльшая часть там не нужна.

Еще зайдем в Общие настройки и пропишем там "Имя узла почтовой системы в DNS.." - kontora.ru и "Адрес почтового ящика администратора" - post@kontora.ru

Дальше идем в Конфигурации, жмем Выбрать шаблон. Шаблон пока что выбираем "Базовый шаблон конфигурации"(потом можно поменять), дальше- по смыслу.

Идем в Получатели- Почтовые ящики, жмем Добавить из LDAP, в строке поиска пишем пользователя(например, test, Далее, ставим точку на "Генерация первичных почтовых адресов по шаблону" и выбираем там, например, Логин. В результате будет создан пользователь test@kontora.ru. Перед этим, естественно, этого самого пользователя test нужно завести в FreeIPA.

Для приема почты пробрасываем на вашем роутере(или через что вы там выходите в интернет) порты 25, 465, 993(возможно, хватит и 25-ого, но я на всякий случай пробросил все 3).

Заходим по адресу Рупоста(если заходим на сервере- то просто пишем localhost), имя пользователя- test@kontora.ru , попадаем в веб-интерфейс. Ну и основное мы все сделали, можно попробовать отправить письмо и убедиться, что все работает.

Когда вы будете заходить в веб-интерфейс, браузер вам будет говорить, что сертификат ему не нравится. Можно это так и оставить. Но лучше сделать, как говорится, по уму. Для этого надо создать нормальные сертификаты. Делается это несложно. Допустим, наш сервер называется rupost.xz.loc, IP-адрес- 192.168.0.11

В папке /temp создаем файл с названием, например, vot.txt с содержимым:

subjectAltName = DNS:*.xz.loc, DNS:xz.local,DNS:*.xz.loc, DNS:xz.loc, DNS:192.168.0.11, DNS:127.0.0.1, DNS:localhost

Обратите внимание- разделитель не просто запятая, а запятая и пробел.

Запускаем команды:

openssl genpkey -algorithm RSA -out rootCA.key

openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 3650 -out rootCA.crt

openssl genpkey -algorithm RSA -out xz.key

openssl req -new -key xz.key -out xz.csr

openssl genpkey -algorithm RSA -out rootCA.key

openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 3650 -out rootCA.crt

openssl genpkey -algorithm RSA -out xz.key

openssl req -new -key xz.key -out xz.csr

В процессе выполнения будет задавать вопросы, отвечаем по смыслу. Самое главное- когда спросит про CN - нужно написать rupost.xz.loc(остальное- неважно).

В итоге у вас там будет несколько файлов. Откройте rootCA.crt , на вкладке Состав встаньте на "Субъект" и убедитесь, что в поле CN написано так: "CN = rupost.xz.loc". Если нет- значит, ошиблись, когда отвечали на вопросы.

Откройте xz.crt и тоже убедитесь, что в поле Субъект написано то же самое. Теперь встаньте на поле "Дополнительное имя субъекта", там должно быть в виде списка все, что вы написали в файле vot.txt- примерно в таком вот виде:

DNS-имя=*.xz.loc

DNS-имя=xz.loc

DNS-имя=*.xz.loc

Если в какой-то строке будет 2 значения- например- вот так: DNS-имя=*.xz.locDNS-имя=xz.loc - значит, при заполнении vot.txt вы не поставили пробел после запятой.

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

Если все прошло нормально, то файл rootCA.crt добавляем в "Доверенные корневые..". В винде это делается просто- открываем, жмем Установить сертификат- Далее- ставим точку на Поместить все.., жмем Обзор и выбираем "Доверенные корневые..". В Астре немного сложнее: копируем его в /usr/share/ca-certificates, потом запускаем dpkg-reconfigure ca-certificates , отвечаем Да, потом ищем его в списке(скорее всего- в самом низу), помечаем пробелом и жмем Ок.

Теперь нужно добавить наши сертификаты в Рупост

rupost cert add "control_panel_cert" --cert-type control_panel --cert-path xz.crt --key-path xz.key

rupost cert add "mail_cert" --cert-type mail --cert-path xz.crt --key-path xz.key

Перезапускаем Рупост: systemctl restart rupost

Заходим в веб-интерфейс. Несмотря на то, что команда выполняется быстро, сам Рупост будет готов к работе не сразу, так что если сразу не пустит- нужно подождать. Идем в Сертификаты, видим, что появились новые, старые можно удалить, чтобы не мешались. После этого придется еще раз развернуть конфигурацию- т.е. зайти в Настройки- Конфигурации, ну и т.д.

Замечание: если вы удалите сертификат панели управления, а новый не установите- то вы не сможете зайти в веб-интерфейс. Есть команда rupost cert list - она покажет, какие там есть сертификаты. Командой "rupost cert delete Название" можно удалить сертификат с соответствующим названием.

После этого, если мы будем заходить в веб-интерфейс по имени сервера или его IP-адресу- браузер ругаЦЦа уже не будет.

На этом- все.