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

В прошлой статье мы уже писали о том, как устанавливать Carbonio CE на Ubuntu 20.04, и одним из главных системных требований для нормальной работы сервера является наличие корректно сконфигурированных A- и MX-записей в DNS, а также корректно настроенный FQDN сервера.
Для того, чтобы при тестировании Carbonio CE не требовалось вносить изменения в конфигурацию DNS предприятия, можно создать выделенную локальную сеть с собственным DNS-сервером, который поможет обеспечить нормальное тестирование Carbonio CE.
Отметим, что протестировать Carbonio CE в условиях небольшой локальной сети можно просто внеся информацию с доменным именем сервера и его IP-адресом в файл hosts на каждом из устройств, однако когда в тестировании участвует достаточно много компьютеров или в тестах используются мобильные устройства, рациональнее будет создать локальный DNS-сервер.

Установка DNSMASQ
На выделенном сервере с Ubuntu 20.04 установим dnsmasq - легковесный DNS-сервер, который позволяет организовать внутреннюю систему доменных имен в локальной сети. Также установим net-tools, набор инструментов для работы с сетью. Делается это при помощи команд sudo apt-get install dnsmasq
и sudo apt-get install net-tools
.
Принцип работы dnsmasq заключается в том, что он будет перехватывать DNS-запросы от узлов в локальной сети, а затем сравнивать их с записями в собственном конфигурационном файле, а затем с записями в /etc/hosts
. В случае обнаружения совпадения, он в ответ на запрос от клиента направит указанный администратором IP-адрес. В случае отсутствия совпадений dnsmasq просто перенаправит запрос в глобальный DNS и вернет клиенту IP-адрес, хранящийся там. Благодаря этому администратор может создать в локальной сети собственную систему доменных имен, при этом не изолируя сеть от внешнего интернета.
Установка dnsmasq приведет к конфликту с системной службой systemd-resolved, а также к конфликту на порте 53 UDP, как это показано на скриншоте

Для разрешения этого конфликта необходимо отключить службу systemd-resolved.. Делается с помощью следующих команд:
sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
После этого проверьте статус dnsmasq при помощи команды systemctl status dnsmasq
. Если служба остановлена, запустите ее при помощи команды sudo systemctl start dnsmasq
и поставьте ее в автозапуск с помощью команды sudo systemctl enable dnsmasq
.
В результате вывод команды systemctl status dnsmasq
должен иметь следующий вид:

Перед непосредственной настройкой dnsmasq выясните данные вашего интернет-соединения при помощи команды sudo ifconfig -a
. В ее выводе будет содержаться информация о названии интерфейса и присвоенном IP-адресе. В нашем случае серверу присвоен статический IP-адрес, который не будет меняться со временем. О том, как этого добиться, мы расскажем ниже.

Настройка DNSMASQ
Для настройки dnsmasq будем использовать файл конфигурации /etc/dnsmasq.conf
. Перед внесением изменений следует его зарезервировать с помощью команды sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.backup
. Затем откроем файл настроек sudo nano /etc/dnsmasq.conf
.
Он содержит множество закомментированных строк, содержащих информацию о синтаксисе настроек. Нам потребуется добавить в /etc/dnsmasq.conf
следующие строки:
listen-address=::1,127.0.0.1,172.26.71.55
interface=eth0
domain=example.ru
address=/dnsmasq.example.ru/127.0.0.1
address=/dnsmasq.example.ru/172.26.71.55
server=8.8.8.8
server=4.4.4.4
mx-host=example.ru,carbonio.example.ru,10

С помощью данных настроек мы ограничиваем список ip-адресов и сетевых интерфейсов которые сканирует dnsmasq, а также присваиваем доменное имя локальным IP-адресам. Также мы указали адреса DNS-серверов от Google, чтобы dnsmasq передавал на них запросы, которые не соответствуют настроенным нами правилам и создали обязательную для сервера Carbonio CE MX-запись.
Для проверки корректности заполнения файла конфигурации запустите команду dnsmasq --test
. Если ошибок в синтаксисе файла нет, появится соответствующее сообщение:

