Firewall и безопасность в VMWare ESXi

Я всегда говорю что безопасность в системах должна исходить от паранойи. Лучше закрыть все изначально и открывать только там где это потребуется, чем получить брешь в безопасности и потерять контроль над какой-либо системой. По этому, закрываемся и разрешаем только то, что нам нужно и кому нужно.

Небольшое отступление, хорошей практикой является если мы не «выставляем» 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