Настройка межсетевого экрана OPNsense в режиме кластера высокой доступности на серверах Yandex BareMetal
Предлагаемое решение позволяет настроить на серверах BareMetal периметральный межсетевой экран OPNsense
Смысл предлагаемого решения заключается в том, чтобы к интернету были подключены только серверы межсетевого экрана
Решение должно быть отказоустойчивым, поэтому предлагаемая конфигурация – это кластер высокой доступности
Для того чтобы клиенты в защищенном сегменте сети могли автоматически получать IP-адреса и корректный адрес шлюза, в решении применяется сервер ISC DHCPv4 в высокодоступной конфигурации: реализация OPNsense позволяет реплицировать список DHCP-адресов между серверами с ролями Master и Backup в кластере.
Схема решения:
-
Публичная сеть BareMetal пула серверов
ru-central1-m4. -
Приватная подсеть BareMetal
opnsense-private-subnet-m4. -
Два сервера BareMetal в составе кластера OPNsense:
opnsense-masterиopnsense-backup. При написании настоящего руководства использовался межсетевой экран OPNsense версии25.1. -
Один сервер BareMetal
vmware-esxiс запущенной платформой виртуализации VMware ESXi . При написании настоящего руководства использовался гипервизор ESXi версии7.0U3g. -
На сервере
vmware-esxiзапущена виртуальная машина:opnsense-tester-vm. При написании настоящего руководства виртуальная машина создавались под управлением ОС Linux Ubuntu 24.04 без графического пользовательского интерфейса. -
Инсталляционный сервер
jump-server, необходимый для настройки серверов OPNsense и ESXi, при помощи которого можно обращаться к приватным IP-адресам серверов OPNsense и ESXi.Инсталляционный сервер должен иметь графический пользовательский интерфейс
и браузер . Для упрощения настроек в настоящем руководстве в роли инсталляционного сервера будет выступать сервер BareMetal, загруженный в режиме восстановления и диагностики с Rescue-CD.Примечание
В качестве альтернативы Rescue-CD вы можете использовать VPN-подключение, при помощи которого можно будет обращаться к приватным IP-адресам серверов извне приватной подсети. При использовании VPN-соединения на серверах OPNsense потребуется настройка статического маршрута в сегмент сети за пределами текущей приватной подсети.
Чтобы настроить межсетевой экран OPNsense в режиме кластера высокой доступности на серверах Yandex BareMetal:
- Подготовьте облако к работе.
- Создайте загрузочные образы в BareMetal.
- Создайте приватную подсеть BareMetal.
- Арендуйте серверы BareMetal.
- Настройте кластер высокой доступности OPNsense.
- Установите гипервизор и создайте виртуальную машину.
- Убедитесь в работоспособности решения.
Если созданные ресурсы вам больше не нужны, удалите их.
Перед началом работы
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVEилиTRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость предлагаемого решения входят:
- плата за аренду серверов BareMetal (см. тарифы Yandex BareMetal);
- плата за хранение данных в Object Storage и операции с ними (см. тарифы Yandex Object Storage).
Создайте загрузочные образы в BareMetal
Установка межсетевого экрана OPNsense и гипервизора ESXi на серверы BareMetal будет выполняться из пользовательских загрузочных образов BareMetal, которые вы подготовите перед тем, как приступать к развертыванию инфраструктуры.
Загрузите ISO-образы программных продуктов в Yandex Object Storage
Для создания инфраструктуры, предусмотренной предлагаемым решением, вам потребуются ISO-образы
Примечание
Yandex Cloud не предоставляет дистрибутивы этих программных продуктов, вам следует приобрести их самостоятельно.
Загрузите образы с дистрибутивами OPNsense и ESXi в бакет Object Storage:
- Если у вас еще нет бакета в Object Storage, создайте его с ограниченным доступом.
- Загрузите образы в ваш бакет, например, через консоль управления, с помощью AWS CLI или WinSCP. В терминах Object Storage загруженные файлы образов будут называться объектами.
- Получите ссылки на загруженные образы. Используйте эти ссылки при создании загрузочных образов в BareMetal.
Создайте загрузочные образы в BareMetal
-
В консоли управления
выберите каталог, в котором вы планируете создавать инфраструктуру. -
В списке сервисов выберите BareMetal.
-
На панели слева выберите
Загрузочные образы. -
Нажмите кнопку Загрузить образ.
-
Введите имя для образа OPNsense. Требования к имени:
- длина — от 2 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
(Опционально) Добавьте описание образа.
-
Вставьте ссылку на образ OPNsense, полученную в Object Storage.
-
Нажмите кнопку Загрузить.
-
Аналогичным образом создайте загрузочный образ ESXi.
Создайте приватную подсеть BareMetal
- В консоли управления
выберите каталог, в котором вы создаете инфраструктуру. - В списке сервисов выберите BareMetal.
- На панели слева выберите
Приватные подсети и нажмите кнопку Создать подсеть. - В поле Пул выберите пул серверов
ru-central1-m4. - В поле Имя задайте имя подсети:
opnsense-private-subnet-m4. - Не включая опцию IP-адресация и маршрутизация, нажмите кнопку Создать подсеть.
Арендуйте серверы BareMetal
-
В консоли управления
выберите каталог, в котором вы создаете инфраструктуру. -
Перейдите в сервис BareMetal.
-
Нажмите кнопку Заказать сервер и в открывшемся окне выберите вариант
Готовые конфигурациии подходящую конфигурацию сервера BareMetal в пуле серверовru-central1-m4.Для этого в фильтре в правой части окна в блоке Пул выберите пул серверов
ru-central1-m4.Для тестирования предлагаемого решения будет достаточно конфигурации с минимальными аппаратными характеристиками. Чтобы выбрать подходящую вам конфигурацию сервера, нажмите на блок с именем этой конфигурации в центральной части экрана.
-
В открывшемся окне с настройками конфигурации сервера:
-
В поле Период аренды выберите период, на который вы хотите арендовать сервер:
1 день,1 месяц,3 месяца,6 месяцевили1 год.По окончании указанного периода аренда сервера будет автоматически продлена на такой же период. Прервать аренду в течение указанного периода аренды нельзя, но можно отказаться от дальнейшего продления аренды сервера.
- В блоке Образ выберите
Без операционной системы. - В блоке Приватная сеть в поле Приватная подсеть выберите созданную ранее подсеть
opnsense-private-subnet-m4. - В блоке Публичная сеть в поле Публичный адрес выберите
Из эфемерной подсети. - В блоке Информация о сервере в поле Имя задайте имя сервера:
opnsense-master. -
Нажмите кнопку Заказать сервер.
-
-
Аналогичным способом арендуйте еще один сервер с именем
opnsense-backupв пуле серверовru-central1-m4. -
Аналогичным способом арендуйте еще два сервера в пуле серверов
ru-central1-m4— с именамиvmware-esxiиjump-server. Но при настройке конфигурации этих серверов в блоке Сетевые настройки в поле Публичный адрес выберитеБез адреса.
Примечание
Подготовка серверов может занять до 20 минут — в это время серверы будут находиться в статусе Provisioning, после чего они перейдут в статус Ready.
Настройте кластер высокой доступности OPNsense
Настройка кластера высокой доступности включает в себя установку межсетевого экрана OPNsense на два сервера BareMetal, последующее создание из этих серверов кластера OPNsense и его настройку.
Установите межсетевой экран OPNsense на серверы
Совет
Чтобы сэкономить время, вы можете запустить установку OPNsense на серверах opnsense-master и opnsense-backup одновременно в разных окнах браузера: установка на двух этих серверах выполняется одинаково.
-
Подключитесь к KVM-консоли сервера
opnsense-master.Примечание
Все последующие действия этого этапа настройки будут выполняться в окне KVM-консоли.
-
В окне KVM-консоли в верхнем меню выберите Media → Virtual Media Wizard... или нажмите значок с изображением CD-диска. В открывшемся окне:
- В секции CD/DVD Media1 нажмите кнопку Browse и в директории
user-isoвыберите сохраненный ранее образ с OPNsense. - Нажмите кнопку Connect CD/DVD.
- Убедитесь, что в секции Status для устройства Virtual CD 1 значение поля Connected To изменилось на путь к выбранному образу, и нажмите кнопку Close.
- В секции CD/DVD Media1 нажмите кнопку Browse и в директории
-
Чтобы запустить сервер с выбранного образа, в правом верхнем углу KVM-консоли нажмите кнопку Reboot to cdrom.
-
Дождитесь запуска сервера и инициализации интерактивной оболочки OPNsense – этот процесс может занять до десяти минут.
По завершении инициализации в экране терминала в KVM-консоли вы увидите предложение аутентифицироваться:
login: -
Аутентифицируйтесь, используя следующие учетные данные:
- имя пользователя:
installer; - пароль:
opnsense.
Совет
Чтобы в KVM-консоли вставить текст из буфера обмена, воспользуйтесь полем Paste text here в правом верхнем углу.
- имя пользователя:
-
В окне Keymap Selection оставьте значение по умолчанию
Continue with default keymapи нажмите Enter. -
В окне выбора действия выберите
Install (ZFS)и нажмите Enter. -
В окне ZFS Configuration выберите
mirrorи нажмите Enter. -
В следующем окне с выбором блочных устройств для создания виртуального RAID-массива с помощью стрелок вверх и вниз и пробела выберите HDD или SSD диски сервера, например:
sda0иsda1. Затем нажмите Enter. -
В окне с предупреждением о возможной потере данных подтвердите согласие на внесение изменений в таблицу разделов. Для этого с помощью стрелок вправо и влево выберите
YESи нажмите Enter.Будет запущен процесс установки межсетевого экрана OPNsense на сервер.
Внимание
В процессе установки не закрывайте и не обновляйте окно KVM-консоли. В противном случае установочный образ окажется отмонтирован от сервера BareMetal и установку придется начинать заново.
Процесс установки может занять до часа.
-
После завершения установки в окне Final Configuration выберите
Root Password, чтобы задать пароль для пользователяroot, и нажмите Enter. Введите и подтвердите введенный пароль. -
После установки пароля в окне Final Configuration выберите
Complete Installи нажмите Enter. -
В окне Installation Complete выберите
Reboot nowи нажмите Enter. -
В окне KVM-консоли в верхнем меню выберите Media → Virtual Media Wizard... или нажмите значок с изображением CD-диска. В открывшемся окне:
- В секции CD/DVD Media1 нажмите кнопку Disconnect и убедитесь, что в секции Status для устройства Virtual CD 1 значение поля Connected To изменилось на
Not connected. - Нажмите кнопку Close.
- В секции CD/DVD Media1 нажмите кнопку Disconnect и убедитесь, что в секции Status для устройства Virtual CD 1 значение поля Connected To изменилось на
-
Аналогичным образом установите OPNsense на сервер
opnsense-backup.
Выполните предварительную настройку серверов OPNsense
Прежде чем приступать к настройке кластера OPNsense, выполните базовую настройку сетевых интерфейсов обоих серверов OPNsense:
-
Подключитесь к KVM-консоли сервера OPNsense.
Примечание
Все последующие действия этого этапа настройки будут выполняться в окне KVM-консоли.
-
Аутентифицируйтесь, используя имя пользователя
rootи пароль, заданный при установке сервера. Если вы не задавали пароль пользователяroot, значение пароля по умолчанию –opnsense.В результате успешной аутентификации вы увидите текстовое меню базовых настроек сервера со списком возможных действий.
-
Убедитесь, что в системе настроены сетевые интерфейсы:
Примечание
В зависимости от конфигурации сервера BareMetal он может быть оснащен сетевыми картами
IntelилиMellanox. Сетевые интерфейсы на картахIntelядро ОС настраивает автоматически, а для настройки сетевых интерфейсов на картахMellanoxмогут потребоваться дополнительные действия.-
Введите
8(вариантShell) и нажмите Enter, чтобы открыть терминал операционной системы. -
Проверьте наличие сетевых интерфейсов:
ifconfigЕсли в выводе команды присутствуют сетевые интерфейсы с описаниями (
description)LANиWAN, значит, дополнительных действий не требуется.Пример:
igb0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mt description: LAN (lan) options=4802028<VLAN_MTU,JUMBO_MTU,WOL_MAGIC,HWSTATS,MEXTPG> ether 00:25:90:3:a1:fe inet 192.168.1.1 netmask Oxffffff00 broadcast 192.168.1.255 inet6 fe80::225:90ff:fee3:a1fe%igb0 prefixlen 64 scopeid 0x1 media: Ethernet autoselect (1000baseT ‹full-duplex>) status: active nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> igb1: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mt description: WAN (wan) options=4800028<VLAN_MTU,JUMBO_MTU,HWSTATS,MEXTPG> ether 00:25:90:3:a1:ff inet 94.126.204.143 netmask Oxfffffffe broadcast 94.126.204.143 inet6 fe80::225:90ff:fee3:a1ff%igb1 prefixlen 64 scopeid 0x2 media: Ethernet autoselect (1000baseT <full-duplex>) status: active nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>В приведенном примере сетевые интерфейсы
igb0иigb1имеют соответственно описанияLANиWAN, а также назначенные IP-адреса. В этом случае вы можете переходить к следующему шагу.Что делать, если в выводе нет интерфейсов
LANиWANс назначенными адресами.-
Создайте и откройте дополнительный файл конфигурации
loader.conf.local:ee /boot/loader.conf.local -
Добавьте в созданный файл конфигурации строку:
mlx4en_load="YES" -
Закройте файл, сохранив изменения. Для этого нажмите сочетание клавиш Esc + Enter и в открывшемся окне введите
a. -
Перезапустите систему:
reboot -
Дождитесь перезапуска системы, аутентифицируйтесь и перейдите в терминал ОС.
-
Повторно выполните команду
ifconfig, чтобы убедиться, что необходимые сетевые интерфейсы появились в системе. ИнтерфейсыMellanoxбудут иметь идентификаторыmlxen0иmlxen1.
-
-
Закройте терминал операционной системы:
exit
-
-
Настройте LAN-интерфейс сервера:
-
Введите
2(вариантSet interface IP address) и нажмите Enter:1 - LAN (igb0 - static, track6) 2 - WAN (igb1 - dhcp, dhep6) -
Введите номер интерфейса LAN и нажмите Enter.
-
Configure IPv4 address LAN interface via DHCP? [y/N]:Введите
n, чтобы задать для интерфейса статический IPv4-адрес. -
Enter the new LAN IPv4 address. Press <ENTER> for none:MasterBackupВведите адрес
192.168.1.252.Введите адрес
192.168.1.253. -
Enter the new LAN IPv4 subnet bit count (1 to 32):Введите префикс CIDR
подсети. Например:24. -
For a WAN, enter the new LAN IPv4 upstream gateway address. For a LAN, press <ENTER> for none:Нажмите Enter, чтобы не задавать адрес шлюза.
-
Configure IPv6 address LAN interface via WAN tracking? [Y/n]:Введите
n, чтобы не настраивать IPv6-адрес с помощью функции Track Interface. -
Configure IPv6 address LAN interface via DHCP6? [y/N]:Введите
n, чтобы не настраивать получение IPv6-адреса по DHCP6. -
Enter the new LAN IPv6 address. Press <ENTER> for none:Нажмите Enter, чтобы не задавать IPv6-адрес.
-
Do you want to enable the DHCP server on LAN? [y/N]:Введите
n, чтобы не настраивать DHCP-сервер. Вы настроите DHCP-сервер через веб-интерфейс позднее. -
Do you want to change the web GUI protocol from HTTPS to HTTP? [y/N]:Введите
y, чтобы использовать протокол HTTP для доступа к веб-интерфейсу конфигурации сервера. -
Restore web GUI access defaults? [y/N]:Введите
y, чтобы для доступа к веб-интерфейсу конфигурации сервера использовать настройки по умолчанию.
Настройки серверов OPNsense обновятся, и вы сможете продолжить конфигурирование серверов и кластера OPNsense через веб-интерфейс по указанным адресам:
MasterBackupYou can now access the web GUI by opening the following URL in your web browser: http://192.168.1.252You can now access the web GUI by opening the following URL in your web browser: http://192.168.1.253Дополнительные настройки, если вы будете подключаться к веб-интерфейсу через VPN.
-
Введите
8(вариантShell) и нажмите Enter, чтобы открыть терминал операционной системы. -
Настройте статический маршрут в VPN-сегмент сети:
MasterBackuproute add <CIDR-VPN-сегмента> 192.168.1.252route add <CIDR-VPN-сегмента> 192.168.1.253Где
<CIDR-VPN-сегмента>– CIDR подсети в VPN-сегменте. Например:172.28.1.0/24. -
Убедитесь, что маршрут добавлен:
netstat -rn4Вывод команды должен содержать маршрутную запись вида:
MasterBackup172.28.2.0/24 192.168.1.252. UGS. mlxen1172.28.2.0/24 192.168.1.253. UGS. mlxen1
-
На этом базовые настройки серверов OPNsense выполнены. Дальнейшее конфигурирование серверов и кластера вы будете выполнять через веб-интерфейс.
Настройте кластер серверов OPNsense
Для настройки кластера серверов OPNsense необходим инсталляционный сервер (Jump server), имеющий графический пользовательский интерфейс и доступ в приватную подсеть, к которой подключены хосты кластера.
Для упрощения необходимых настроек в настоящем руководстве в роли такого инсталляционного сервера будет использоваться арендованный ранее сервер jump-server, загруженный в режиме восстановления и диагностики с Rescue-CD.
Примечание
Все последующие действия этого этапа настройки будут выполняться в окне KVM-консоли.
-
Запустите сервер
jump-serverс Rescue-CD, выбрав в основном меню SystemRescue вариант загрузки по умолчанию –Boot SystemRescue using default options.После запуска SystemRescue в KVM-консоли будет запущен терминал ОС SystemRescue.
-
Чтобы запустить графическую оболочку SystemRescue, в терминале ОС SystemRescue выполните команду
startx. -
Поскольку в приватной подсети
opnsense-private-subnet-m4пока нет DHCP-сервера, настройте сетевой интерфейс вручную:-
Узнайте MAC-адрес подключенного к приватной подсети сетевого интерфейса сервера
jump-server.MAC-адрес нужного сетевого интерфейса сервера BareMetal вы можете посмотреть на странице с информацией о сервере
jump-serverв блоке Приватная сеть.Сохраните полученный MAC-адрес — он потребуется на следующем шаге.
-
Определите имя подключенного к приватной подсети сетевого интерфейса сервера
jump-serverв графической оболочке SystemRescue:- В правом нижнем углу экрана графической оболочки SystemRescue правой кнопкой мыши нажмите значок сети и выберите
Connection Information. - На вкладках с именами Ethernet-интерфейсов Wired connection 1 и Wired connection 2 посмотрите значение поля Hardware Address. Нужный интерфейс будет иметь значение, идентичное сохраненному на предыдущем шаге MAC-адресу.
- В правом нижнем углу экрана графической оболочки SystemRescue правой кнопкой мыши нажмите значок сети и выберите
-
В правом нижнем углу экрана графической оболочки SystemRescue правой кнопкой мыши нажмите значок сети и выберите
Edit Connections.... -
В открывшемся окне в блоке Ethernet выберите определенное ранее имя сетевого интерфейса, подключенного к приватной подсети, и нажмите значок шестеренки.
-
В открывшемся окне настроек перейдите на вкладку IPv4 Settings и в поле Method выберите
Manual. -
В блоке Addresses нажмите кнопку Add, затем в поле Address введите
192.168.1.20, а в поле Netmask –24. -
Нажмите кнопку Save.
-
-
Убедитесь, что появился сетевой доступ к серверам OPNsense. Для этого в левом нижнем углу экрана нажмите значок терминала и в открывшемся окне введите команду:
ping 192.168.1.252 -c3Результат:
PING 192.168.1.252 (192.168.1.252) 56(84) bytes of data. 64 bytes from 192.168.1.252: icmp_seq=1 ttl=64 time=0.110 ms 64 bytes from 192.168.1.252: icmp_seq=2 ttl=64 time=0.127 ms 64 bytes from 192.168.1.252: icmp_seq=3 ttl=64 time=0.115 ms --- 192.168.1.252 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2024ms tt min/avg/max/mdev = 0.110/0.117/0.127/0.007 msСетевая связность с сервером OPNsense установлена.
-
В правом нижнем углу экрана нажмите значок Firefox, чтобы открыть браузер.
-
В окне браузера настройте оба сервера OPNsense:
-
В адресной строке браузера введите адрес сервера:
MasterBackuphttp://192.168.1.252http://192.168.1.253 -
На странице аутентификации введите имя пользователя
rootи пароль, заданный при установке сервера. Если вы не задавали пароль пользователяroot, значение пароля по умолчанию –opnsense. -
Задайте настройки кластера высокой доступности:
-
В главном меню перейдите в настройки кластера высокой доступности:
System→High Availability→Settings. -
В поле Synchronize all states via выберите интерфейс
LAN. -
В поле Sync compatibility выберите
OPNsense 24.7 or above. -
В полях Synchronize Peer IP и Synchronize Config:
MasterBackupУкажите IP-адрес сервера с ролью Backup:
192.168.1.253.Укажите IP-адрес сервера с ролью Master:
192.168.1.252. -
В поле Remote System Username укажите имя пользователя
root.Примечание
На серверах OPNsense для целей синхронизации вы можете создать дополнительных пользователей в разделе главного меню
System→Access. -
В поле Remote System Password укажите пароль от заданной выше учетной записи.
-
В поле Services выберите сервисы, состояние которых требуется синхронизировать. Нажмите
Select All, чтобы выбрать все сервисы – этот вариант подходит для демонстрации возможностей предлагаемого решения. -
Нажмите кнопку Apply, чтобы сохранить и применить изменения.
-
-
Задайте настройки виртуального IP-адреса CARP:
-
В главном меню перейдите в настройки виртуальных IP-адресов:
Interfaces→Virtual IPs→Settings. -
Нажмите значок
, чтобы добавить новый виртуальный IP-адрес, и в открывшемся окне:-
В поле Mode выберите
CARP. -
В поле Interface выберите
LAN. -
В поле Network / Address укажите
192.168.1.254/24. -
В поле Peer (ipv4):
MasterBackupУкажите IP-адрес сервера с ролью Backup:
192.168.1.253.Укажите IP-адрес сервера с ролью Master:
192.168.1.252. -
В поле Password задайте пароль, который будет использован для защиты CARP-группы.
Используйте один и тот же пароль для настройки обоих серверов.
-
В поле VHID Group задайте идентификатор группы. Например:
101.Используйте один и тот же идентификатор группы для настройки обоих серверов.
-
Нажмите кнопку Save, чтобы сохранить настройки виртуального IP-адреса.
-
-
Нажмите кнопку Apply, чтобы применить изменения.
-
-
Настройте DHCP-сервер в приватной подсети:
-
В главном меню перейдите в настройки DHCP:
Services→ISC DHCPv4→LAN. -
Включите опцию Enable DHCP server on the LAN interface.
-
В поле Range задайте диапазон IP-адресов приватной подсети, доступных для выдачи клиентам DHCP-сервером. Например: from
192.168.1.100to192.168.1.199. -
В поле DNS servers укажите адреса серверов доменных имен, которые будут выданы клиентам. Например:
77.88.8.8. -
В поле Gateway укажите IP-адрес CARP-интерфейса, который был настроен ранее:
192.168.1.254. -
В поле Default lease time (seconds) задайте срок аренды предоставляемого IP-адреса в секундах. Например:
3600. -
В поле Failover peer IP:
MasterBackupУкажите IP-адрес сервера с ролью Backup:
192.168.1.253.Укажите IP-адрес сервера с ролью Master:
192.168.1.252. -
Нажмите кнопку Save, чтобы сохранить настройки DHCP-сервера.
-
-
-
На сервере с ролью
Masterвыполните синхронизацию настроек хостов кластера:Примечание
Когда OPNsense работает в режиме кластера, изменение настроек в работе межсетевого экрана следует производить в первую очередь на хосте с ролью
Master. Хост с рольюBackupполучит обновленные параметры в процессе синхронизации изменений.- В адресной строке браузера введите адрес сервера
http://192.168.1.252. - В главном меню перейдите в настройки кластера высокой доступности:
System→High Availability→Status. - Пролистайте вниз страницу со списком сервисов и в строке Synchronize and reconfigure all нажмите кнопку
(Restart all services).
Важно
В процессе синхронизации изменений также выполняется перезапуск сервисов.
- В адресной строке браузера введите адрес сервера
-
Проверьте состояние CARP-группы на обоих хостах:
MasterBackup-
В адресной строке браузера введите адрес сервера с ролью Master:
http://192.168.1.252. -
В главном меню перейдите в настройки виртуальных IP-адресов:
Interfaces→Virtual IPs→Status. -
На вкладке Addresses убедитесь, что в столбце Status серверу назначена роль
Master.Если статус адреса –
DISABLED, нажмите кнопку Temporarily disable CARP, затем – Enable CARP. В результате статус виртуального адреса должен смениться на нужный. -
Перейдите на вкладку pfSync nodes и убедитесь, что в списке присутствуют два хоста.
-
В адресной строке браузера введите адрес сервера с ролью Backup:
http://192.168.1.253. -
В главном меню перейдите в настройки виртуальных IP-адресов:
Interfaces→Virtual IPs→Status. -
На вкладке Addresses убедитесь, что в столбце Status серверу назначена роль
Backup.Если статус адреса –
DISABLED, нажмите кнопку Temporarily disable CARP, затем – Enable CARP. В результате статус виртуального адреса должен смениться на нужный. -
Перейдите на вкладку pfSync nodes и убедитесь, что в списке присутствуют два хоста.
-
На этом основная часть настройки кластера высокой доступности завершена.
Для дальнейшей настройки может потребоваться создание правил межсетевого экранирования. Но в рамках настоящего руководства достаточно базового набора правил, а также автоматически созданных правил NAT-трансляции, которые позволят клиентам получать доступ к интернету, то есть обеспечат движение трафика через межсетевой экран между интерфейсами LAN и WAN.
Установите гипервизор и создайте виртуальную машину
Установите гипервизор
-
Подключитесь к KVM-консоли сервера
vmware-esxi.Примечание
Все последующие действия этого этапа настройки будут выполняться в окне KVM-консоли.
-
В окне KVM-консоли в верхнем меню выберите Media → Virtual Media Wizard... или нажмите значок с изображением CD-диска. В открывшемся окне:
- В секции CD/DVD Media1 нажмите кнопку Browse и в директории
user-isoвыберите сохраненный ранее образ с VMware ESXi. - Нажмите кнопку Connect CD/DVD.
- Убедитесь, что в секции Status для устройства Virtual CD 1 значение поля Connected To изменилось на путь к выбранному образу, и нажмите кнопку Close.
- В секции CD/DVD Media1 нажмите кнопку Browse и в директории
-
Чтобы запустить сервер с выбранного образа, в правом верхнем углу KVM-консоли нажмите кнопку Reboot to cdrom.
-
Дождитесь запуска сервера и инициализации интерактивной оболочки установщика ESXi, запустите процесс установки и примите условия лицензионного соглашения (EULA).
-
Выберите диск сервера, на который будет установлен гипервизор и используемую раскладку клавиатуры.
-
Задайте пароль пользователя
rootдля доступа к настройкам гипервизора. -
Подтвердите согласие на внесение изменений в таблицу разделов, чтобы начать установку ESXi.
-
Дождитесь завершения процесса установки и нажмите Enter, чтобы перезапустить сервер.
-
В окне KVM-консоли в верхнем меню выберите Media → Virtual Media Wizard... или нажмите значок с изображением CD-диска. В открывшемся окне:
- В секции CD/DVD Media1 нажмите кнопку Disconnect и убедитесь, что в секции Status для устройства Virtual CD 1 значение поля Connected To изменилось на
Not connected. - Нажмите кнопку Close.
- В секции CD/DVD Media1 нажмите кнопку Disconnect и убедитесь, что в секции Status для устройства Virtual CD 1 значение поля Connected To изменилось на
-
Дождитесь запуска гипервизора и задайте сетевые настройки:
-
Нажмите F2 и введите заданный при установке пароль пользователя
root, чтобы перейти в настройки.Если пароль не был задан при установке, по умолчанию вход в учетную запись пользователя
rootосуществляется без пароля. -
В главном меню настроек выберите
Configure Management Network. -
В открывшемся меню выберите
IPv4 Configuration. -
С помощью клавиши пробел выберите
Set static IPv4 address and network configurationи задайте:- IPv4 Address – любой свободный IP-адрес, входящий в приватную подсеть
opnsense-private-subnet-m4и не входящий в диапазон адресов, доступных для выдачи клиентам DHCP-сервером OPNsense. Например:192.168.1.50. - Subnet Mask – маску подсети
255.255.255.0. - Default Gateway – созданный ранее в кластере OPNsense виртуальный IP-адрес CARP
192.168.1.254.
- IPv4 Address – любой свободный IP-адрес, входящий в приватную подсеть
-
Нажмите Enter, чтобы сохранить изменения.
-
Нажмите Esc, чтобы выйти из меню настроек и применить изменения.
-
В открывшемся окне подтвердите применение обновленных настроек и перезапуск сетевого интерфейса.
-
Создайте виртуальную машину
Для создания и настройки виртуальных машин необходим инсталляционный сервер (Jump server), имеющий графический пользовательский интерфейс и доступ в приватную подсеть, к которой подключен гипервизор.
Для упрощения необходимых настроек в настоящем руководстве в роли такого инсталляционного сервера будет использоваться арендованный ранее сервер jump-server, загруженный в режиме восстановления и диагностики с Rescue-CD.
Примечание
Все последующие действия этого этапа настройки будут выполняться в окне KVM-консоли.
-
Запустите сервер
jump-serverс Rescue-CD, выбрав в основном меню SystemRescue вариант загрузки по умолчанию –Boot SystemRescue using default options. -
Чтобы запустить графическую оболочку SystemRescue, в терминале ОС SystemRescue выполните команду
startx. -
В правом нижнем углу экрана нажмите значок Firefox, чтобы открыть браузер.
-
Скачайте на сервер ISO-образ операционной системы, которую вы будете устанавливать на виртуальную машину.
Примечание
В настоящем руководстве на ВМ будет установлена ОС Linux Ubuntu 24.04
без графического пользовательского интерфейса (Server install image). -
В адресной строке введите адрес гипервизора, например:
https://192.168.1.50/. -
На странице аутентификации введите имя пользователя
rootи пароль, заданный при установке ESXi. -
Загрузите в файловое хранилище гипервизора образ операционной системы, который вы будете устанавливать на виртуальную машину:
-
В главном меню слева выберите Storage.
-
В открывшемся окне выберите хранилище
datastore1. -
В меню сверху нажмите кнопку Datastore browser и в открывшемся окне:
-
Нажмите кнопку Create directory и создайте директорию
ISO. -
Выберите созданную директорию
ISOи нажмите кнопку Upload. -
В открывшемся окне выберите скачанный ранее ISO-образ.
По умолчанию скачанные файлы сохраняются в директорию
/Home/Downloads/ -
Дождитесь загрузки образа в хранилище и нажмите кнопку Close в правом нижнем углу окна.
-
-
-
Создайте виртуальную машину:
-
В главном меню слева выберите Virtual Machines и нажмите кнопку Create / Register VM.
-
В окне Select creation type выберите
Create a new virtual machineи нажмите кнопку Next. -
В окне Select a name and guest OS:
- В поле Name введите имя создаваемой машины. Например:
opnsense-tester-vm. - В поле Guest OS family выберите
Linux. - В поле Guest OS version выберите
Ubuntu Linux (64-bit). - Нажмите кнопку Next.
- В поле Name введите имя создаваемой машины. Например:
-
В окне Select storage выберите хранилище
datastore1и нажмите Next. -
В окне Customize setting на вкладе Virtual Hardware:
- В поле CPU выберите количество vCPU, выделяемое виртуальной машине. Например:
4. - В поле Memory выберите объем оперативной памяти, выделяемый виртуальной машине. Например:
8 GB. - В поле Hard disk 1 выберите объем жесткого диска, выделяемый виртуальной машине. Например:
50 GB. - В поле CD/DVD Drive 1 выберите
Datastore ISO fileи в открывшемся окне выберите загруженный ранее образ. - Остальные параметры оставьте без изменений и нажмите Next.
- В поле CPU выберите количество vCPU, выделяемое виртуальной машине. Например:
-
В окне Ready to complete проверьте параметры создаваемой виртуальной машины и нажмите кнопку Finish, чтобы создать ВМ.
-
В главном меню слева выберите Virtual Machines и выберите виртуальную машину
opnsense-tester-vm. -
В открывшемся окне нажмите кнопку
Power on или значок в окне с превью виртуальной машины. -
Нажмите на окно с превью виртуальной машины и разверните его на весь экран.
-
Выполните процедуру установки операционной системы, выбрав нужные параметры языка, раскладки клавиатуры, типа установки и т.д. Вы можете оставлять все настройки по умолчанию – этого будет достаточно для тестирования предлагаемого решения в рамках настоящего руководства.
На экране с сетевыми настройками убедитесь, что виртуальная машина получила приватный IP-адрес в подсети
opnsense-private-subnet-m4из диапазона, заданного в настройках DHCP-сервера OPNsense.На экране Profile configuration задайте имя и пароль пользователя, который будет иметь доступ к ВМ.
-
После завершения установки нажмите Reboot Now.
-
Убедитесь в работоспособности решения
Для проверки работоспособности решения будет использована виртуальная машина, созданная ранее на сервере под управлением VMware ESXi.
Проверку работоспособности можно считать успешно пройденной, если:
- виртуальная машина получит IP-адрес в локальной сети от DHCP-сервера, созданного в кластере OPNsense;
- виртуальная машина сможет получить доступ в интернет через межсетевой экран OPNsense.
Проверьте получение IP-адреса клиентом от DHCP-сервера
-
Подключитесь к KVM-консоли сервера
opnsense-master. -
Аутентифицируйтесь на сервере OPNsense, используя имя пользователя
rootи пароль, заданный при установке сервера. -
Введите
8(вариантShell) и нажмите Enter, чтобы открыть терминал операционной системы. -
Выполните команду:
tcpdump -i <идентификатор_интерфейса> -pvn port 67 and port 68Где
<идентификатор_интерфейса>– идентификатор сетевого интерфейса сервера, подключенный к приватной подсетиopnsense-private-subnet-m4. Например:igb0.Команда
tcpdumpпозволяет прослушать сетевой интерфейс, чтобы наглядно продемонстрировать работу протокола DHCP.Результат:
10:45:50.180979 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 328) 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:0c:29:7a:bf:5c, length 300, xid 0x6094a655, Flags [none] Client-Ethernet-Address 00:0c:29:7a:bf:5c Vendor-rfc1048 Extensions Magic Cookie 0x63825363 DHCP-Message (53), length 1: Discover MSZ (57), length 2: 576 Parameter-Request (55), length 7: Subnet-Mask (1), Default-Gateway (3), Domain-Name-Server (6), Hostname (12) Domain-Name (15), BR (28), NTP (42) Hostname (12), length 8: "alp-vm-1" Vendor-Class (60), length 12: "udhcp 1.37.0" Client-ID (61), length 7: ether 00:0c:29:7a:bf:5c 10:45:51.229540 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328) 192.168.1.252.67 > 192.168.1.153.68: BOOTP/DHCP, Reply, length 300, xid 0x6094a655, Flags [none] Your-IP 192.168.1.153 Client-Ethernet-Address 00:0c:29:7a:bf:5c Vendor-rfc1048 Extensions Magic Cookie 0x63825363 DHCP-Message (53), length 1: Offer Server-ID (54), length 4: 192.168.1.252 Lease-Time (51), length 4: 600 Subnet-Mask (1), length 4: 255.255.255.0 Default-Gateway (3), length 4: 192.168.1.254 Domain-Name-Server (6), length 4: 77.88.8.8 Domain-Name (15), length 11: "localdomain" 10:45:51.280876 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 330) 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:0c:29:7a:bf:5c, length 302, xid 0x6094a655, secs 1, Flags [none] Client-Ethernet-Address 00:0c:29:7a:bf:5c Vendor-rfc1048 Extensions Magic Cookie 0x63825363 DHCP-Message (53), length 1: Request Requested-IP (50), length 4: 192.168.1.153 Server-ID (54), length 4: 192.168.1.252 MSZ (57), length 2: 576 Parameter-Request (55), length 7: Subnet-Mask (1), Default-Gateway (3), Domain-Name-Server (6), Hostname (12) Domain-Name (15), BR (28), NTP (42) Hostname (12), length 8: "alp-vm-1" Vendor-Class (60), length 12: "udhcp 1.37.0" Client-ID (61), length 7: ether 00:0c:29:7a:bf:5c 10:45:51.281467 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328) 192.168.1.252.67 > 192.168.1.153.68: BOOTP/DHCP, Reply, length 300, xid 0x6094a655, secs 1, Flags [none] Your-IP 192.168.1.153 Client-Ethernet-Address 00:0c:29:7a:bf:5c Vendor-rfc1048 Extensions Magic Cookie 0x63825363 DHCP-Message (53), length 1: ACK Server-ID (54), length 4: 192.168.1.252 Lease-Time (51), length 4: 600 Subnet-Mask (1), length 4: 255.255.255.0 Default-Gateway (3), length 4: 192.168.1.254 Domain-Name-Server (6), length 4: 77.88.8.8 Domain-Name (15), length 11: "localdomain"Анализ результата:
Результат содержит два основных этапа:
Запрос IP-адреса клиентомПредложение IP-адреса DHCP-сервером0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request DHCP-Message (53), length 1: Discover Client-ID (61), length 7: 00:0c:29:7a:bf:5c192.168.1.252.67 > 192.168.1.153.68: BOOTP/DHCP, Reply Client-Ethernet-Address: 00:0c:29:7a:bf:5c DHCP-Message (53), length 1: Offer Server-ID (54), length 4: 192.168.1.252 Your-IP: 192.168.1.153 Subnet-Mask (1), length 4: 255.255.255.0 Default-Gateway (3), length 4: 192.168.1.254 Domain-Name-Server (6), length 4: 77.88.8.8
Проверьте наличие доступа в интернет с виртуальной машины
-
Запустите сервер
jump-serverс Rescue-CD, выбрав в основном меню SystemRescue вариант загрузки по умолчанию –Boot SystemRescue using default options. -
Запустите графическую оболочку SystemRescue, выполнив команду
startx. -
В графическом интерфейсе пользователя в правом нижнем углу экрана нажмите значок Firefox, чтобы открыть браузер.
-
В адресной строке введите адрес гипервизора, например:
https://192.168.1.50/. -
На странице аутентификации введите имя пользователя
rootи пароль, заданный при установке ESXi. -
В главном меню слева выберите Virtual Machines и выберите виртуальную машину
opnsense-tester-vm. -
В открывшемся окне нажмите кнопку
в экране с превью виртуальной машины и разверните его на весь экран. В окне терминала виртуальной машины:-
Введите имя пользователя и пароль, заданные при создании ВМ, чтобы аутентифицироваться.
-
Убедитесь, что виртуальной машине присвоен IP-адрес:
ip aРезультат:
1: 1o: «LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host noprefixroute valid_lft forever preferred_lft forever 2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fa_codel state UP group default glen 1000 link/ether 00:0c:29:86:04:10 brd ffiff:ff:ff:ff:ff altname enp3s0 inet 192.168.1.153/24 metric 100 brd 192.168.1.255 scope global dynamic ens160 valid_lft 459sec preferred_lft 459sec inet6 fe80::20c:29ff:fe86:d410/64 scope link valid_lft forever preferred_lft foreverСетевой интерфейс
ens160получил от DHCP-сервера IP-адрес192.168.1.153. -
Установите пакеты
net-toolsиtraceroute:sudo apt install net-tools traceroute -
Проверьте таблицу маршрутов:
netstat -rnРезультат:
Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 ens160 77.88.8.8 192.168.1.254 255.255.255.255 UGH 0 0 0 ens160 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens160 192.168.1.254 0.0.0.0 255.255.255.255 UH 0 0 0 ens160 -
Проверьте доступность любого внешнего адреса, например,
1.1.1.1:ping -c 3 1.1.1.1Результат:
PING 1.1.1.1 (1.1.1.1): 56 data bytes 64 bytes from 1.1.1.1: seq=0 ttl=55 time=2.252 ms 64 bytes from 1.1.1.1: seq=1 ttl=55 time=2.354 ms 64 bytes from 1.1.1.1: seq=2 ttl=55 time=2.363 ms --- 1.1.1.1 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 2.252/2.323/2.363 ms -
Проверьте маршрут до любого внешнего адреса, например,
1.1.1.1:traceroute -n 1.1.1.1Результат:
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets 1 192.168.1.253 0.223 ms 0.176 ms 0.147 ms 2 94.126.204.142 2.914 ms 3.193 ms * 3 * * * 4 * * * 5 * * * 6 * * * 7 * * * 8 195.208.209.7 2.697 ms * * 9 * 62.115.139.123 12.950 ms * 10 * * * 11 * * * 12 * * * 13 * * * 14 1.1.1.1 1.725 ms * *
-
Результаты тестирования показывают, что виртуальная машина имеет доступ в интернет.
Как удалить созданные ресурсы
- Удалите созданные в бакете объекты, затем удалите сам бакет.
- Удалить серверы BareMetal нельзя. Вместо этого откажитесь от продления их аренды.