вторник, 24 июля 2018 г.

Парсер для правил NSX Distributed Firewall

Update 05.08.2018: в новой версии появилась возможность подключения к NSX Manager для экспорта текущих правил.

VMware NSX позволяет экспортировать правила распределенного фаерволла в файл в XML формате. Данный формат не очень удобен для анализа и включения в документацию, поэтому я написал небольшой парсер, конвертирующий правила из XML формата в HTML или CSV.

Скрипт имеет следующий формат:
Parse-NSXRules.ps1 -FilePath <string> -ResultPath <string> [-Property <string>] [-Format <string>]

и использует следующие параметры:
  • -ResultPath <string> - (обязательный) Указывает путь к файлу, в котором будут сохранены результаты.
  • -FilePath <string> - (опциональный) Указывает путь к XML файлу с правилами.
  • -Property <string> - (опциональный) Указывает перечень столбцов для отображения, разделенных запятыми. По умолчанию отображает все столбцы.
  • -Format <string> - (опциональный) Указывает формат итогового файла. Поддерживает CSV, HTML или XML. По умолчанию используется HTML формат.
  • -NSXManager <string> - (опциональный) Указывает IP адрес или DNS имя сервера NSX Manager для подключения.
  • -Username <string> - (опциональный) Указывает имя пользователя для подключения к NSX Manager.
  • -Password <string> - (опциональный) Указывает пароль пользователя для подключения к NSX Manager.
Примеры использования скрипта:

#Сохранить результат в HTML файле
.\Parse-NSXRules.ps1 -FilePath C:\Temp\NSX_rules.xml -Format HTML -ResultPath C:\Temp\parsed_rules.html

#Сохранить результат в CSV, отобразить только столбцы id,name,source и action
.\Parse-NSXRules.ps1 -FilePath C:\Temp\NSX_rules.xml -Format CSV -ResultPath C:\Temp\parsed_rules.csv -Property "id,name,source,action"

#Подключиться к NSX Manager и сохранить результат в формате XML
\parse-nsxrules.ps1 -Format XML -ResultPath C:\Temp\parsed_rules.csv -NSXManager 192.168.1.10 -Username admin -Password VMware1!

Пример получаемого HTML файла:

Загрузить скрипт можно по ссылке: https://github.com/omnimod/NSX-Firewall-Rules-Parser