В гипервизоре ESXi имеется встроенный Firewall. В нём предустановлен ряд правил, удовлетворяющих разработанному функционалу. Firewall по умолчанию включён. Часть правил отключена и включается только с запуском соответствующего сервиса.
Частичное управление правилами доступно в GUI, больше возможностей даёт esxcli.
Я работаю в ESXi 7.0.
GUI
Configure → System → Firewall. Здесь имеется две вкладки, в которых удобно просматривать текущие входящие и исходящие правила.
Удобно смотреть используемые службами порты, если вдруг вы забыли.
Кнопка EDIT позволяет правилами управлять. Галками включаем или отключаем правила. Есть фильтр для поиска.
SSH порты зачем-то вынесены в отдельную вкладку.
SNMP тоже...
Если развернуть правило, то можно ограничить доступ определённому списку IP адресов, по умолчанию разрешены все IP адреса.
Данным функционалом ограничено управление Firewall в GUI.
ESXCLI
Через консоль у нас больше вариантов действий.
Сразу полезная команда для отключения Firewall:
esxcli network firewall set --enabled false
И для включения:
esxcli network firewall set --enabled true
Если что-то не работает, можно отключить Firewall и сразу поймём, в нём проблема или нет.
Описание команд
CLI | Описание |
esxcli network firewall get | Статус Firewall и Default Action. |
esxcli network firewall set --default-action | Установите в true для Default Action: PASS. Установите в false для Default Action: DROP. |
esxcli network firewall set --enabled | Включить/выключить ESXi firewall. |
esxcli network firewall load | Загрузить модуль firewall и правила. |
esxcli network firewall refresh | Обновить конфигурацию firewall и считать правила если модуль firewall загружен. |
esxcli network firewall unload | Удалить фильтры и выгрузить модуль firewall. |
esxcli network firewall ruleset list | Список правил. |
esxcli network firewall ruleset set --allowed-all | true — доступ всем IP. false — доступ только allowed IP. |
esxcli network firewall ruleset set --enabled --ruleset-id=<string> | Включить или выключить правило. |
esxcli network firewall ruleset allowedip list | Список allowed IP addresses для выбранного правила. |
esxcli network firewall ruleset allowedip add | Дать доступ к правилу набору IP адресов. |
esxcli network firewall ruleset allowedip remove | Отобрать доступ к правилу набору IP адресов. |
esxcli network firewall ruleset rule list | Список правил для всех наборов правил. |
Создание собственных правил
Процесс создания собственных правил описан здесь:
https://kb.vmware.com/s/article/2008226
Начиная с ESXi 7.0 создавать собственные наборы правил Firewall запретили. При этом предложили обходной способ:
- Скопировать файл с правилами на отдельный datastore.
- Добавить свои изменения в скопированный файл.
- В /etc/rc.local.d/local.sh добавить команду на копирование с заменой основного файла.
- Чтобы принудительно сохранить эту команду при перезагрузках хоста, команда должна быть добавлена вручную в /etc/rc.local.d/local.sh файл на сервере ESXi.
Это настолько кривое решение, что даже пробовать его не хочется. Тем более нужно отдельное хранилище.
Альтернатива — создание собственного VIB пакета для внесения изменений в Firewall. Но это уже другая история.