После этого нужно настроить систему таким образом, чтобы все запросы в первую очередь передавались в dnsmasq. Для этого необходимо отредактировать файл /etc/resolv.conf
. Сперва создадим его резервную копию sudo cp /etc/resolv.conf /etc/resolv.conf.backup
. А затем откроем его в текстовом редакторе sudo nano /etc/resolv.conf и приведем его к следующему виду:

После сохранения изменений, защитите файл от перезаписи с помощью команды sudo chattr +i /etc/resolv.conf
. Это не позволит программе NetworkManager автоматически перезаписать данный файл и откатить измененные ранее настройки.
Также для корректной работы DNS потребуется открыть соответствующие сетевые порты на сервере с Ubuntu 20.04. На ubuntu 18.04 делать это необязательно. Для этого воспользуемся встроенным файрволом Ubuntu - UFW. Для открытия соответствующих портов введите последовательно:
sudo ufw allow 53/tcp
sudo ufw allow 53/udp
sudo ufw enable
Откройте файл /etc/hosts
, чтобы добавить записи о других узлах внутренней инфраструктуры. Каждому серверу должна соответствовать своя строка в файле

Сохраните измененный файл и перезапустите dnsmasq с помощью команды sudo systemctl restart dnsmasq
. Проверить корректность настройки DNS можно с помощью команды dig carbonio.example.ru
и dig example.ru
.

В дальнейшем необходимо просто указывать адрес сервера dnsmasq в качестве основного DNS в настройках подключения других компьютеров в сети, чтобы обеспечить локальную сеть собственной системой доменных имен.
Настройка статического IP-адреса на сервере Carbonio CE
В случае, если вы не используете для создания локальной сети роутер, который способен присваивать статический IP-адрес на основании MAC-адреса сетевого адаптера, есть возможность настроить получение сетевого адреса прямо в Ubuntu 20.04.
При использовании Ubuntu с графическим интерфейсом, для этих целей можно воспользоваться настройками системы. Для этого нажмите на значок сетевого подключения в правом верхнем углу рабочего стола, выберите активное сетевое подключение и кликните на “Параметры соединения”.

Нажмите на значок “Параметры” чтобы открыть окно с настройками сети.

Перейдите на вкладку IPv4 и выберите метод получения IP-адреса Вручную и введите IP-адрес, который должен быть присвоен серверу Carbonio CE, а также в качестве DNS-сервера укажите адрес сервера dnsmasq.

После этого выключите и вновь включите интернет-соединение, чтобы сетевой интерфейс получил заданный ранее IP-адрес.
Также статический IP-адрес можно настроить в консоли. Для этого сперва потребуется выяснить название сетевого интерфейса и действующий IP-адрес. Делается это с помощью установки утилиты net-tools и команды sudo ifconfig -a
.

В нашем случае имеется один проводной сетевой интерфейс и для того, чтобы получить статический ip-адрес, необходимо его соответствующим образом настроить. Настройки сетевых интерфейсов хранятся в папке /etc/netplan
в файлах с расширением .yaml. Для настройки нашего сетевого интерфейса перейдем в данную папку и выясним, какие файлы там находятся:
cd /etc/netplan
ls

Откройте файл .yaml в текстовом редакторе sudo nano /etc/netplan/01-network-manager-all.yaml
. Изначально содержимое файла будет выглядеть следующим образом:

Необходимо привести его к следующему виду с указанием вашего сетевого интерфейса, IP-адреса и сервера DNS:

Файл настроек netplan чрезвычайно чувствителен к отступам, которые нужно делать исключительно пробелами. Внимательно следите за ними, иначе настройки просто не применятся.
В случае, если у вас несколько сетевых интерфейсов, итоговый файл будет выглядеть следующим образом:

После того как все изменения внесены, необходимо сохранить файл и применить изменения с помощью команды netplan apply
. После этого вновь введите команду sudo ifconfig -a
, чтобы удостовериться в том, что изменения вступили в силу.
Эксклюзивный дистрибьютор Zextras SVZcloud. По вопросам тестирования и приобретения Zextras Carbonio обращайтесь на электронную почту: sales@svzcloud.ru