Я всегда говорю что безопасность в системах должна исходить от паранойи. Лучше закрыть все изначально и открывать только там где это потребуется, чем получить брешь в безопасности и потерять контроль над какой-либо системой. По этому, закрываемся и разрешаем только то, что нам нужно и кому нужно.
Небольшое отступление, хорошей практикой является если мы не «выставляем» esxi хост наружу, то есть не даем ему публичный адрес, но что делать если такая задача есть. А обезопасить себя необходимо и ещё у нас нет vShpere, тогда нам поможет командная строка…
Общие команды:
Команда: | Описание: |
esxcli network firewall get | Возвращает включен или выключен в данный момент firewall, а так же его статус и список правил по умолчанию. |
esxcli network firewall set -default-action | Применить правила по умолчанию. |
esxcli network firewall set -enabled | Включение или выключение (-disabled) faerwall-a. Подразумевается автозагрузка при перезагрузке всего ESXi. |
esxcli network firewall load | Загрузить модуль firewall-a в систему, а так же загрузить все правила. |
esxcli network firewall refresh | Перечитать все правила. |
esxcli network firewall unload | Выгрузить модуль (завершить работу) firewall-a а так же сбросить все текущие правила, открыть все доступные порты и сервисы. |
esxcli network firewall ruleset list | Получить список всех объектов для которых может быть установлены правила. |
esxcli network firewall ruleset set -allowed-all | Установить флаг разрешить всем для объекта. |
esxcli network firewall ruleset set -enabled | Включить или выключить установку правил для объекта. |
esxcli network firewall ruleset allowedip list | Получить список всех адресов для которых разрешен доступ к объекту. |
esxcli network firewall ruleset allowedip add | Добавить IP адрес в разрешенные для объекта. |
esxcli network firewall ruleset allowedip remove | Удалить IP адрес из разрешенных для объекта. |
Примеры:
Получить статус firewall-а и политику по умолчанию:
[yakunin@esxi:~] esxcli network firewall get
Default Action: DROP
Enabled: true
Loaded: true
Закрыть для всех доступ по SSH, кроме подсети 192.168.0.0/24:
[yakunin@esxi:~] esxcli network firewall ruleset set --allowed-all false --ruleset-id=sshServer
[yakunin@esxi:~] esxcli network firewall ruleset allowedip add --ip-address=192.168.0.0/24 --ruleset-id=sshServer
Удалить адрес или подсеть из правила:
[yakunin@esxi:~] esxcli network firewall ruleset allowedip remove --ip-address=192.168.0.0/24 -r=sshServer
Получить список всех объектов к которым применим firewall, список сервисов и портов:
[yakunin@esxi:~] esxcli network firewall ruleset rule list
Ruleset Direction Protocol Port Type Port Begin Port End
---------------------- --------- -------- --------- ---------- --------
sshServer Inbound TCP Dst 22 22
sshClient Outbound TCP Dst 22 22
Вывести список IP адресов для объекта firewall-a:
[yakunin@esxi:~] esxcli network firewall ruleset allowedip list -r "sshServer"
Ruleset Allowed IP Addresses
--------- --------------------
sshServer 192.168.0.0/24
Посмотреть статус объекта (включен/выключен) в firewall:
[yakunin@esxi:~] esxcli network firewall ruleset list
Name Enabled
---------------------- -------
sshServer true
sshClient false