Найти тему

ESXi 7.0 Firewall — добавляем правило для исходящей почты

Оглавление

В гипервизоре ESXi имеется встроенный Firewall. В нём предустановлен ряд правил, удовлетворяющих разработанному функционалу. Однако, имеющиеся правила не всегда покрывают все необходимые порты, иногда требуется дополнительный функционал.

ESXi 7.0 Firewall

Понадобилось мне отправлять почту с ESXi...

Создание собственных правил

Процесс создания собственных правил описан здесь:

https://kb.vmware.com/s/article/2008226

Начиная с ESXi 7.0 создавать собственные наборы правил Firewall запретили. При этом предложили обходной способ:

  1. Скопировать файл с правилами на отдельный datastore.
  2. Добавить свои изменения в скопированный файл.
  3. В /etc/rc.local.d/local.sh добавить команду на копирование с заменой основного файла.
  4. Чтобы принудительно сохранить эту команду при перезагрузках хоста, команда должна быть добавлена вручную в /etc/rc.local.d/local.sh файл на сервере ESXi.

Это настолько кривое решение, что даже пробовать его не хочется. Тем более нужно отдельное хранилище.

Альтернатива — создание собственного VIB пакета для внесения изменений в Firewall.

VIB пакет для ESXi 7.0 firewall

Создадим собственный VIB пакет для нового правила Firewall. Для сборки нам понадобится пакет:

ESXi Community Packaging Tools 2.4

Добавлять будем правило для исходящей почты:

  • Исходящее на TCP 25

Создаём TGZ файл

Создаём структуру каталогов, она очень простая, потому как нам нужно добавить всего один файл. У меня это будет /etc/vmware/firewall/fw-mail.xml.

-2

Редактируем:

<!-- Firewall configuration information for fw Mail -->
<ConfigRoot>
<service id='0000'>
<id>Mail</id>
<rule id='0000'>
<direction>outbound</direction>
<protocol>tcp</protocol>
<porttype>dst</porttype>
<port>25</port>
</rule>
<enabled>false</enabled>
<required>false</required>
</service>
</ConfigRoot>

Структуру XML можно посмотреть в ESXi. Идентификаторы сервисов должны быть уникальными.

-3

Засовываем проект в Linux, это необходимо для правильной настройки прав доступа к файлам. Я воспользуюсь WSL2 для Windows, только мне придётся скопировать проект в home, т.к. по умолчанию права на все файлы примонтированного диска C:\ — 777. Назначаем созданному XML файлу права 444:

chmod 444 ./etc/vmware/firewall/fw-mail.xml
-4

Переходим в корневую папку проекта и собираем TGZ архив:

tar cvzf ../fw-mail.tgz *
-5

TGZ файл получен. Дальше с ним буду работать из Windows.

Создаём VIB файл с помощью tgz2vib5.cmd

Переходим к ESXi Community Packaging Tools 2.4.

-6

Чтобы создать файл VIB из нашего файла TGZ, запускаем tgz2vib5.cmd.

-7

Скармливаем утилите наш TGZ файл, указываем рабочую директорию. Заполняем все поля, не забываем указать версию, VIB type — bootbank. Очень удобно, что имеется готовый пресет для firewall, который за нас проставит нужные галки. Acceptance Level для правила firewall достаточно указать "community". Run!

-8

VIB пакет собрался.

-9

Создаём ZIP файл Offline Bundle с помощью tgz2vib5.cmd

В принципе, достаточно и VIB файла. Но я собираюсь с вами поделиться готовым пакетом, поэтому соберу Offline Bundle.

-10

Чтобы создать Offline Bundle из нашего файла VIB, запускаем vib2zip.cmd:

-11

Указываем директорий с файлом VIB, рабочую директорию. Заполняем поля, устанавливаем максимальный уровень совместимости. Run!

-12

Offline Bundle собрался.

-13

Установка Offline Bundle

Для тестирования перевожу хост в Maintenance Mode.

Как установить VIB пакет

Копируем ZIP пакет на хост в папку /tmp.

-14

Запускаем службу SSH на хосте, коннектимся. Проверяем содержимое папки tmp.

-15

ZIP файл присутствует. Разрешаем установку программ и драйверов со сторонними сертификатами. Для этого перед установкой выполняем команду:

esxcli software acceptance set --level=CommunitySupported

Устанавливаем пакет:

esxcli software vib install -d /tmp/fw-mail-1.0-1-offline_bundle.zip
-16

Пакет установлен. В списке установленных VIB пакетов имеется наш новый пакет.

esxcli software vib list | grep mail
-17

Наш XML файл появился в папке /etc/vmware/firewall.

-18

Теперь правило firewall никуда не должно пропасть после перезагрузки хоста. Проверяю — перезагружаю службу firewall.

esxcli network firewall refresh
esxcli network firewall ruleset list | grep Mail
-19

Networking → Firewall rules. У нас появилось новое правило:

  • Mail
-20

Включаем его.

-21

Actions → Enable.

-22

Мы добились того, чего хотели.

А зачем оно?

Собственно, пакет я назвал fw-mail. Скачать его можно в Сборке для VMware. Пакет добавляет правило firewall, которое позволяет отправлять уведомления на внешний почтовый сервер.

Источник:

ESXi 7.0 Firewall — добавляем правило для исходящей почты | internet-lab.ru

💰 Поддержать проект

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.