#1345: Дублирование порядкового номера правил межсетевого экрана | Некорректная нумерация правил
Отредактирована: 293 дня назадСимптомы:
Нумерация правил в разделе - некорректна. Порядковые номера задублировались или идут не по порядку.
Например:

Решение
В зависимости от раздела, вы используете определенный скрипт.
Эти скрипты необходимо запускать на ПК, а не на NGFW.
Перед выполнением скриптов рекомендуем сделать экспорт как всех настроек, так и сетевых, для избежания непредвиденных ситуаций.
Редактируете в каждом скрипте строчки
SERVER = '192.168.118.142'
USER = 'Admin'
PASSWORD = '1'
Выдаете скрипту права на исполнение.
После чего, запускаете скрипт. После того, как скрипт выполнится, вы получаете сообщение в терминале "Done! Rules updated".
После того, как скрипт отработает - вы можете проверить корректность порядка правил в соответствующем разделе.
Код скриптов:
При использовании скриптов необходимо изменить значения следующих переменных
SERVER - ip адрес интерфейса, принадлежащего зоне Management или зоне, на которой включен сервис xml-rpc.
USER - логин корневого администратора
PASSWORD - пароль от корневого администратора
Включить сервис XML-RPC на зоне
Для исправления проблемы в разделе "Межсетевой экран":
#!/usr/bin/env python3
SERVER = '192.168.118.142'
USER = 'Admin'
PASSWORD = '1'
import xmlrpc.client
from pprint import pprint
server = xmlrpc.client.ServerProxy('http://' + SERVER + ':4040/rpc', verbose=False)
res = server.v2.core.login(USER, PASSWORD, {})
auth_token = res['auth_token']
rules = server.v1.firewall.rules.list(auth_token, 0, 300, {})
print("We begin to restore the order of the rules. Please do not interrupt the script.")
i=0
for rule in rules["items"]:
print("Rule: ",rule["id"])
i=i+1
server.v1.firewall.rule.delete(auth_token, rule["id"])
for rule in rules["items"]:
server.v1.firewall.rule.add(auth_token,rule)
print("Done! Rules updated: ",i)
Для исправления проблемы в разделе "Фильтрация контента":
#!/usr/bin/env python3
SERVER = '192.168.118.142' #Меняете на айпи адрес вашего NGFW
USER = 'Admin' #Меняете на логин вашего корневого администратора
PASSWORD = '1' #Указываете пароль от вашего корневого администратора
import xmlrpc.client
from pprint import pprint
server = xmlrpc.client.ServerProxy('http://' + SERVER + ':4040/rpc', verbose=False)
res = server.v2.core.login(USER, PASSWORD, {})
auth_token = res['auth_token']
rules = server.v1.content.rules.list(auth_token, 0, 24, {})
print(rules)
print("We begin to restore the order of the rules. Please do not interrupt the script.")
i=0
for rule in rules["items"]:
print("Rule: ",rule["id"])
i=i+1
server.v1.content.rule.delete(auth_token, rule["id"])
for rule in rules["items"]:
server.v1.content.rule.add(auth_token,rule)
print("Done! Rules updated: ",i)
Для исправления проблемы в разделе "NAT и маршрутизация":
#!/usr/bin/env python3
SERVER = '192.168.118.142' #Меняете на айпи адрес вашего NGFW
USER = 'Admin' #Меняете на логин вашего корневого администратора
PASSWORD = '1' #Указываете пароль от вашего корневого администратора
import xmlrpc.client
from pprint import pprint
server = xmlrpc.client.ServerProxy('http://' + SERVER + ':4040/rpc', verbose=False)
res = server.v2.core.login(USER, PASSWORD, {})
auth_token = res['auth_token']
rules = server.v1.traffic.rules.list(auth_token, 0, 300, {})
print("We begin to restore the order of the rules. Please do not interrupt the script.")
i=0
for rule in rules["items"]:
print("Rule: ",rule["id"])
i=i+1
server.v1.traffic.rule.delete(auth_token, rule["id"])
for rule in rules["items"]:
server.v1.traffic.rule.add(auth_token,rule)
print("Done! Rules updated: ",i)