correction parsing route Forcepoint
This commit is contained in:
@@ -8,21 +8,14 @@ from scripts.export_matrice_flux import export_to_excel as export_flux_to_excel
|
|||||||
from scripts.export_matrice_routage import export_to_excel as export_routing_to_excel
|
from scripts.export_matrice_routage import export_to_excel as export_routing_to_excel
|
||||||
|
|
||||||
def verify_if_file_exists(name):
|
def verify_if_file_exists(name):
|
||||||
print("AAAAAAAAAAAAAAAAA")
|
|
||||||
print(name)
|
|
||||||
base, ext = os.path.splitext(name)
|
base, ext = os.path.splitext(name)
|
||||||
counter = 1
|
counter = 1
|
||||||
print("BBBBBBBBBBBBBBB")
|
|
||||||
print(base)
|
|
||||||
new_name = name
|
new_name = name
|
||||||
print("CCCCCCCCCCCCCCC")
|
|
||||||
print(new_name)
|
|
||||||
while os.path.exists(new_name):
|
while os.path.exists(new_name):
|
||||||
new_name = f"{base}_{counter}{ext}"
|
new_name = f"{base}_{counter}{ext}"
|
||||||
counter += 1
|
counter += 1
|
||||||
return new_name
|
return new_name
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
if len(sys.argv) < 3:
|
if len(sys.argv) < 3:
|
||||||
print("Usage: python3 src/main.py <firewall_type>[paloalto|stormshield|forcepoint] <input_directory/file> [-o <output_file>] [-f] [-r]")
|
print("Usage: python3 src/main.py <firewall_type>[paloalto|stormshield|forcepoint] <input_directory/file> [-o <output_file>] [-f] [-r]")
|
||||||
|
|||||||
@@ -103,12 +103,43 @@ class ForcepointParser(ParserMixin):
|
|||||||
self.config['interfaces'].append(Interface(name=name, ip=ip_addr, netmask=netmask, comment=comment))
|
self.config['interfaces'].append(Interface(name=name, ip=ip_addr, netmask=netmask, comment=comment))
|
||||||
|
|
||||||
def _parse_virtual_routers(self):
|
def _parse_virtual_routers(self):
|
||||||
"""Parse routeurs simples"""
|
"""Parse les virtual routers avec interfaces et routes statiques"""
|
||||||
for router in self.root.findall(".//router"):
|
for router in self.root.findall(".//routing_node"):
|
||||||
name = router.get("name")
|
vr_name = router.get("name")
|
||||||
ip = router.find("mvia_address")
|
interfaces = []
|
||||||
ip_addr = ip.get("address") if ip is not None else None
|
static_routes = []
|
||||||
self.config['virtual_routers'].append(VirtualRouter(name=name, interfaces=[ip_addr] if ip_addr else [], static_routes=[]))
|
|
||||||
|
for iface in router.findall(".//interface_rn_level"):
|
||||||
|
iface_name = iface.get("name", None)
|
||||||
|
|
||||||
|
for network in iface.findall(".//network_rn_level"):
|
||||||
|
for gw in network.findall(".//gateway_rn_level"):
|
||||||
|
|
||||||
|
for ip_entry in gw.findall(".//ipaddress_behind_router"):
|
||||||
|
gw_ip = ip_entry.get("gateway")
|
||||||
|
ip_cidr = ip_entry.get("ipaddress")
|
||||||
|
static_routes.append(
|
||||||
|
StaticRoute(
|
||||||
|
name=f"{vr_name}_{ip_cidr}",
|
||||||
|
destination=ip_cidr,
|
||||||
|
metric=0,
|
||||||
|
next_hop_ip=gw_ip,
|
||||||
|
interface=iface_name
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
if gw_ip:
|
||||||
|
interfaces.append(gw_ip)
|
||||||
|
|
||||||
|
interfaces = list(set(interfaces))
|
||||||
|
|
||||||
|
self.config['virtual_routers'].append(
|
||||||
|
VirtualRouter(
|
||||||
|
name=vr_name,
|
||||||
|
interfaces=interfaces,
|
||||||
|
static_routes=static_routes
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
def _parse_security_rules(self):
|
def _parse_security_rules(self):
|
||||||
"""Parse règles FW Forcepoint"""
|
"""Parse règles FW Forcepoint"""
|
||||||
|
|||||||
Reference in New Issue
Block a user