Миграция thonет конвертировать файлы кон поддерживаться в 2025 году
Моя программа на Python имеет открытый исходный код. Вы можете прочитать, использовать, обновлять, добавлять свои собственные функции.
Программа преобразует структурированный текст в другой структурированный текст, и находится в стадии разработки.
Чтобы понять эту программу, вам нужно знать основные операции в Python, текст, list и diьзуются как IP адреса источника или IP адреса назначения в политиках или правилах.
Здесь мы видим объекты адресов (set address). Слева Juniper, справа те же объекты, преобразованные в PaloAlto.
Программа считывает текст конфигурации Juniper и ищет слова "set security address-book global address",
затем программа находит имя объекта и префикс объекта.
Здесь мы видим объекты группы адресов (set address-group). Слева Juniper, справа преобразованные в PaloAlto.
В Juniper address-set может состоять из нескольких объектов в нескольких строках, в PaloAlto в одной строке несколько объектов в квадратных скобках.
ю зону.
#!/usr/bin/python3
# usage " python srx_to_pa.py fw_name " ---- SRX convert address objects to PaloAlto
import csv, sys
each line, list of separate words from SRX config
if (len(row) == 7):
# Open the input files ---- convert 'address-book global address-set address'
with open(input_file, "r") as f:
add_name , pa_str_list = '' , [] # add_name -- name of address-set object, pa_str_list -- list containing addresses
reader = csv.reader(f, delimiter=" ")
for row in reader: # list of separate words from SRX config
if (len(row) == 8):
if ((row[0] == "set") and (row[1] == "security") and (row[2] == "address-book")):
if (("address" in row) and ("address-set" in row) and not ("description" in row)):
print(pri)
add_name , pa_str_list = '' , []
add_name = row[(row.index('address-set')+1)]
ip_address = row[(row.index('address' )+1)]
pa_str_list.append(ip_address)
if ((row.count('address-set') == 2) and not ("description" in row)):
if add_name == row[(row.index('address-set')+1)]:
first = row.index('address-set')
sec_name = row[(row.index('address-set',(first+1))+1)]
pa_str_list.append(sec_name)
else:
if not add_name == '':
pri = 'set address-group ' + add_name + ' static '+ str(pa_str_list)
pri = pri.replace("'",' ')
pri = pri.replace(", ",'')
print(pri)
add_name , pa_str_list = '' , []
add_name = row[(row.index('address-set')+1)]
first = row.index('address-set')
sec_name = row[(row.index('address-set',(first+1))+1)]
pa_str_list.append(sec_name)
pri = 'set address-group ' + add_name + ' static '+ str(pa_str_list)
pri = pri.replace("'",' ')
pri = pri.replace(", ",'')
print(pri)
print(' ')
# Open the input files ---- convert 'security policies global policy' to 'rulebase security rules '
with open(input_file, "r") as f:
sec_name , pa_source_list , pa_dest_list , pa_app_list = '' , [] , [] , []
reader = csv.reader(f, delimiter=" ")
for row in reader:
if (len(row) == 9):
if ((row[0] == "set") and (row[1] == "security") and (row[2] == "policies")):
if (("policy" in row) and not ("description" in row)):
if sec_name == row[(row.index('policy')+1)]:
if (row[(row.index('policy')+3)] == "source-address"):
pa_source_list.append(row[(row.index('policy')+4)])
if (row[(row.index('policy')+3)] == "destination-address"):
ules ' + sec_name + ' service application-default'
pri_s = 'set rulebase security rules ' + sec_name + ' source ' + str(pa_source_list)
pri_s = pri_s.replace("'",' ')
pri_s = pri_s.replace(", ",'')
print(pri_1)
print(pri_s)
print(pri_2)
pri_d = 'set rulebase security rules ' + sec_name + ' destination ' + str(pa_dest_list)
pri_d = pri_d.replace("'",' ')
pri_d = pri_d.replace(", ",'')
print(pri_d)
print(pri_3)
print(pri_4)
print(pri_5)
sec_name , pa_source_list , pa_dest_list , pa_app_list = '' , [] , [] , []
sec_name = row[(row.index('policy')+1)]
if (row[(row.index('policy')+3)] == "source-address"):
pa_source_list.append(row[(row.index('policy')+4)])
if (row[(row.index('policy')+3)] == "destination-address"):
pa_dest_list.append(row[(row.index('policy')+4)])
if (row[(row.index('policy')+3)] == "application"):
pa_app_list.append(row[(row.index('policy')+4)])
pri_1 = 'set rulebase security rules ' + sec_name + ' from any' # from any zone
pri_2 = 'set rulebase security rules ' + sec_name + ' to any' # to any zone
pri_3 = 'set rulebase security rules ' + sec_name + ' application any'
pri_4 =
pri_d = 'set rulebase security rules ' + sec_name + ' destination ' + str(pa_dest_list)
pri_d = pri_d.replace("'",' ')
pri_d = pri_d.replace(", ",'')
print(pri_d)
print(pri_3)
print(pri_4)
print(pri_5)