Merged PR 322: #2402 Add ACL actions for routers and firewalls
## Summary Added ACL addrule and removerule for routers and firewalls ## Test process New test created to cover all possibilities ## Checklist - [x] PR is linked to a **work item** - [x] **acceptance criteria** of linked ticket are met - [x] performed **self-review** of the code - [x] written **tests** for any new functionality added with this PR - [ ] updated the **documentation** if this PR changes or adds functionality - [ ] written/updated **design docs** if this PR implements new functionality - [ ] updated the **change log** - [x] ran **pre-commit** checks for code style - [x] attended to any **TO-DOs** left in the code Related work items: #2402, #2415
This commit is contained in:
@@ -258,14 +258,10 @@ agents:
|
|||||||
- type: NODE_SHUTDOWN
|
- type: NODE_SHUTDOWN
|
||||||
- type: NODE_STARTUP
|
- type: NODE_STARTUP
|
||||||
- type: NODE_RESET
|
- type: NODE_RESET
|
||||||
- type: NETWORK_ACL_ADDRULE
|
- type: ROUTER_ACL_ADDRULE
|
||||||
options:
|
- type: ROUTER_ACL_REMOVERULE
|
||||||
target_router_hostname: router_1
|
- type: HOST_NIC_ENABLE
|
||||||
- type: NETWORK_ACL_REMOVERULE
|
- type: HOST_NIC_DISABLE
|
||||||
options:
|
|
||||||
target_router_hostname: router_1
|
|
||||||
- type: NETWORK_NIC_ENABLE
|
|
||||||
- type: NETWORK_NIC_DISABLE
|
|
||||||
|
|
||||||
action_map:
|
action_map:
|
||||||
0:
|
0:
|
||||||
@@ -477,8 +473,9 @@ agents:
|
|||||||
node_id: 6
|
node_id: 6
|
||||||
|
|
||||||
46: # old action num: 22 # "ACL: ADDRULE - Block outgoing traffic from client 1"
|
46: # old action num: 22 # "ACL: ADDRULE - Block outgoing traffic from client 1"
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 1
|
position: 1
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -487,8 +484,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 1
|
protocol_id: 1
|
||||||
47: # old action num: 23 # "ACL: ADDRULE - Block outgoing traffic from client 2"
|
47: # old action num: 23 # "ACL: ADDRULE - Block outgoing traffic from client 2"
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 2
|
position: 2
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -497,8 +495,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 1
|
protocol_id: 1
|
||||||
48: # old action num: 24 # block tcp traffic from client 1 to web app
|
48: # old action num: 24 # block tcp traffic from client 1 to web app
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 3
|
position: 3
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -507,8 +506,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
49: # old action num: 25 # block tcp traffic from client 2 to web app
|
49: # old action num: 25 # block tcp traffic from client 2 to web app
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 4
|
position: 4
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -517,8 +517,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
50: # old action num: 26
|
50: # old action num: 26
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 5
|
position: 5
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -527,8 +528,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
51: # old action num: 27
|
51: # old action num: 27
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 6
|
position: 6
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -537,122 +539,132 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
52: # old action num: 28
|
52: # old action num: 28
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 0
|
position: 0
|
||||||
53: # old action num: 29
|
53: # old action num: 29
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 1
|
position: 1
|
||||||
54: # old action num: 30
|
54: # old action num: 30
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 2
|
position: 2
|
||||||
55: # old action num: 31
|
55: # old action num: 31
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 3
|
position: 3
|
||||||
56: # old action num: 32
|
56: # old action num: 32
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 4
|
position: 4
|
||||||
57: # old action num: 33
|
57: # old action num: 33
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 5
|
position: 5
|
||||||
58: # old action num: 34
|
58: # old action num: 34
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 6
|
position: 6
|
||||||
59: # old action num: 35
|
59: # old action num: 35
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 7
|
position: 7
|
||||||
60: # old action num: 36
|
60: # old action num: 36
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 8
|
position: 8
|
||||||
61: # old action num: 37
|
61: # old action num: 37
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 9
|
position: 9
|
||||||
62: # old action num: 38
|
62: # old action num: 38
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 0
|
node_id: 0
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
63: # old action num: 39
|
63: # old action num: 39
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 0
|
node_id: 0
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
64: # old action num: 40
|
64: # old action num: 40
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 1
|
node_id: 1
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
65: # old action num: 41
|
65: # old action num: 41
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 1
|
node_id: 1
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
66: # old action num: 42
|
66: # old action num: 42
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 2
|
node_id: 2
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
67: # old action num: 43
|
67: # old action num: 43
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 2
|
node_id: 2
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
68: # old action num: 44
|
68: # old action num: 44
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 3
|
node_id: 3
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
69: # old action num: 45
|
69: # old action num: 45
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 3
|
node_id: 3
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
70: # old action num: 46
|
70: # old action num: 46
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
71: # old action num: 47
|
71: # old action num: 47
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
72: # old action num: 48
|
72: # old action num: 48
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 1
|
nic_id: 1
|
||||||
73: # old action num: 49
|
73: # old action num: 49
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 1
|
nic_id: 1
|
||||||
74: # old action num: 50
|
74: # old action num: 50
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
75: # old action num: 51
|
75: # old action num: 51
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
76: # old action num: 52
|
76: # old action num: 52
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 6
|
node_id: 6
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
77: # old action num: 53
|
77: # old action num: 53
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 6
|
node_id: 6
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
|
|||||||
@@ -260,14 +260,10 @@ agents:
|
|||||||
- type: NODE_SHUTDOWN
|
- type: NODE_SHUTDOWN
|
||||||
- type: NODE_STARTUP
|
- type: NODE_STARTUP
|
||||||
- type: NODE_RESET
|
- type: NODE_RESET
|
||||||
- type: NETWORK_ACL_ADDRULE
|
- type: ROUTER_ACL_ADDRULE
|
||||||
options:
|
- type: ROUTER_ACL_REMOVERULE
|
||||||
target_router_hostname: router_1
|
- type: HOST_NIC_ENABLE
|
||||||
- type: NETWORK_ACL_REMOVERULE
|
- type: HOST_NIC_DISABLE
|
||||||
options:
|
|
||||||
target_router_hostname: router_1
|
|
||||||
- type: NETWORK_NIC_ENABLE
|
|
||||||
- type: NETWORK_NIC_DISABLE
|
|
||||||
|
|
||||||
action_map:
|
action_map:
|
||||||
0:
|
0:
|
||||||
@@ -479,8 +475,9 @@ agents:
|
|||||||
node_id: 6
|
node_id: 6
|
||||||
|
|
||||||
46: # old action num: 22 # "ACL: ADDRULE - Block outgoing traffic from client 1"
|
46: # old action num: 22 # "ACL: ADDRULE - Block outgoing traffic from client 1"
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 1
|
position: 1
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -489,8 +486,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 1
|
protocol_id: 1
|
||||||
47: # old action num: 23 # "ACL: ADDRULE - Block outgoing traffic from client 2"
|
47: # old action num: 23 # "ACL: ADDRULE - Block outgoing traffic from client 2"
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 2
|
position: 2
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -499,8 +497,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 1
|
protocol_id: 1
|
||||||
48: # old action num: 24 # block tcp traffic from client 1 to web app
|
48: # old action num: 24 # block tcp traffic from client 1 to web app
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 3
|
position: 3
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -509,8 +508,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
49: # old action num: 25 # block tcp traffic from client 2 to web app
|
49: # old action num: 25 # block tcp traffic from client 2 to web app
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 4
|
position: 4
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -519,8 +519,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
50: # old action num: 26
|
50: # old action num: 26
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 5
|
position: 5
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -529,8 +530,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
51: # old action num: 27
|
51: # old action num: 27
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 6
|
position: 6
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -539,122 +541,132 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
52: # old action num: 28
|
52: # old action num: 28
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 0
|
position: 0
|
||||||
53: # old action num: 29
|
53: # old action num: 29
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 1
|
position: 1
|
||||||
54: # old action num: 30
|
54: # old action num: 30
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 2
|
position: 2
|
||||||
55: # old action num: 31
|
55: # old action num: 31
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 3
|
position: 3
|
||||||
56: # old action num: 32
|
56: # old action num: 32
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 4
|
position: 4
|
||||||
57: # old action num: 33
|
57: # old action num: 33
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 5
|
position: 5
|
||||||
58: # old action num: 34
|
58: # old action num: 34
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 6
|
position: 6
|
||||||
59: # old action num: 35
|
59: # old action num: 35
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 7
|
position: 7
|
||||||
60: # old action num: 36
|
60: # old action num: 36
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 8
|
position: 8
|
||||||
61: # old action num: 37
|
61: # old action num: 37
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 9
|
position: 9
|
||||||
62: # old action num: 38
|
62: # old action num: 38
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 0
|
node_id: 0
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
63: # old action num: 39
|
63: # old action num: 39
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 0
|
node_id: 0
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
64: # old action num: 40
|
64: # old action num: 40
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 1
|
node_id: 1
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
65: # old action num: 41
|
65: # old action num: 41
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 1
|
node_id: 1
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
66: # old action num: 42
|
66: # old action num: 42
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 2
|
node_id: 2
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
67: # old action num: 43
|
67: # old action num: 43
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 2
|
node_id: 2
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
68: # old action num: 44
|
68: # old action num: 44
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 3
|
node_id: 3
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
69: # old action num: 45
|
69: # old action num: 45
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 3
|
node_id: 3
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
70: # old action num: 46
|
70: # old action num: 46
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
71: # old action num: 47
|
71: # old action num: 47
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
72: # old action num: 48
|
72: # old action num: 48
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 1
|
nic_id: 1
|
||||||
73: # old action num: 49
|
73: # old action num: 49
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 1
|
nic_id: 1
|
||||||
74: # old action num: 50
|
74: # old action num: 50
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
75: # old action num: 51
|
75: # old action num: 51
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
76: # old action num: 52
|
76: # old action num: 52
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 6
|
node_id: 6
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
77: # old action num: 53
|
77: # old action num: 53
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 6
|
node_id: 6
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
@@ -811,14 +823,14 @@ agents:
|
|||||||
- type: NODE_SHUTDOWN
|
- type: NODE_SHUTDOWN
|
||||||
- type: NODE_STARTUP
|
- type: NODE_STARTUP
|
||||||
- type: NODE_RESET
|
- type: NODE_RESET
|
||||||
- type: NETWORK_ACL_ADDRULE
|
- type: ROUTER_ACL_ADDRULE
|
||||||
options:
|
options:
|
||||||
target_router_hostname: router_1
|
target_router_nodename: router_1
|
||||||
- type: NETWORK_ACL_REMOVERULE
|
- type: ROUTER_ACL_REMOVERULE
|
||||||
options:
|
options:
|
||||||
target_router_hostname: router_1
|
target_router_nodename: router_1
|
||||||
- type: NETWORK_NIC_ENABLE
|
- type: HOST_NIC_ENABLE
|
||||||
- type: NETWORK_NIC_DISABLE
|
- type: HOST_NIC_DISABLE
|
||||||
|
|
||||||
action_map:
|
action_map:
|
||||||
0:
|
0:
|
||||||
@@ -1030,8 +1042,9 @@ agents:
|
|||||||
node_id: 6
|
node_id: 6
|
||||||
|
|
||||||
46: # old action num: 22 # "ACL: ADDRULE - Block outgoing traffic from client 1"
|
46: # old action num: 22 # "ACL: ADDRULE - Block outgoing traffic from client 1"
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 1
|
position: 1
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -1040,8 +1053,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 1
|
protocol_id: 1
|
||||||
47: # old action num: 23 # "ACL: ADDRULE - Block outgoing traffic from client 2"
|
47: # old action num: 23 # "ACL: ADDRULE - Block outgoing traffic from client 2"
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 2
|
position: 2
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -1050,8 +1064,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 1
|
protocol_id: 1
|
||||||
48: # old action num: 24 # block tcp traffic from client 1 to web app
|
48: # old action num: 24 # block tcp traffic from client 1 to web app
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 3
|
position: 3
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -1060,8 +1075,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
49: # old action num: 25 # block tcp traffic from client 2 to web app
|
49: # old action num: 25 # block tcp traffic from client 2 to web app
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 4
|
position: 4
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -1070,8 +1086,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
50: # old action num: 26
|
50: # old action num: 26
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 5
|
position: 5
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -1080,8 +1097,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
51: # old action num: 27
|
51: # old action num: 27
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 6
|
position: 6
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -1090,122 +1108,132 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
52: # old action num: 28
|
52: # old action num: 28
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 0
|
position: 0
|
||||||
53: # old action num: 29
|
53: # old action num: 29
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 1
|
position: 1
|
||||||
54: # old action num: 30
|
54: # old action num: 30
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 2
|
position: 2
|
||||||
55: # old action num: 31
|
55: # old action num: 31
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 3
|
position: 3
|
||||||
56: # old action num: 32
|
56: # old action num: 32
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 4
|
position: 4
|
||||||
57: # old action num: 33
|
57: # old action num: 33
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 5
|
position: 5
|
||||||
58: # old action num: 34
|
58: # old action num: 34
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 6
|
position: 6
|
||||||
59: # old action num: 35
|
59: # old action num: 35
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 7
|
position: 7
|
||||||
60: # old action num: 36
|
60: # old action num: 36
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 8
|
position: 8
|
||||||
61: # old action num: 37
|
61: # old action num: 37
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 9
|
position: 9
|
||||||
62: # old action num: 38
|
62: # old action num: 38
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 0
|
node_id: 0
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
63: # old action num: 39
|
63: # old action num: 39
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 0
|
node_id: 0
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
64: # old action num: 40
|
64: # old action num: 40
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 1
|
node_id: 1
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
65: # old action num: 41
|
65: # old action num: 41
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 1
|
node_id: 1
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
66: # old action num: 42
|
66: # old action num: 42
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 2
|
node_id: 2
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
67: # old action num: 43
|
67: # old action num: 43
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 2
|
node_id: 2
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
68: # old action num: 44
|
68: # old action num: 44
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 3
|
node_id: 3
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
69: # old action num: 45
|
69: # old action num: 45
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 3
|
node_id: 3
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
70: # old action num: 46
|
70: # old action num: 46
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
71: # old action num: 47
|
71: # old action num: 47
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
72: # old action num: 48
|
72: # old action num: 48
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 1
|
nic_id: 1
|
||||||
73: # old action num: 49
|
73: # old action num: 49
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 1
|
nic_id: 1
|
||||||
74: # old action num: 50
|
74: # old action num: 50
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
75: # old action num: 51
|
75: # old action num: 51
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
76: # old action num: 52
|
76: # old action num: 52
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 6
|
node_id: 6
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
77: # old action num: 53
|
77: # old action num: 53
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 6
|
node_id: 6
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
|
|||||||
@@ -444,25 +444,22 @@ class NodeResetAction(NodeAbstractAction):
|
|||||||
self.verb: str = "reset"
|
self.verb: str = "reset"
|
||||||
|
|
||||||
|
|
||||||
class NetworkACLAddRuleAction(AbstractAction):
|
class RouterACLAddRuleAction(AbstractAction):
|
||||||
"""Action which adds a rule to a router's ACL."""
|
"""Action which adds a rule to a router's ACL."""
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
manager: "ActionManager",
|
manager: "ActionManager",
|
||||||
target_router_hostname: str,
|
|
||||||
max_acl_rules: int,
|
max_acl_rules: int,
|
||||||
num_ips: int,
|
num_ips: int,
|
||||||
num_ports: int,
|
num_ports: int,
|
||||||
num_protocols: int,
|
num_protocols: int,
|
||||||
**kwargs,
|
**kwargs,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Init method for NetworkACLAddRuleAction.
|
"""Init method for RouterACLAddRuleAction.
|
||||||
|
|
||||||
:param manager: Reference to the ActionManager which created this action.
|
:param manager: Reference to the ActionManager which created this action.
|
||||||
:type manager: ActionManager
|
:type manager: ActionManager
|
||||||
:param target_router_hostname: hostname of the router to which the ACL rule should be added.
|
|
||||||
:type target_router_hostname: str
|
|
||||||
:param max_acl_rules: Maximum number of ACL rules that can be added to the router.
|
:param max_acl_rules: Maximum number of ACL rules that can be added to the router.
|
||||||
:type max_acl_rules: int
|
:type max_acl_rules: int
|
||||||
:param num_ips: Number of IP addresses in the simulation.
|
:param num_ips: Number of IP addresses in the simulation.
|
||||||
@@ -483,10 +480,10 @@ class NetworkACLAddRuleAction(AbstractAction):
|
|||||||
"dest_port_id": num_ports,
|
"dest_port_id": num_ports,
|
||||||
"protocol_id": num_protocols,
|
"protocol_id": num_protocols,
|
||||||
}
|
}
|
||||||
self.target_router_name: str = target_router_hostname
|
|
||||||
|
|
||||||
def form_request(
|
def form_request(
|
||||||
self,
|
self,
|
||||||
|
target_router_nodename: str,
|
||||||
position: int,
|
position: int,
|
||||||
permission: int,
|
permission: int,
|
||||||
source_ip_id: int,
|
source_ip_id: int,
|
||||||
@@ -500,7 +497,7 @@ class NetworkACLAddRuleAction(AbstractAction):
|
|||||||
permission_str = "UNUSED"
|
permission_str = "UNUSED"
|
||||||
return ["do_nothing"] # NOT SUPPORTED, JUST DO NOTHING IF WE COME ACROSS THIS
|
return ["do_nothing"] # NOT SUPPORTED, JUST DO NOTHING IF WE COME ACROSS THIS
|
||||||
elif permission == 1:
|
elif permission == 1:
|
||||||
permission_str = "ALLOW"
|
permission_str = "PERMIT"
|
||||||
elif permission == 2:
|
elif permission == 2:
|
||||||
permission_str = "DENY"
|
permission_str = "DENY"
|
||||||
else:
|
else:
|
||||||
@@ -550,7 +547,7 @@ class NetworkACLAddRuleAction(AbstractAction):
|
|||||||
return [
|
return [
|
||||||
"network",
|
"network",
|
||||||
"node",
|
"node",
|
||||||
self.target_router_name,
|
target_router_nodename,
|
||||||
"acl",
|
"acl",
|
||||||
"add_rule",
|
"add_rule",
|
||||||
permission_str,
|
permission_str,
|
||||||
@@ -563,29 +560,176 @@ class NetworkACLAddRuleAction(AbstractAction):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class NetworkACLRemoveRuleAction(AbstractAction):
|
class RouterACLRemoveRuleAction(AbstractAction):
|
||||||
"""Action which removes a rule from a router's ACL."""
|
"""Action which removes a rule from a router's ACL."""
|
||||||
|
|
||||||
def __init__(self, manager: "ActionManager", target_router_hostname: str, max_acl_rules: int, **kwargs) -> None:
|
def __init__(self, manager: "ActionManager", max_acl_rules: int, **kwargs) -> None:
|
||||||
"""Init method for NetworkACLRemoveRuleAction.
|
"""Init method for RouterACLRemoveRuleAction.
|
||||||
|
|
||||||
:param manager: Reference to the ActionManager which created this action.
|
:param manager: Reference to the ActionManager which created this action.
|
||||||
:type manager: ActionManager
|
:type manager: ActionManager
|
||||||
:param target_router_hostname: Hostname of the router from which the ACL rule should be removed.
|
|
||||||
:type target_router_hostname: str
|
|
||||||
:param max_acl_rules: Maximum number of ACL rules that can be added to the router.
|
:param max_acl_rules: Maximum number of ACL rules that can be added to the router.
|
||||||
:type max_acl_rules: int
|
:type max_acl_rules: int
|
||||||
"""
|
"""
|
||||||
super().__init__(manager=manager)
|
super().__init__(manager=manager)
|
||||||
self.shape: Dict[str, int] = {"position": max_acl_rules}
|
self.shape: Dict[str, int] = {"position": max_acl_rules}
|
||||||
self.target_router_name: str = target_router_hostname
|
|
||||||
|
|
||||||
def form_request(self, position: int) -> List[str]:
|
def form_request(self, target_router_nodename: str, position: int) -> List[str]:
|
||||||
"""Return the action formatted as a request which can be ingested by the PrimAITE simulation."""
|
"""Return the action formatted as a request which can be ingested by the PrimAITE simulation."""
|
||||||
return ["network", "node", self.target_router_name, "acl", "remove_rule", position]
|
return ["network", "node", target_router_nodename, "acl", "remove_rule", position]
|
||||||
|
|
||||||
|
|
||||||
class NetworkNICAbstractAction(AbstractAction):
|
class FirewallACLAddRuleAction(AbstractAction):
|
||||||
|
"""Action which adds a rule to a firewall port's ACL."""
|
||||||
|
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
manager: "ActionManager",
|
||||||
|
max_acl_rules: int,
|
||||||
|
num_ips: int,
|
||||||
|
num_ports: int,
|
||||||
|
num_protocols: int,
|
||||||
|
**kwargs,
|
||||||
|
) -> None:
|
||||||
|
"""Init method for FirewallACLAddRuleAction.
|
||||||
|
|
||||||
|
:param manager: Reference to the ActionManager which created this action.
|
||||||
|
:type manager: ActionManager
|
||||||
|
:param max_acl_rules: Maximum number of ACL rules that can be added to the router.
|
||||||
|
:type max_acl_rules: int
|
||||||
|
:param num_ips: Number of IP addresses in the simulation.
|
||||||
|
:type num_ips: int
|
||||||
|
:param num_ports: Number of ports in the simulation.
|
||||||
|
:type num_ports: int
|
||||||
|
:param num_protocols: Number of protocols in the simulation.
|
||||||
|
:type num_protocols: int
|
||||||
|
"""
|
||||||
|
super().__init__(manager=manager)
|
||||||
|
num_permissions = 3
|
||||||
|
self.shape: Dict[str, int] = {
|
||||||
|
"position": max_acl_rules,
|
||||||
|
"permission": num_permissions,
|
||||||
|
"source_ip_id": num_ips,
|
||||||
|
"dest_ip_id": num_ips,
|
||||||
|
"source_port_id": num_ports,
|
||||||
|
"dest_port_id": num_ports,
|
||||||
|
"protocol_id": num_protocols,
|
||||||
|
}
|
||||||
|
|
||||||
|
def form_request(
|
||||||
|
self,
|
||||||
|
target_firewall_nodename: str,
|
||||||
|
firewall_port_name: str,
|
||||||
|
firewall_port_direction: str,
|
||||||
|
position: int,
|
||||||
|
permission: int,
|
||||||
|
source_ip_id: int,
|
||||||
|
dest_ip_id: int,
|
||||||
|
source_port_id: int,
|
||||||
|
dest_port_id: int,
|
||||||
|
protocol_id: int,
|
||||||
|
) -> List[str]:
|
||||||
|
"""Return the action formatted as a request which can be ingested by the PrimAITE simulation."""
|
||||||
|
if permission == 0:
|
||||||
|
permission_str = "UNUSED"
|
||||||
|
return ["do_nothing"] # NOT SUPPORTED, JUST DO NOTHING IF WE COME ACROSS THIS
|
||||||
|
elif permission == 1:
|
||||||
|
permission_str = "PERMIT"
|
||||||
|
elif permission == 2:
|
||||||
|
permission_str = "DENY"
|
||||||
|
else:
|
||||||
|
_LOGGER.warning(f"{self.__class__} received permission {permission}, expected 0 or 1.")
|
||||||
|
|
||||||
|
if protocol_id == 0:
|
||||||
|
return ["do_nothing"] # NOT SUPPORTED, JUST DO NOTHING IF WE COME ACROSS THIS
|
||||||
|
|
||||||
|
if protocol_id == 1:
|
||||||
|
protocol = "ALL"
|
||||||
|
else:
|
||||||
|
protocol = self.manager.get_internet_protocol_by_idx(protocol_id - 2)
|
||||||
|
# subtract 2 to account for UNUSED=0 and ALL=1.
|
||||||
|
|
||||||
|
if source_ip_id == 0:
|
||||||
|
return ["do_nothing"] # invalid formulation
|
||||||
|
elif source_ip_id == 1:
|
||||||
|
src_ip = "ALL"
|
||||||
|
else:
|
||||||
|
src_ip = self.manager.get_ip_address_by_idx(source_ip_id - 2)
|
||||||
|
# subtract 2 to account for UNUSED=0, and ALL=1
|
||||||
|
|
||||||
|
if source_port_id == 0:
|
||||||
|
return ["do_nothing"] # invalid formulation
|
||||||
|
elif source_port_id == 1:
|
||||||
|
src_port = "ALL"
|
||||||
|
else:
|
||||||
|
src_port = self.manager.get_port_by_idx(source_port_id - 2)
|
||||||
|
# subtract 2 to account for UNUSED=0, and ALL=1
|
||||||
|
|
||||||
|
if source_ip_id == 0:
|
||||||
|
return ["do_nothing"] # invalid formulation
|
||||||
|
elif dest_ip_id == 1:
|
||||||
|
dst_ip = "ALL"
|
||||||
|
else:
|
||||||
|
dst_ip = self.manager.get_ip_address_by_idx(dest_ip_id - 2)
|
||||||
|
# subtract 2 to account for UNUSED=0, and ALL=1
|
||||||
|
|
||||||
|
if dest_port_id == 0:
|
||||||
|
return ["do_nothing"] # invalid formulation
|
||||||
|
elif dest_port_id == 1:
|
||||||
|
dst_port = "ALL"
|
||||||
|
else:
|
||||||
|
dst_port = self.manager.get_port_by_idx(dest_port_id - 2)
|
||||||
|
# subtract 2 to account for UNUSED=0, and ALL=1
|
||||||
|
|
||||||
|
return [
|
||||||
|
"network",
|
||||||
|
"node",
|
||||||
|
target_firewall_nodename,
|
||||||
|
firewall_port_name,
|
||||||
|
firewall_port_direction,
|
||||||
|
"acl",
|
||||||
|
"add_rule",
|
||||||
|
permission_str,
|
||||||
|
protocol,
|
||||||
|
str(src_ip),
|
||||||
|
src_port,
|
||||||
|
str(dst_ip),
|
||||||
|
dst_port,
|
||||||
|
position,
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
class FirewallACLRemoveRuleAction(AbstractAction):
|
||||||
|
"""Action which removes a rule from a firewall port's ACL."""
|
||||||
|
|
||||||
|
def __init__(self, manager: "ActionManager", max_acl_rules: int, **kwargs) -> None:
|
||||||
|
"""Init method for RouterACLRemoveRuleAction.
|
||||||
|
|
||||||
|
:param manager: Reference to the ActionManager which created this action.
|
||||||
|
:type manager: ActionManager
|
||||||
|
:param max_acl_rules: Maximum number of ACL rules that can be added to the router.
|
||||||
|
:type max_acl_rules: int
|
||||||
|
"""
|
||||||
|
super().__init__(manager=manager)
|
||||||
|
self.shape: Dict[str, int] = {"position": max_acl_rules}
|
||||||
|
|
||||||
|
def form_request(
|
||||||
|
self, target_firewall_nodename: str, firewall_port_name: str, firewall_port_direction: str, position: int
|
||||||
|
) -> List[str]:
|
||||||
|
"""Return the action formatted as a request which can be ingested by the PrimAITE simulation."""
|
||||||
|
return [
|
||||||
|
"network",
|
||||||
|
"node",
|
||||||
|
target_firewall_nodename,
|
||||||
|
firewall_port_name,
|
||||||
|
firewall_port_direction,
|
||||||
|
"acl",
|
||||||
|
"remove_rule",
|
||||||
|
position,
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
class HostNICAbstractAction(AbstractAction):
|
||||||
"""
|
"""
|
||||||
Abstract base class for NIC actions.
|
Abstract base class for NIC actions.
|
||||||
|
|
||||||
@@ -594,7 +738,7 @@ class NetworkNICAbstractAction(AbstractAction):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, manager: "ActionManager", num_nodes: int, max_nics_per_node: int, **kwargs) -> None:
|
def __init__(self, manager: "ActionManager", num_nodes: int, max_nics_per_node: int, **kwargs) -> None:
|
||||||
"""Init method for NetworkNICAbstractAction.
|
"""Init method for HostNICAbstractAction.
|
||||||
|
|
||||||
:param manager: Reference to the ActionManager which created this action.
|
:param manager: Reference to the ActionManager which created this action.
|
||||||
:type manager: ActionManager
|
:type manager: ActionManager
|
||||||
@@ -616,7 +760,7 @@ class NetworkNICAbstractAction(AbstractAction):
|
|||||||
return ["network", "node", node_name, "network_interface", nic_num, self.verb]
|
return ["network", "node", node_name, "network_interface", nic_num, self.verb]
|
||||||
|
|
||||||
|
|
||||||
class NetworkNICEnableAction(NetworkNICAbstractAction):
|
class HostNICEnableAction(HostNICAbstractAction):
|
||||||
"""Action which enables a NIC."""
|
"""Action which enables a NIC."""
|
||||||
|
|
||||||
def __init__(self, manager: "ActionManager", num_nodes: int, max_nics_per_node: int, **kwargs) -> None:
|
def __init__(self, manager: "ActionManager", num_nodes: int, max_nics_per_node: int, **kwargs) -> None:
|
||||||
@@ -624,7 +768,7 @@ class NetworkNICEnableAction(NetworkNICAbstractAction):
|
|||||||
self.verb: str = "enable"
|
self.verb: str = "enable"
|
||||||
|
|
||||||
|
|
||||||
class NetworkNICDisableAction(NetworkNICAbstractAction):
|
class HostNICDisableAction(HostNICAbstractAction):
|
||||||
"""Action which disables a NIC."""
|
"""Action which disables a NIC."""
|
||||||
|
|
||||||
def __init__(self, manager: "ActionManager", num_nodes: int, max_nics_per_node: int, **kwargs) -> None:
|
def __init__(self, manager: "ActionManager", num_nodes: int, max_nics_per_node: int, **kwargs) -> None:
|
||||||
@@ -632,51 +776,42 @@ class NetworkNICDisableAction(NetworkNICAbstractAction):
|
|||||||
self.verb: str = "disable"
|
self.verb: str = "disable"
|
||||||
|
|
||||||
|
|
||||||
class NetworkPortAbstractAction(AbstractAction):
|
class NetworkPortEnableAction(AbstractAction):
|
||||||
"""
|
"""Action which enables are port on a router or a firewall."""
|
||||||
Abstract base class for Port actions.
|
|
||||||
|
|
||||||
Any action which applies to a Router/Firewall and uses node_id and port_id as its only two parameters
|
def __init__(self, manager: "ActionManager", max_nics_per_node: int, **kwargs) -> None:
|
||||||
can inherit from this base class.
|
"""Init method for NetworkPortEnableAction.
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, manager: "ActionManager", num_nodes: int, max_nics_per_node: int, **kwargs) -> None:
|
|
||||||
"""Init method for NetworkNICAbstractAction.
|
|
||||||
|
|
||||||
:param manager: Reference to the ActionManager which created this action.
|
|
||||||
:type manager: ActionManager
|
|
||||||
:param num_nodes: Number of nodes in the simulation.
|
|
||||||
:type num_nodes: int
|
|
||||||
:param max_nics_per_node: Maximum number of NICs per node.
|
:param max_nics_per_node: Maximum number of NICs per node.
|
||||||
:type max_nics_per_node: int
|
:type max_nics_per_node: int
|
||||||
"""
|
"""
|
||||||
super().__init__(manager=manager)
|
super().__init__(manager=manager)
|
||||||
self.shape: Dict[str, int] = {"node_id": num_nodes, "port_id": max_nics_per_node}
|
self.shape: Dict[str, int] = {"port_id": max_nics_per_node}
|
||||||
self.verb: str # define but don't initialise: defends against children classes not defining this
|
|
||||||
|
|
||||||
def form_request(self, node_id: int, port_id: int) -> List[str]:
|
def form_request(self, target_nodename: str, port_id: int) -> List[str]:
|
||||||
"""Return the action formatted as a request which can be ingested by the PrimAITE simulation."""
|
"""Return the action formatted as a request which can be ingested by the PrimAITE simulation."""
|
||||||
node_name = self.manager.get_node_name_by_idx(node_idx=node_id)
|
if target_nodename is None or port_id is None:
|
||||||
port_num = self.manager.get_nic_num_by_idx(node_idx=node_id, nic_idx=port_id)
|
|
||||||
if node_name is None or port_num is None:
|
|
||||||
return ["do_nothing"]
|
return ["do_nothing"]
|
||||||
return ["network", "node", node_name, "network_interface", port_num, self.verb]
|
return ["network", "node", target_nodename, "network_interface", port_id, "enable"]
|
||||||
|
|
||||||
|
|
||||||
class NetworkPortEnableAction(NetworkPortAbstractAction):
|
class NetworkPortDisableAction(AbstractAction):
|
||||||
"""Action which enables a PORT."""
|
"""Action which disables are port on a router or a firewall."""
|
||||||
|
|
||||||
def __init__(self, manager: "ActionManager", num_nodes: int, max_nics_per_node: int, **kwargs) -> None:
|
def __init__(self, manager: "ActionManager", max_nics_per_node: int, **kwargs) -> None:
|
||||||
super().__init__(manager=manager, num_nodes=num_nodes, max_nics_per_node=max_nics_per_node, **kwargs)
|
"""Init method for NetworkPortDisableAction.
|
||||||
self.verb: str = "enable"
|
|
||||||
|
|
||||||
|
:param max_nics_per_node: Maximum number of NICs per node.
|
||||||
|
:type max_nics_per_node: int
|
||||||
|
"""
|
||||||
|
super().__init__(manager=manager)
|
||||||
|
self.shape: Dict[str, int] = {"port_id": max_nics_per_node}
|
||||||
|
|
||||||
class NetworkPortDisableAction(NetworkPortAbstractAction):
|
def form_request(self, target_nodename: str, port_id: int) -> List[str]:
|
||||||
"""Action which disables a PORT."""
|
"""Return the action formatted as a request which can be ingested by the PrimAITE simulation."""
|
||||||
|
if target_nodename is None or port_id is None:
|
||||||
def __init__(self, manager: "ActionManager", num_nodes: int, max_nics_per_node: int, **kwargs) -> None:
|
return ["do_nothing"]
|
||||||
super().__init__(manager=manager, num_nodes=num_nodes, max_nics_per_node=max_nics_per_node, **kwargs)
|
return ["network", "node", target_nodename, "network_interface", port_id, "disable"]
|
||||||
self.verb: str = "disable"
|
|
||||||
|
|
||||||
|
|
||||||
class ActionManager:
|
class ActionManager:
|
||||||
@@ -713,10 +848,12 @@ class ActionManager:
|
|||||||
"NODE_SHUTDOWN": NodeShutdownAction,
|
"NODE_SHUTDOWN": NodeShutdownAction,
|
||||||
"NODE_STARTUP": NodeStartupAction,
|
"NODE_STARTUP": NodeStartupAction,
|
||||||
"NODE_RESET": NodeResetAction,
|
"NODE_RESET": NodeResetAction,
|
||||||
"NETWORK_ACL_ADDRULE": NetworkACLAddRuleAction,
|
"ROUTER_ACL_ADDRULE": RouterACLAddRuleAction,
|
||||||
"NETWORK_ACL_REMOVERULE": NetworkACLRemoveRuleAction,
|
"ROUTER_ACL_REMOVERULE": RouterACLRemoveRuleAction,
|
||||||
"NETWORK_NIC_ENABLE": NetworkNICEnableAction,
|
"FIREWALL_ACL_ADDRULE": FirewallACLAddRuleAction,
|
||||||
"NETWORK_NIC_DISABLE": NetworkNICDisableAction,
|
"FIREWALL_ACL_REMOVERULE": FirewallACLRemoveRuleAction,
|
||||||
|
"HOST_NIC_ENABLE": HostNICEnableAction,
|
||||||
|
"HOST_NIC_DISABLE": HostNICDisableAction,
|
||||||
"NETWORK_PORT_ENABLE": NetworkPortEnableAction,
|
"NETWORK_PORT_ENABLE": NetworkPortEnableAction,
|
||||||
"NETWORK_PORT_DISABLE": NetworkPortDisableAction,
|
"NETWORK_PORT_DISABLE": NetworkPortDisableAction,
|
||||||
}
|
}
|
||||||
@@ -860,7 +997,8 @@ class ActionManager:
|
|||||||
{0: ("NODE_SERVICE_SCAN", {node_id:0, service_id:2})}
|
{0: ("NODE_SERVICE_SCAN", {node_id:0, service_id:2})}
|
||||||
"""
|
"""
|
||||||
if act_map is None:
|
if act_map is None:
|
||||||
self.action_map = self._enumerate_actions()
|
# raise RuntimeError("Action map must be specified in the config file.")
|
||||||
|
pass
|
||||||
else:
|
else:
|
||||||
self.action_map = {i: (a["action"], a["options"]) for i, a in act_map.items()}
|
self.action_map = {i: (a["action"], a["options"]) for i, a in act_map.items()}
|
||||||
# make sure all numbers between 0 and N are represented as dict keys in action map
|
# make sure all numbers between 0 and N are represented as dict keys in action map
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
from ipaddress import IPv4Address
|
from ipaddress import IPv4Address
|
||||||
from typing import Dict, Final, Optional, Union
|
from typing import Dict, Final, Union
|
||||||
|
|
||||||
from prettytable import MARKDOWN, PrettyTable
|
from prettytable import MARKDOWN, PrettyTable
|
||||||
from pydantic import validate_call
|
from pydantic import Field, validate_call
|
||||||
|
|
||||||
|
from primaite.simulator.core import RequestManager, RequestType
|
||||||
from primaite.simulator.network.hardware.node_operating_state import NodeOperatingState
|
from primaite.simulator.network.hardware.node_operating_state import NodeOperatingState
|
||||||
from primaite.simulator.network.hardware.nodes.network.router import (
|
from primaite.simulator.network.hardware.nodes.network.router import (
|
||||||
AccessControlList,
|
AccessControlList,
|
||||||
@@ -67,22 +68,34 @@ class Firewall(Router):
|
|||||||
:ivar str hostname: The Firewall hostname.
|
:ivar str hostname: The Firewall hostname.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
internal_inbound_acl: Optional[AccessControlList] = None
|
internal_inbound_acl: AccessControlList = Field(
|
||||||
|
default_factory=lambda: AccessControlList(name="Internal Inbound", implicit_action=ACLAction.DENY)
|
||||||
|
)
|
||||||
"""Access Control List for managing entering the internal network."""
|
"""Access Control List for managing entering the internal network."""
|
||||||
|
|
||||||
internal_outbound_acl: Optional[AccessControlList] = None
|
internal_outbound_acl: AccessControlList = Field(
|
||||||
|
default_factory=lambda: AccessControlList(name="Internal Outbound", implicit_action=ACLAction.DENY)
|
||||||
|
)
|
||||||
"""Access Control List for managing traffic leaving the internal network."""
|
"""Access Control List for managing traffic leaving the internal network."""
|
||||||
|
|
||||||
dmz_inbound_acl: Optional[AccessControlList] = None
|
dmz_inbound_acl: AccessControlList = Field(
|
||||||
|
default_factory=lambda: AccessControlList(name="DMZ Inbound", implicit_action=ACLAction.DENY)
|
||||||
|
)
|
||||||
"""Access Control List for managing traffic entering the DMZ."""
|
"""Access Control List for managing traffic entering the DMZ."""
|
||||||
|
|
||||||
dmz_outbound_acl: Optional[AccessControlList] = None
|
dmz_outbound_acl: AccessControlList = Field(
|
||||||
|
default_factory=lambda: AccessControlList(name="DMZ Outbound", implicit_action=ACLAction.DENY)
|
||||||
|
)
|
||||||
"""Access Control List for managing traffic leaving the DMZ."""
|
"""Access Control List for managing traffic leaving the DMZ."""
|
||||||
|
|
||||||
external_inbound_acl: Optional[AccessControlList] = None
|
external_inbound_acl: AccessControlList = Field(
|
||||||
|
default_factory=lambda: AccessControlList(name="External Inbound", implicit_action=ACLAction.PERMIT)
|
||||||
|
)
|
||||||
"""Access Control List for managing traffic entering from an external network."""
|
"""Access Control List for managing traffic entering from an external network."""
|
||||||
|
|
||||||
external_outbound_acl: Optional[AccessControlList] = None
|
external_outbound_acl: AccessControlList = Field(
|
||||||
|
default_factory=lambda: AccessControlList(name="External Outbound", implicit_action=ACLAction.PERMIT)
|
||||||
|
)
|
||||||
"""Access Control List for managing traffic leaving towards an external network."""
|
"""Access Control List for managing traffic leaving towards an external network."""
|
||||||
|
|
||||||
def __init__(self, hostname: str, **kwargs):
|
def __init__(self, hostname: str, **kwargs):
|
||||||
@@ -100,29 +113,85 @@ class Firewall(Router):
|
|||||||
self.connect_nic(
|
self.connect_nic(
|
||||||
RouterInterface(ip_address="127.0.0.1", subnet_mask="255.0.0.0", gateway="0.0.0.0", port_name="dmz")
|
RouterInterface(ip_address="127.0.0.1", subnet_mask="255.0.0.0", gateway="0.0.0.0", port_name="dmz")
|
||||||
)
|
)
|
||||||
|
# Update ACL objects with firewall's hostname and syslog to allow accurate logging
|
||||||
|
self.internal_inbound_acl.sys_log = kwargs["sys_log"]
|
||||||
|
self.internal_inbound_acl.name = f"{hostname} - Internal Inbound"
|
||||||
|
|
||||||
# Initialise ACLs for internal and dmz interfaces with a default DENY policy
|
self.internal_outbound_acl.sys_log = kwargs["sys_log"]
|
||||||
self.internal_inbound_acl = AccessControlList(
|
self.internal_outbound_acl.name = f"{hostname} - Internal Outbound"
|
||||||
sys_log=kwargs["sys_log"], implicit_action=ACLAction.DENY, name=f"{hostname} - Internal Inbound"
|
|
||||||
|
self.dmz_inbound_acl.sys_log = kwargs["sys_log"]
|
||||||
|
self.dmz_inbound_acl.name = f"{hostname} - DMZ Inbound"
|
||||||
|
|
||||||
|
self.dmz_outbound_acl.sys_log = kwargs["sys_log"]
|
||||||
|
self.dmz_outbound_acl.name = f"{hostname} - DMZ Outbound"
|
||||||
|
|
||||||
|
self.external_inbound_acl.sys_log = kwargs["sys_log"]
|
||||||
|
self.external_inbound_acl.name = f"{hostname} - External Inbound"
|
||||||
|
|
||||||
|
self.external_outbound_acl.sys_log = kwargs["sys_log"]
|
||||||
|
self.external_outbound_acl.name = f"{hostname} - External Outbound"
|
||||||
|
|
||||||
|
def _init_request_manager(self) -> RequestManager:
|
||||||
|
"""
|
||||||
|
Initialise the request manager.
|
||||||
|
|
||||||
|
More information in user guide and docstring for SimComponent._init_request_manager.
|
||||||
|
"""
|
||||||
|
rm = super()._init_request_manager()
|
||||||
|
self._internal_acl_request_manager = RequestManager()
|
||||||
|
rm.add_request("internal", RequestType(func=self._internal_acl_request_manager))
|
||||||
|
|
||||||
|
self._dmz_acl_request_manager = RequestManager()
|
||||||
|
rm.add_request("dmz", RequestType(func=self._dmz_acl_request_manager))
|
||||||
|
|
||||||
|
self._external_acl_request_manager = RequestManager()
|
||||||
|
rm.add_request("external", RequestType(func=self._external_acl_request_manager))
|
||||||
|
|
||||||
|
self._internal_inbound_acl_request_manager = RequestManager()
|
||||||
|
self._internal_outbound_acl_request_manager = RequestManager()
|
||||||
|
self._internal_acl_request_manager.add_request(
|
||||||
|
"inbound", RequestType(func=self._internal_inbound_acl_request_manager)
|
||||||
)
|
)
|
||||||
self.internal_outbound_acl = AccessControlList(
|
self._internal_acl_request_manager.add_request(
|
||||||
sys_log=kwargs["sys_log"], implicit_action=ACLAction.DENY, name=f"{hostname} - Internal Outbound"
|
"outbound", RequestType(func=self._internal_outbound_acl_request_manager)
|
||||||
)
|
|
||||||
self.dmz_inbound_acl = AccessControlList(
|
|
||||||
sys_log=kwargs["sys_log"], implicit_action=ACLAction.DENY, name=f"{hostname} - DMZ Inbound"
|
|
||||||
)
|
|
||||||
self.dmz_outbound_acl = AccessControlList(
|
|
||||||
sys_log=kwargs["sys_log"], implicit_action=ACLAction.DENY, name=f"{hostname} - DMZ Outbound"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# external ACLs should have a default PERMIT policy
|
self.dmz_inbound_acl_request_manager = RequestManager()
|
||||||
self.external_inbound_acl = AccessControlList(
|
self.dmz_outbound_acl_request_manager = RequestManager()
|
||||||
sys_log=kwargs["sys_log"], implicit_action=ACLAction.PERMIT, name=f"{hostname} - External Inbound"
|
self._dmz_acl_request_manager.add_request("inbound", RequestType(func=self.dmz_inbound_acl_request_manager))
|
||||||
|
self._dmz_acl_request_manager.add_request("outbound", RequestType(func=self.dmz_outbound_acl_request_manager))
|
||||||
|
|
||||||
|
self.external_inbound_acl_request_manager = RequestManager()
|
||||||
|
self.external_outbound_acl_request_manager = RequestManager()
|
||||||
|
self._external_acl_request_manager.add_request(
|
||||||
|
"inbound", RequestType(func=self.external_inbound_acl_request_manager)
|
||||||
)
|
)
|
||||||
self.external_outbound_acl = AccessControlList(
|
self._external_acl_request_manager.add_request(
|
||||||
sys_log=kwargs["sys_log"], implicit_action=ACLAction.PERMIT, name=f"{hostname} - External Outbound"
|
"outbound", RequestType(func=self.external_outbound_acl_request_manager)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
self._internal_inbound_acl_request_manager.add_request(
|
||||||
|
"acl", RequestType(func=self.internal_inbound_acl._request_manager)
|
||||||
|
)
|
||||||
|
self._internal_outbound_acl_request_manager.add_request(
|
||||||
|
"acl", RequestType(func=self.internal_outbound_acl._request_manager)
|
||||||
|
)
|
||||||
|
|
||||||
|
self.dmz_inbound_acl_request_manager.add_request("acl", RequestType(func=self.dmz_inbound_acl._request_manager))
|
||||||
|
self.dmz_outbound_acl_request_manager.add_request(
|
||||||
|
"acl", RequestType(func=self.dmz_outbound_acl._request_manager)
|
||||||
|
)
|
||||||
|
|
||||||
|
self.external_inbound_acl_request_manager.add_request(
|
||||||
|
"acl", RequestType(func=self.external_inbound_acl._request_manager)
|
||||||
|
)
|
||||||
|
self.external_outbound_acl_request_manager.add_request(
|
||||||
|
"acl", RequestType(func=self.external_outbound_acl._request_manager)
|
||||||
|
)
|
||||||
|
|
||||||
|
return rm
|
||||||
|
|
||||||
def describe_state(self) -> Dict:
|
def describe_state(self) -> Dict:
|
||||||
"""
|
"""
|
||||||
Describes the current state of the Firewall.
|
Describes the current state of the Firewall.
|
||||||
|
|||||||
@@ -275,7 +275,7 @@ class AccessControlList(SimComponent):
|
|||||||
:ivar int max_acl_rules: The maximum number of ACL rules that can be added to the list. Defaults to 25.
|
:ivar int max_acl_rules: The maximum number of ACL rules that can be added to the list. Defaults to 25.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
sys_log: SysLog
|
sys_log: Optional[SysLog] = None
|
||||||
implicit_action: ACLAction
|
implicit_action: ACLAction
|
||||||
implicit_rule: ACLRule
|
implicit_rule: ACLRule
|
||||||
max_acl_rules: int = 25
|
max_acl_rules: int = 25
|
||||||
|
|||||||
@@ -169,14 +169,10 @@ agents:
|
|||||||
- type: NODE_SHUTDOWN
|
- type: NODE_SHUTDOWN
|
||||||
- type: NODE_STARTUP
|
- type: NODE_STARTUP
|
||||||
- type: NODE_RESET
|
- type: NODE_RESET
|
||||||
- type: NETWORK_ACL_ADDRULE
|
- type: ROUTER_ACL_ADDRULE
|
||||||
options:
|
- type: ROUTER_ACL_REMOVERULE
|
||||||
target_router_hostname: router_1
|
- type: HOST_NIC_ENABLE
|
||||||
- type: NETWORK_ACL_REMOVERULE
|
- type: HOST_NIC_DISABLE
|
||||||
options:
|
|
||||||
target_router_hostname: router_1
|
|
||||||
- type: NETWORK_NIC_ENABLE
|
|
||||||
- type: NETWORK_NIC_DISABLE
|
|
||||||
|
|
||||||
action_map:
|
action_map:
|
||||||
0:
|
0:
|
||||||
@@ -291,8 +287,9 @@ agents:
|
|||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
22: # "ACL: ADDRULE - Block outgoing traffic from client 1" (not supported in Primaite)
|
22: # "ACL: ADDRULE - Block outgoing traffic from client 1" (not supported in Primaite)
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 1
|
position: 1
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -301,8 +298,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 1
|
protocol_id: 1
|
||||||
23: # "ACL: ADDRULE - Block outgoing traffic from client 2" (not supported in Primaite)
|
23: # "ACL: ADDRULE - Block outgoing traffic from client 2" (not supported in Primaite)
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 2
|
position: 2
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -311,8 +309,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 1
|
protocol_id: 1
|
||||||
24: # block tcp traffic from client 1 to web app
|
24: # block tcp traffic from client 1 to web app
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 3
|
position: 3
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -321,8 +320,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
25: # block tcp traffic from client 2 to web app
|
25: # block tcp traffic from client 2 to web app
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 4
|
position: 4
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -331,8 +331,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
26:
|
26:
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 5
|
position: 5
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -341,8 +342,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
27:
|
27:
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 6
|
position: 6
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -351,122 +353,132 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
28:
|
28:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 0
|
position: 0
|
||||||
29:
|
29:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 1
|
position: 1
|
||||||
30:
|
30:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 2
|
position: 2
|
||||||
31:
|
31:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 3
|
position: 3
|
||||||
32:
|
32:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 4
|
position: 4
|
||||||
33:
|
33:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 5
|
position: 5
|
||||||
34:
|
34:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 6
|
position: 6
|
||||||
35:
|
35:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 7
|
position: 7
|
||||||
36:
|
36:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 8
|
position: 8
|
||||||
37:
|
37:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 9
|
position: 9
|
||||||
38:
|
38:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 0
|
node_id: 0
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
39:
|
39:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 0
|
node_id: 0
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
40:
|
40:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 1
|
node_id: 1
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
41:
|
41:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 1
|
node_id: 1
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
42:
|
42:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 2
|
node_id: 2
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
43:
|
43:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 2
|
node_id: 2
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
44:
|
44:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 3
|
node_id: 3
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
45:
|
45:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 3
|
node_id: 3
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
46:
|
46:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
47:
|
47:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
48:
|
48:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 1
|
nic_id: 1
|
||||||
49:
|
49:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 1
|
nic_id: 1
|
||||||
50:
|
50:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
51:
|
51:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
52:
|
52:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 6
|
node_id: 6
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
53:
|
53:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 6
|
node_id: 6
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
|
|||||||
@@ -47,6 +47,15 @@ agents:
|
|||||||
action_list:
|
action_list:
|
||||||
- type: DONOTHING
|
- type: DONOTHING
|
||||||
- type: NODE_APPLICATION_EXECUTE
|
- type: NODE_APPLICATION_EXECUTE
|
||||||
|
action_map:
|
||||||
|
0:
|
||||||
|
action: DONOTHING
|
||||||
|
options: {}
|
||||||
|
1:
|
||||||
|
action: NODE_APPLICATION_EXECUTE
|
||||||
|
options:
|
||||||
|
node_id: 0
|
||||||
|
application_id: 0
|
||||||
options:
|
options:
|
||||||
nodes:
|
nodes:
|
||||||
- node_name: client_2
|
- node_name: client_2
|
||||||
|
|||||||
@@ -47,6 +47,15 @@ agents:
|
|||||||
action_list:
|
action_list:
|
||||||
- type: DONOTHING
|
- type: DONOTHING
|
||||||
- type: NODE_APPLICATION_EXECUTE
|
- type: NODE_APPLICATION_EXECUTE
|
||||||
|
action_map:
|
||||||
|
0:
|
||||||
|
action: DONOTHING
|
||||||
|
options: {}
|
||||||
|
1:
|
||||||
|
action: NODE_APPLICATION_EXECUTE
|
||||||
|
options:
|
||||||
|
node_id: 0
|
||||||
|
application_id: 0
|
||||||
options:
|
options:
|
||||||
nodes:
|
nodes:
|
||||||
- node_name: client_2
|
- node_name: client_2
|
||||||
|
|||||||
@@ -72,6 +72,15 @@ agents:
|
|||||||
action_list:
|
action_list:
|
||||||
- type: DONOTHING
|
- type: DONOTHING
|
||||||
- type: NODE_APPLICATION_EXECUTE
|
- type: NODE_APPLICATION_EXECUTE
|
||||||
|
action_map:
|
||||||
|
0:
|
||||||
|
action: DONOTHING
|
||||||
|
options: {}
|
||||||
|
1:
|
||||||
|
action: NODE_APPLICATION_EXECUTE
|
||||||
|
options:
|
||||||
|
node_id: 0
|
||||||
|
application_id: 0
|
||||||
options:
|
options:
|
||||||
nodes:
|
nodes:
|
||||||
- node_name: client_1
|
- node_name: client_1
|
||||||
|
|||||||
@@ -31,7 +31,10 @@ agents:
|
|||||||
action_space:
|
action_space:
|
||||||
action_list:
|
action_list:
|
||||||
- type: DONOTHING
|
- type: DONOTHING
|
||||||
|
action_map:
|
||||||
|
0:
|
||||||
|
action: DONOTHING
|
||||||
|
options: {}
|
||||||
options:
|
options:
|
||||||
nodes:
|
nodes:
|
||||||
- node_name: client_2
|
- node_name: client_2
|
||||||
@@ -67,6 +70,15 @@ agents:
|
|||||||
- type: NODE_FILE_DELETE
|
- type: NODE_FILE_DELETE
|
||||||
- type: NODE_FILE_CORRUPT
|
- type: NODE_FILE_CORRUPT
|
||||||
- type: NODE_OS_SCAN
|
- type: NODE_OS_SCAN
|
||||||
|
action_map:
|
||||||
|
0:
|
||||||
|
action: DONOTHING
|
||||||
|
options: {}
|
||||||
|
1:
|
||||||
|
action: NODE_APPLICATION_EXECUTE
|
||||||
|
options:
|
||||||
|
node_id: 0
|
||||||
|
application_id: 0
|
||||||
options:
|
options:
|
||||||
nodes:
|
nodes:
|
||||||
- node_name: client_1
|
- node_name: client_1
|
||||||
@@ -173,14 +185,10 @@ agents:
|
|||||||
- type: NODE_SHUTDOWN
|
- type: NODE_SHUTDOWN
|
||||||
- type: NODE_STARTUP
|
- type: NODE_STARTUP
|
||||||
- type: NODE_RESET
|
- type: NODE_RESET
|
||||||
- type: NETWORK_ACL_ADDRULE
|
- type: ROUTER_ACL_ADDRULE
|
||||||
options:
|
- type: ROUTER_ACL_REMOVERULE
|
||||||
target_router_hostname: router_1
|
- type: HOST_NIC_ENABLE
|
||||||
- type: NETWORK_ACL_REMOVERULE
|
- type: HOST_NIC_DISABLE
|
||||||
options:
|
|
||||||
target_router_hostname: router_1
|
|
||||||
- type: NETWORK_NIC_ENABLE
|
|
||||||
- type: NETWORK_NIC_DISABLE
|
|
||||||
|
|
||||||
action_map:
|
action_map:
|
||||||
0:
|
0:
|
||||||
@@ -295,8 +303,9 @@ agents:
|
|||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
22: # "ACL: ADDRULE - Block outgoing traffic from client 1" (not supported in Primaite)
|
22: # "ACL: ADDRULE - Block outgoing traffic from client 1" (not supported in Primaite)
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 1
|
position: 1
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -305,8 +314,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 1
|
protocol_id: 1
|
||||||
23: # "ACL: ADDRULE - Block outgoing traffic from client 2" (not supported in Primaite)
|
23: # "ACL: ADDRULE - Block outgoing traffic from client 2" (not supported in Primaite)
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 2
|
position: 2
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -315,8 +325,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 1
|
protocol_id: 1
|
||||||
24: # block tcp traffic from client 1 to web app
|
24: # block tcp traffic from client 1 to web app
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 3
|
position: 3
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -325,8 +336,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
25: # block tcp traffic from client 2 to web app
|
25: # block tcp traffic from client 2 to web app
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 4
|
position: 4
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -335,8 +347,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
26:
|
26:
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 5
|
position: 5
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -345,8 +358,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
27:
|
27:
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 6
|
position: 6
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -355,122 +369,132 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
28:
|
28:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 0
|
position: 0
|
||||||
29:
|
29:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 1
|
position: 1
|
||||||
30:
|
30:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 2
|
position: 2
|
||||||
31:
|
31:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 3
|
position: 3
|
||||||
32:
|
32:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 4
|
position: 4
|
||||||
33:
|
33:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 5
|
position: 5
|
||||||
34:
|
34:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 6
|
position: 6
|
||||||
35:
|
35:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 7
|
position: 7
|
||||||
36:
|
36:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 8
|
position: 8
|
||||||
37:
|
37:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 9
|
position: 9
|
||||||
38:
|
38:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 0
|
node_id: 0
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
39:
|
39:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 0
|
node_id: 0
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
40:
|
40:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 1
|
node_id: 1
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
41:
|
41:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 1
|
node_id: 1
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
42:
|
42:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 2
|
node_id: 2
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
43:
|
43:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 2
|
node_id: 2
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
44:
|
44:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 3
|
node_id: 3
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
45:
|
45:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 3
|
node_id: 3
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
46:
|
46:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
47:
|
47:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
48:
|
48:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 1
|
nic_id: 1
|
||||||
49:
|
49:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 1
|
nic_id: 1
|
||||||
50:
|
50:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
51:
|
51:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
52:
|
52:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 6
|
node_id: 6
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
53:
|
53:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 6
|
node_id: 6
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
|
|||||||
460
tests/assets/configs/firewall_actions_network.yaml
Normal file
460
tests/assets/configs/firewall_actions_network.yaml
Normal file
@@ -0,0 +1,460 @@
|
|||||||
|
# Network with DMZ
|
||||||
|
#
|
||||||
|
# An example network configuration with an internal network, a DMZ network and a couple of external networks.
|
||||||
|
#
|
||||||
|
# ............................................................................
|
||||||
|
# . .
|
||||||
|
# . Internal Network .
|
||||||
|
# . .
|
||||||
|
# . -------------- -------------- -------------- .
|
||||||
|
# . | client_1 |------| switch_1 |--------| router_1 | .
|
||||||
|
# . -------------- -------------- -------------- .
|
||||||
|
# . (Computer) | .
|
||||||
|
# ........................................................|...................
|
||||||
|
# |
|
||||||
|
# |
|
||||||
|
# ........................................................|...................
|
||||||
|
# . | .
|
||||||
|
# . DMZ Network | .
|
||||||
|
# . | .
|
||||||
|
# . ---------------- -------------- -------------- .
|
||||||
|
# . | dmz_server |------| switch_2 |------| firewall | .
|
||||||
|
# . ---------------- -------------- -------------- .
|
||||||
|
# . (Server) | .
|
||||||
|
# ........................................................|...................
|
||||||
|
# |
|
||||||
|
# External Network |
|
||||||
|
# |
|
||||||
|
# |
|
||||||
|
# ----------------------- -------------- ---------------------
|
||||||
|
# | external_computer |------| switch_3 |------| external_server |
|
||||||
|
# ----------------------- -------------- ---------------------
|
||||||
|
#
|
||||||
|
training_config:
|
||||||
|
rl_framework: SB3
|
||||||
|
rl_algorithm: PPO
|
||||||
|
seed: 333
|
||||||
|
n_learn_episodes: 1
|
||||||
|
n_eval_episodes: 5
|
||||||
|
max_steps_per_episode: 128
|
||||||
|
deterministic_eval: false
|
||||||
|
n_agents: 1
|
||||||
|
agent_references:
|
||||||
|
- defender
|
||||||
|
|
||||||
|
io_settings:
|
||||||
|
save_step_metadata: false
|
||||||
|
save_pcap_logs: true
|
||||||
|
save_sys_logs: true
|
||||||
|
|
||||||
|
|
||||||
|
game:
|
||||||
|
max_episode_length: 256
|
||||||
|
ports:
|
||||||
|
- ARP
|
||||||
|
- DNS
|
||||||
|
- HTTP
|
||||||
|
- POSTGRES_SERVER
|
||||||
|
protocols:
|
||||||
|
- ICMP
|
||||||
|
- TCP
|
||||||
|
- UDP
|
||||||
|
|
||||||
|
agents:
|
||||||
|
- ref: defender
|
||||||
|
team: BLUE
|
||||||
|
type: ProxyAgent
|
||||||
|
observation_space:
|
||||||
|
type: UC2BlueObservation
|
||||||
|
options:
|
||||||
|
num_services_per_node: 1
|
||||||
|
num_folders_per_node: 1
|
||||||
|
num_files_per_folder: 1
|
||||||
|
num_nics_per_node: 2
|
||||||
|
nodes:
|
||||||
|
- node_hostname: client_1
|
||||||
|
links:
|
||||||
|
- link_ref: client_1___switch_1
|
||||||
|
acl:
|
||||||
|
options:
|
||||||
|
max_acl_rules: 10
|
||||||
|
router_hostname: router_1
|
||||||
|
ip_address_order:
|
||||||
|
- node_hostname: client_1
|
||||||
|
nic_num: 1
|
||||||
|
ics: null
|
||||||
|
action_space:
|
||||||
|
action_list:
|
||||||
|
- type: DONOTHING
|
||||||
|
- type: FIREWALL_ACL_ADDRULE
|
||||||
|
- type: FIREWALL_ACL_REMOVERULE
|
||||||
|
- type: NETWORK_PORT_DISABLE
|
||||||
|
- type: NETWORK_PORT_ENABLE
|
||||||
|
action_map:
|
||||||
|
0:
|
||||||
|
action: DONOTHING
|
||||||
|
options: {}
|
||||||
|
1:
|
||||||
|
action: FIREWALL_ACL_ADDRULE
|
||||||
|
options:
|
||||||
|
target_firewall_nodename: firewall
|
||||||
|
firewall_port_name: internal
|
||||||
|
firewall_port_direction: inbound
|
||||||
|
position: 1
|
||||||
|
permission: 1
|
||||||
|
source_ip_id: 2 # client 1
|
||||||
|
dest_ip_id: 1 # ALL
|
||||||
|
source_port_id: 1
|
||||||
|
dest_port_id: 1
|
||||||
|
protocol_id: 1
|
||||||
|
2:
|
||||||
|
action: FIREWALL_ACL_REMOVERULE
|
||||||
|
options:
|
||||||
|
target_firewall_nodename: firewall
|
||||||
|
firewall_port_name: internal
|
||||||
|
firewall_port_direction: inbound
|
||||||
|
position: 1
|
||||||
|
3:
|
||||||
|
action: FIREWALL_ACL_ADDRULE
|
||||||
|
options:
|
||||||
|
target_firewall_nodename: firewall
|
||||||
|
firewall_port_name: internal
|
||||||
|
firewall_port_direction: outbound
|
||||||
|
position: 1
|
||||||
|
permission: 2
|
||||||
|
source_ip_id: 2 # client 1
|
||||||
|
dest_ip_id: 1 # ALL
|
||||||
|
source_port_id: 2
|
||||||
|
dest_port_id: 3
|
||||||
|
protocol_id: 2
|
||||||
|
4:
|
||||||
|
action: FIREWALL_ACL_REMOVERULE
|
||||||
|
options:
|
||||||
|
target_firewall_nodename: firewall
|
||||||
|
firewall_port_name: internal
|
||||||
|
firewall_port_direction: outbound
|
||||||
|
position: 1
|
||||||
|
5:
|
||||||
|
action: FIREWALL_ACL_ADDRULE
|
||||||
|
options:
|
||||||
|
target_firewall_nodename: firewall
|
||||||
|
firewall_port_name: dmz
|
||||||
|
firewall_port_direction: inbound
|
||||||
|
position: 1
|
||||||
|
permission: 2
|
||||||
|
source_ip_id: 3 # dmz_server
|
||||||
|
dest_ip_id: 2 # client_1
|
||||||
|
source_port_id: 4
|
||||||
|
dest_port_id: 4
|
||||||
|
protocol_id: 4
|
||||||
|
6:
|
||||||
|
action: FIREWALL_ACL_REMOVERULE
|
||||||
|
options:
|
||||||
|
target_firewall_nodename: firewall
|
||||||
|
firewall_port_name: dmz
|
||||||
|
firewall_port_direction: inbound
|
||||||
|
position: 1
|
||||||
|
7:
|
||||||
|
action: FIREWALL_ACL_ADDRULE
|
||||||
|
options:
|
||||||
|
target_firewall_nodename: firewall
|
||||||
|
firewall_port_name: dmz
|
||||||
|
firewall_port_direction: outbound
|
||||||
|
position: 2
|
||||||
|
permission: 2
|
||||||
|
source_ip_id: 3 # dmz_server
|
||||||
|
dest_ip_id: 2 # client_1
|
||||||
|
source_port_id: 4
|
||||||
|
dest_port_id: 4
|
||||||
|
protocol_id: 3
|
||||||
|
8:
|
||||||
|
action: FIREWALL_ACL_REMOVERULE
|
||||||
|
options:
|
||||||
|
target_firewall_nodename: firewall
|
||||||
|
firewall_port_name: dmz
|
||||||
|
firewall_port_direction: outbound
|
||||||
|
position: 2
|
||||||
|
9:
|
||||||
|
action: FIREWALL_ACL_ADDRULE
|
||||||
|
options:
|
||||||
|
target_firewall_nodename: firewall
|
||||||
|
firewall_port_name: external
|
||||||
|
firewall_port_direction: inbound
|
||||||
|
position: 10
|
||||||
|
permission: 2
|
||||||
|
source_ip_id: 4 # external_computer
|
||||||
|
dest_ip_id: 3 # dmz
|
||||||
|
source_port_id: 5
|
||||||
|
dest_port_id: 5
|
||||||
|
protocol_id: 2
|
||||||
|
10:
|
||||||
|
action: FIREWALL_ACL_REMOVERULE
|
||||||
|
options:
|
||||||
|
target_firewall_nodename: firewall
|
||||||
|
firewall_port_name: external
|
||||||
|
firewall_port_direction: inbound
|
||||||
|
position: 10
|
||||||
|
11:
|
||||||
|
action: FIREWALL_ACL_ADDRULE
|
||||||
|
options:
|
||||||
|
target_firewall_nodename: firewall
|
||||||
|
firewall_port_name: external
|
||||||
|
firewall_port_direction: outbound
|
||||||
|
position: 1
|
||||||
|
permission: 2
|
||||||
|
source_ip_id: 4 # external_computer
|
||||||
|
dest_ip_id: 2 # client_1
|
||||||
|
source_port_id: 1
|
||||||
|
dest_port_id: 1
|
||||||
|
protocol_id: 1
|
||||||
|
12:
|
||||||
|
action: FIREWALL_ACL_REMOVERULE
|
||||||
|
options:
|
||||||
|
target_firewall_nodename: firewall
|
||||||
|
firewall_port_name: external
|
||||||
|
firewall_port_direction: outbound
|
||||||
|
position: 1
|
||||||
|
13:
|
||||||
|
action: NETWORK_PORT_DISABLE
|
||||||
|
options:
|
||||||
|
target_nodename: firewall
|
||||||
|
port_id: 3
|
||||||
|
14:
|
||||||
|
action: NETWORK_PORT_ENABLE
|
||||||
|
options:
|
||||||
|
target_nodename: firewall
|
||||||
|
port_id: 3
|
||||||
|
options:
|
||||||
|
nodes:
|
||||||
|
- node_name: client_1
|
||||||
|
- node_name: dmz_server
|
||||||
|
- node_name: external_computer
|
||||||
|
ip_address_order:
|
||||||
|
- node_name: client_1
|
||||||
|
nic_num: 1
|
||||||
|
- node_name: dmz_server
|
||||||
|
nic_num: 1
|
||||||
|
- node_name: external_computer
|
||||||
|
nic_num: 1
|
||||||
|
max_folders_per_node: 2
|
||||||
|
max_files_per_folder: 2
|
||||||
|
max_services_per_node: 2
|
||||||
|
max_nics_per_node: 8
|
||||||
|
max_acl_rules: 10
|
||||||
|
reward_function:
|
||||||
|
reward_components:
|
||||||
|
- type: DUMMY
|
||||||
|
|
||||||
|
agent_settings:
|
||||||
|
start_settings:
|
||||||
|
start_step: 5
|
||||||
|
frequency: 4
|
||||||
|
variance: 3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
simulation:
|
||||||
|
network:
|
||||||
|
nodes:
|
||||||
|
- ref: client_1
|
||||||
|
type: computer
|
||||||
|
hostname: client_1
|
||||||
|
ip_address: 192.168.0.10
|
||||||
|
subnet_mask: 255.255.255.0
|
||||||
|
default_gateway: 192.168.0.1
|
||||||
|
dns_server: 192.168.20.11
|
||||||
|
start_up_duration: 0
|
||||||
|
shut_down_duration: 0
|
||||||
|
|
||||||
|
- ref: switch_1
|
||||||
|
type: switch
|
||||||
|
hostname: switch_1
|
||||||
|
num_ports: 8
|
||||||
|
start_up_duration: 0
|
||||||
|
shut_down_duration: 0
|
||||||
|
|
||||||
|
- ref: router_1
|
||||||
|
type: router
|
||||||
|
hostname: router_1
|
||||||
|
num_ports: 5
|
||||||
|
start_up_duration: 0
|
||||||
|
shut_down_duration: 0
|
||||||
|
ports:
|
||||||
|
1:
|
||||||
|
ip_address: 192.168.0.1
|
||||||
|
subnet_mask: 255.255.255.0
|
||||||
|
2:
|
||||||
|
ip_address: 192.168.1.1
|
||||||
|
subnet_mask: 255.255.255.0
|
||||||
|
acl:
|
||||||
|
22:
|
||||||
|
action: PERMIT
|
||||||
|
src_port: ARP
|
||||||
|
dst_port: ARP
|
||||||
|
23:
|
||||||
|
action: PERMIT
|
||||||
|
protocol: ICMP
|
||||||
|
routes:
|
||||||
|
- address: 192.168.10.10 # route to dmz_server
|
||||||
|
subnet_mask: 255.255.255.0
|
||||||
|
next_hop_ip_address: 192.168.1.2
|
||||||
|
metric: 0
|
||||||
|
- address: 192.168.20.10 # route to external_computer
|
||||||
|
subnet_mask: 255.255.255.0
|
||||||
|
next_hop_ip_address: 192.168.1.2
|
||||||
|
metric: 0
|
||||||
|
- address: 192.168.20.11 # route to external_server
|
||||||
|
subnet_mask: 255.255.255.0
|
||||||
|
next_hop_ip_address: 192.168.1.2
|
||||||
|
metric: 0
|
||||||
|
|
||||||
|
- ref: dmz_server
|
||||||
|
type: server
|
||||||
|
hostname: dmz_server
|
||||||
|
ip_address: 192.168.10.10
|
||||||
|
subnet_mask: 255.255.255.0
|
||||||
|
default_gateway: 192.168.10.1
|
||||||
|
dns_server: 192.168.20.11
|
||||||
|
start_up_duration: 0
|
||||||
|
shut_down_duration: 0
|
||||||
|
|
||||||
|
- ref: switch_2
|
||||||
|
type: switch
|
||||||
|
hostname: switch_2
|
||||||
|
num_ports: 8
|
||||||
|
start_up_duration: 0
|
||||||
|
shut_down_duration: 0
|
||||||
|
|
||||||
|
- ref: firewall
|
||||||
|
type: firewall
|
||||||
|
hostname: firewall
|
||||||
|
start_up_duration: 0
|
||||||
|
shut_down_duration: 0
|
||||||
|
ports:
|
||||||
|
external_port: # port 1
|
||||||
|
ip_address: 192.168.20.1
|
||||||
|
subnet_mask: 255.255.255.0
|
||||||
|
internal_port: # port 2
|
||||||
|
ip_address: 192.168.1.2
|
||||||
|
subnet_mask: 255.255.255.0
|
||||||
|
dmz_port: # port 3
|
||||||
|
ip_address: 192.168.10.1
|
||||||
|
subnet_mask: 255.255.255.0
|
||||||
|
acl:
|
||||||
|
internal_inbound_acl:
|
||||||
|
22:
|
||||||
|
action: PERMIT
|
||||||
|
src_port: ARP
|
||||||
|
dst_port: ARP
|
||||||
|
23:
|
||||||
|
action: PERMIT
|
||||||
|
protocol: ICMP
|
||||||
|
internal_outbound_acl:
|
||||||
|
22:
|
||||||
|
action: PERMIT
|
||||||
|
src_port: ARP
|
||||||
|
dst_port: ARP
|
||||||
|
23:
|
||||||
|
action: PERMIT
|
||||||
|
protocol: ICMP
|
||||||
|
dmz_inbound_acl:
|
||||||
|
22:
|
||||||
|
action: PERMIT
|
||||||
|
src_port: ARP
|
||||||
|
dst_port: ARP
|
||||||
|
23:
|
||||||
|
action: PERMIT
|
||||||
|
protocol: ICMP
|
||||||
|
dmz_outbound_acl:
|
||||||
|
22:
|
||||||
|
action: PERMIT
|
||||||
|
src_port: ARP
|
||||||
|
dst_port: ARP
|
||||||
|
23:
|
||||||
|
action: PERMIT
|
||||||
|
protocol: ICMP
|
||||||
|
external_inbound_acl:
|
||||||
|
22:
|
||||||
|
action: PERMIT
|
||||||
|
src_port: ARP
|
||||||
|
dst_port: ARP
|
||||||
|
external_outbound_acl:
|
||||||
|
22:
|
||||||
|
action: PERMIT
|
||||||
|
src_port: ARP
|
||||||
|
dst_port: ARP
|
||||||
|
routes:
|
||||||
|
- address: 192.168.0.10 # route to client_1
|
||||||
|
subnet_mask: 255.255.255.0
|
||||||
|
next_hop_ip_address: 192.168.1.1
|
||||||
|
metric: 0
|
||||||
|
|
||||||
|
- ref: switch_3
|
||||||
|
type: switch
|
||||||
|
hostname: switch_3
|
||||||
|
num_ports: 8
|
||||||
|
start_up_duration: 0
|
||||||
|
shut_down_duration: 0
|
||||||
|
|
||||||
|
- ref: external_computer
|
||||||
|
type: computer
|
||||||
|
hostname: external_computer
|
||||||
|
ip_address: 192.168.20.10
|
||||||
|
subnet_mask: 255.255.255.0
|
||||||
|
default_gateway: 192.168.20.1
|
||||||
|
dns_server: 192.168.20.11
|
||||||
|
start_up_duration: 0
|
||||||
|
shut_down_duration: 0
|
||||||
|
|
||||||
|
- ref: external_server
|
||||||
|
type: server
|
||||||
|
hostname: external_server
|
||||||
|
ip_address: 192.168.20.11
|
||||||
|
subnet_mask: 255.255.255.0
|
||||||
|
default_gateway: 192.168.20.1
|
||||||
|
start_up_duration: 0
|
||||||
|
shut_down_duration: 0
|
||||||
|
services:
|
||||||
|
- ref: domain_controller_dns_server
|
||||||
|
type: DNSServer
|
||||||
|
links:
|
||||||
|
- ref: client_1___switch_1
|
||||||
|
endpoint_a_ref: client_1
|
||||||
|
endpoint_a_port: 1
|
||||||
|
endpoint_b_ref: switch_1
|
||||||
|
endpoint_b_port: 1
|
||||||
|
- ref: router_1___switch_1
|
||||||
|
endpoint_a_ref: router_1
|
||||||
|
endpoint_a_port: 1
|
||||||
|
endpoint_b_ref: switch_1
|
||||||
|
endpoint_b_port: 8
|
||||||
|
- ref: router_1___firewall
|
||||||
|
endpoint_a_ref: firewall
|
||||||
|
endpoint_a_port: 2 # internal firewall port
|
||||||
|
endpoint_b_ref: router_1
|
||||||
|
endpoint_b_port: 2
|
||||||
|
- ref: firewall___switch_2
|
||||||
|
endpoint_a_ref: firewall
|
||||||
|
endpoint_a_port: 3 # dmz firewall port
|
||||||
|
endpoint_b_ref: switch_2
|
||||||
|
endpoint_b_port: 8
|
||||||
|
- ref: dmz_server___switch_2
|
||||||
|
endpoint_a_ref: dmz_server
|
||||||
|
endpoint_a_port: 1
|
||||||
|
endpoint_b_ref: switch_2
|
||||||
|
endpoint_b_port: 1
|
||||||
|
- ref: firewall___switch_3
|
||||||
|
endpoint_a_ref: firewall
|
||||||
|
endpoint_a_port: 1 # external firewall port
|
||||||
|
endpoint_b_ref: switch_3
|
||||||
|
endpoint_b_port: 8
|
||||||
|
- ref: external_computer___switch_3
|
||||||
|
endpoint_a_ref: external_computer
|
||||||
|
endpoint_a_port: 1
|
||||||
|
endpoint_b_ref: switch_3
|
||||||
|
endpoint_b_port: 1
|
||||||
|
- ref: external_server___switch_3
|
||||||
|
endpoint_a_ref: external_server
|
||||||
|
endpoint_a_port: 1
|
||||||
|
endpoint_b_ref: switch_3
|
||||||
|
endpoint_b_port: 2
|
||||||
@@ -180,14 +180,10 @@ agents:
|
|||||||
- type: NODE_SHUTDOWN
|
- type: NODE_SHUTDOWN
|
||||||
- type: NODE_STARTUP
|
- type: NODE_STARTUP
|
||||||
- type: NODE_RESET
|
- type: NODE_RESET
|
||||||
- type: NETWORK_ACL_ADDRULE
|
- type: ROUTER_ACL_ADDRULE
|
||||||
options:
|
- type: ROUTER_ACL_REMOVERULE
|
||||||
target_router_hostname: router_1
|
- type: HOST_NIC_ENABLE
|
||||||
- type: NETWORK_ACL_REMOVERULE
|
- type: HOST_NIC_DISABLE
|
||||||
options:
|
|
||||||
target_router_hostname: router_1
|
|
||||||
- type: NETWORK_NIC_ENABLE
|
|
||||||
- type: NETWORK_NIC_DISABLE
|
|
||||||
|
|
||||||
action_map:
|
action_map:
|
||||||
0:
|
0:
|
||||||
@@ -302,8 +298,9 @@ agents:
|
|||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
22: # "ACL: ADDRULE - Block outgoing traffic from client 1" (not supported in Primaite)
|
22: # "ACL: ADDRULE - Block outgoing traffic from client 1" (not supported in Primaite)
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 1
|
position: 1
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -312,8 +309,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 1
|
protocol_id: 1
|
||||||
23: # "ACL: ADDRULE - Block outgoing traffic from client 2" (not supported in Primaite)
|
23: # "ACL: ADDRULE - Block outgoing traffic from client 2" (not supported in Primaite)
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 2
|
position: 2
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -322,8 +320,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 1
|
protocol_id: 1
|
||||||
24: # block tcp traffic from client 1 to web app
|
24: # block tcp traffic from client 1 to web app
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 3
|
position: 3
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -332,8 +331,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
25: # block tcp traffic from client 2 to web app
|
25: # block tcp traffic from client 2 to web app
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 4
|
position: 4
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -342,8 +342,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
26:
|
26:
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 5
|
position: 5
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -352,8 +353,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
27:
|
27:
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 6
|
position: 6
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -362,122 +364,132 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
28:
|
28:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 0
|
position: 0
|
||||||
29:
|
29:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 1
|
position: 1
|
||||||
30:
|
30:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 2
|
position: 2
|
||||||
31:
|
31:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 3
|
position: 3
|
||||||
32:
|
32:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 4
|
position: 4
|
||||||
33:
|
33:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 5
|
position: 5
|
||||||
34:
|
34:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 6
|
position: 6
|
||||||
35:
|
35:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 7
|
position: 7
|
||||||
36:
|
36:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 8
|
position: 8
|
||||||
37:
|
37:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 9
|
position: 9
|
||||||
38:
|
38:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 0
|
node_id: 0
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
39:
|
39:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 0
|
node_id: 0
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
40:
|
40:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 1
|
node_id: 1
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
41:
|
41:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 1
|
node_id: 1
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
42:
|
42:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 2
|
node_id: 2
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
43:
|
43:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 2
|
node_id: 2
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
44:
|
44:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 3
|
node_id: 3
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
45:
|
45:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 3
|
node_id: 3
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
46:
|
46:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
47:
|
47:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
48:
|
48:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 1
|
nic_id: 1
|
||||||
49:
|
49:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 1
|
nic_id: 1
|
||||||
50:
|
50:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
51:
|
51:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
52:
|
52:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 6
|
node_id: 6
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
53:
|
53:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 6
|
node_id: 6
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
@@ -624,14 +636,10 @@ agents:
|
|||||||
- type: NODE_SHUTDOWN
|
- type: NODE_SHUTDOWN
|
||||||
- type: NODE_STARTUP
|
- type: NODE_STARTUP
|
||||||
- type: NODE_RESET
|
- type: NODE_RESET
|
||||||
- type: NETWORK_ACL_ADDRULE
|
- type: ROUTER_ACL_ADDRULE
|
||||||
options:
|
- type: ROUTER_ACL_REMOVERULE
|
||||||
target_router_hostname: router_1
|
- type: HOST_NIC_ENABLE
|
||||||
- type: NETWORK_ACL_REMOVERULE
|
- type: HOST_NIC_DISABLE
|
||||||
options:
|
|
||||||
target_router_hostname: router_1
|
|
||||||
- type: NETWORK_NIC_ENABLE
|
|
||||||
- type: NETWORK_NIC_DISABLE
|
|
||||||
|
|
||||||
action_map:
|
action_map:
|
||||||
0:
|
0:
|
||||||
@@ -746,8 +754,9 @@ agents:
|
|||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
22: # "ACL: ADDRULE - Block outgoing traffic from client 1" (not supported in Primaite)
|
22: # "ACL: ADDRULE - Block outgoing traffic from client 1" (not supported in Primaite)
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 1
|
position: 1
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -756,8 +765,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 1
|
protocol_id: 1
|
||||||
23: # "ACL: ADDRULE - Block outgoing traffic from client 2" (not supported in Primaite)
|
23: # "ACL: ADDRULE - Block outgoing traffic from client 2" (not supported in Primaite)
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 2
|
position: 2
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -766,8 +776,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 1
|
protocol_id: 1
|
||||||
24: # block tcp traffic from client 1 to web app
|
24: # block tcp traffic from client 1 to web app
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 3
|
position: 3
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -776,8 +787,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
25: # block tcp traffic from client 2 to web app
|
25: # block tcp traffic from client 2 to web app
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 4
|
position: 4
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -786,8 +798,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
26:
|
26:
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 5
|
position: 5
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -796,8 +809,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
27:
|
27:
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 6
|
position: 6
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -806,122 +820,132 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
28:
|
28:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 0
|
position: 0
|
||||||
29:
|
29:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 1
|
position: 1
|
||||||
30:
|
30:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 2
|
position: 2
|
||||||
31:
|
31:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 3
|
position: 3
|
||||||
32:
|
32:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 4
|
position: 4
|
||||||
33:
|
33:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 5
|
position: 5
|
||||||
34:
|
34:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 6
|
position: 6
|
||||||
35:
|
35:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 7
|
position: 7
|
||||||
36:
|
36:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 8
|
position: 8
|
||||||
37:
|
37:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 9
|
position: 9
|
||||||
38:
|
38:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 0
|
node_id: 0
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
39:
|
39:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 0
|
node_id: 0
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
40:
|
40:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 1
|
node_id: 1
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
41:
|
41:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 1
|
node_id: 1
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
42:
|
42:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 2
|
node_id: 2
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
43:
|
43:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 2
|
node_id: 2
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
44:
|
44:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 3
|
node_id: 3
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
45:
|
45:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 3
|
node_id: 3
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
46:
|
46:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
47:
|
47:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
48:
|
48:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 1
|
nic_id: 1
|
||||||
49:
|
49:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 1
|
nic_id: 1
|
||||||
50:
|
50:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
51:
|
51:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
52:
|
52:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 6
|
node_id: 6
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
53:
|
53:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 6
|
node_id: 6
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
|
|||||||
@@ -258,14 +258,10 @@ agents:
|
|||||||
- type: NODE_SHUTDOWN
|
- type: NODE_SHUTDOWN
|
||||||
- type: NODE_STARTUP
|
- type: NODE_STARTUP
|
||||||
- type: NODE_RESET
|
- type: NODE_RESET
|
||||||
- type: NETWORK_ACL_ADDRULE
|
- type: ROUTER_ACL_ADDRULE
|
||||||
options:
|
- type: ROUTER_ACL_REMOVERULE
|
||||||
target_router_hostname: router_1
|
- type: HOST_NIC_ENABLE
|
||||||
- type: NETWORK_ACL_REMOVERULE
|
- type: HOST_NIC_DISABLE
|
||||||
options:
|
|
||||||
target_router_hostname: router_1
|
|
||||||
- type: NETWORK_NIC_ENABLE
|
|
||||||
- type: NETWORK_NIC_DISABLE
|
|
||||||
|
|
||||||
action_map:
|
action_map:
|
||||||
0:
|
0:
|
||||||
@@ -477,8 +473,9 @@ agents:
|
|||||||
node_id: 6
|
node_id: 6
|
||||||
|
|
||||||
46: # old action num: 22 # "ACL: ADDRULE - Block outgoing traffic from client 1"
|
46: # old action num: 22 # "ACL: ADDRULE - Block outgoing traffic from client 1"
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 1
|
position: 1
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -487,8 +484,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 1
|
protocol_id: 1
|
||||||
47: # old action num: 23 # "ACL: ADDRULE - Block outgoing traffic from client 2"
|
47: # old action num: 23 # "ACL: ADDRULE - Block outgoing traffic from client 2"
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 2
|
position: 2
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -497,8 +495,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 1
|
protocol_id: 1
|
||||||
48: # old action num: 24 # block tcp traffic from client 1 to web app
|
48: # old action num: 24 # block tcp traffic from client 1 to web app
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 3
|
position: 3
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -507,8 +506,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
49: # old action num: 25 # block tcp traffic from client 2 to web app
|
49: # old action num: 25 # block tcp traffic from client 2 to web app
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 4
|
position: 4
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -517,8 +517,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
50: # old action num: 26
|
50: # old action num: 26
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 5
|
position: 5
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -527,8 +528,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
51: # old action num: 27
|
51: # old action num: 27
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 6
|
position: 6
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -537,122 +539,132 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
52: # old action num: 28
|
52: # old action num: 28
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 0
|
position: 0
|
||||||
53: # old action num: 29
|
53: # old action num: 29
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 1
|
position: 1
|
||||||
54: # old action num: 30
|
54: # old action num: 30
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 2
|
position: 2
|
||||||
55: # old action num: 31
|
55: # old action num: 31
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 3
|
position: 3
|
||||||
56: # old action num: 32
|
56: # old action num: 32
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 4
|
position: 4
|
||||||
57: # old action num: 33
|
57: # old action num: 33
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 5
|
position: 5
|
||||||
58: # old action num: 34
|
58: # old action num: 34
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 6
|
position: 6
|
||||||
59: # old action num: 35
|
59: # old action num: 35
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 7
|
position: 7
|
||||||
60: # old action num: 36
|
60: # old action num: 36
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 8
|
position: 8
|
||||||
61: # old action num: 37
|
61: # old action num: 37
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 9
|
position: 9
|
||||||
62: # old action num: 38
|
62: # old action num: 38
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 0
|
node_id: 0
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
63: # old action num: 39
|
63: # old action num: 39
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 0
|
node_id: 0
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
64: # old action num: 40
|
64: # old action num: 40
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 1
|
node_id: 1
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
65: # old action num: 41
|
65: # old action num: 41
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 1
|
node_id: 1
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
66: # old action num: 42
|
66: # old action num: 42
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 2
|
node_id: 2
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
67: # old action num: 43
|
67: # old action num: 43
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 2
|
node_id: 2
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
68: # old action num: 44
|
68: # old action num: 44
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 3
|
node_id: 3
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
69: # old action num: 45
|
69: # old action num: 45
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 3
|
node_id: 3
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
70: # old action num: 46
|
70: # old action num: 46
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
71: # old action num: 47
|
71: # old action num: 47
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
72: # old action num: 48
|
72: # old action num: 48
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 1
|
nic_id: 1
|
||||||
73: # old action num: 49
|
73: # old action num: 49
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 1
|
nic_id: 1
|
||||||
74: # old action num: 50
|
74: # old action num: 50
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
75: # old action num: 51
|
75: # old action num: 51
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
76: # old action num: 52
|
76: # old action num: 52
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 6
|
node_id: 6
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
77: # old action num: 53
|
77: # old action num: 53
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 6
|
node_id: 6
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
|
|||||||
@@ -258,14 +258,10 @@ agents:
|
|||||||
- type: NODE_SHUTDOWN
|
- type: NODE_SHUTDOWN
|
||||||
- type: NODE_STARTUP
|
- type: NODE_STARTUP
|
||||||
- type: NODE_RESET
|
- type: NODE_RESET
|
||||||
- type: NETWORK_ACL_ADDRULE
|
- type: ROUTER_ACL_ADDRULE
|
||||||
options:
|
- type: ROUTER_ACL_REMOVERULE
|
||||||
target_router_hostname: router_1
|
- type: HOST_NIC_ENABLE
|
||||||
- type: NETWORK_ACL_REMOVERULE
|
- type: HOST_NIC_DISABLE
|
||||||
options:
|
|
||||||
target_router_hostname: router_1
|
|
||||||
- type: NETWORK_NIC_ENABLE
|
|
||||||
- type: NETWORK_NIC_DISABLE
|
|
||||||
- type: NODE_APPLICATION_INSTALL
|
- type: NODE_APPLICATION_INSTALL
|
||||||
- type: NODE_APPLICATION_REMOVE
|
- type: NODE_APPLICATION_REMOVE
|
||||||
- type: NODE_APPLICATION_EXECUTE
|
- type: NODE_APPLICATION_EXECUTE
|
||||||
@@ -480,8 +476,9 @@ agents:
|
|||||||
node_id: 6
|
node_id: 6
|
||||||
|
|
||||||
46: # old action num: 22 # "ACL: ADDRULE - Block outgoing traffic from client 1"
|
46: # old action num: 22 # "ACL: ADDRULE - Block outgoing traffic from client 1"
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_hostname: router_1
|
||||||
position: 1
|
position: 1
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -490,8 +487,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 1
|
protocol_id: 1
|
||||||
47: # old action num: 23 # "ACL: ADDRULE - Block outgoing traffic from client 2"
|
47: # old action num: 23 # "ACL: ADDRULE - Block outgoing traffic from client 2"
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_hostname: router_1
|
||||||
position: 2
|
position: 2
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -500,8 +498,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 1
|
protocol_id: 1
|
||||||
48: # old action num: 24 # block tcp traffic from client 1 to web app
|
48: # old action num: 24 # block tcp traffic from client 1 to web app
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_hostname: router_1
|
||||||
position: 3
|
position: 3
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -510,8 +509,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
49: # old action num: 25 # block tcp traffic from client 2 to web app
|
49: # old action num: 25 # block tcp traffic from client 2 to web app
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_hostname: router_1
|
||||||
position: 4
|
position: 4
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -520,8 +520,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
50: # old action num: 26
|
50: # old action num: 26
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_hostname: router_1
|
||||||
position: 5
|
position: 5
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -530,8 +531,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
51: # old action num: 27
|
51: # old action num: 27
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_hostname: router_1
|
||||||
position: 6
|
position: 6
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -540,122 +542,132 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
52: # old action num: 28
|
52: # old action num: 28
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_hostname: router_1
|
||||||
position: 0
|
position: 0
|
||||||
53: # old action num: 29
|
53: # old action num: 29
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_hostname: router_1
|
||||||
position: 1
|
position: 1
|
||||||
54: # old action num: 30
|
54: # old action num: 30
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_hostname: router_1
|
||||||
position: 2
|
position: 2
|
||||||
55: # old action num: 31
|
55: # old action num: 31
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_hostname: router_1
|
||||||
position: 3
|
position: 3
|
||||||
56: # old action num: 32
|
56: # old action num: 32
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_hostname: router_1
|
||||||
position: 4
|
position: 4
|
||||||
57: # old action num: 33
|
57: # old action num: 33
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_hostname: router_1
|
||||||
position: 5
|
position: 5
|
||||||
58: # old action num: 34
|
58: # old action num: 34
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_hostname: router_1
|
||||||
position: 6
|
position: 6
|
||||||
59: # old action num: 35
|
59: # old action num: 35
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_hostname: router_1
|
||||||
position: 7
|
position: 7
|
||||||
60: # old action num: 36
|
60: # old action num: 36
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_hostname: router_1
|
||||||
position: 8
|
position: 8
|
||||||
61: # old action num: 37
|
61: # old action num: 37
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_hostname: router_1
|
||||||
position: 9
|
position: 9
|
||||||
62: # old action num: 38
|
62: # old action num: 38
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 0
|
node_id: 0
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
63: # old action num: 39
|
63: # old action num: 39
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 0
|
node_id: 0
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
64: # old action num: 40
|
64: # old action num: 40
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 1
|
node_id: 1
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
65: # old action num: 41
|
65: # old action num: 41
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 1
|
node_id: 1
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
66: # old action num: 42
|
66: # old action num: 42
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 2
|
node_id: 2
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
67: # old action num: 43
|
67: # old action num: 43
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 2
|
node_id: 2
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
68: # old action num: 44
|
68: # old action num: 44
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 3
|
node_id: 3
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
69: # old action num: 45
|
69: # old action num: 45
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 3
|
node_id: 3
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
70: # old action num: 46
|
70: # old action num: 46
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
71: # old action num: 47
|
71: # old action num: 47
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
72: # old action num: 48
|
72: # old action num: 48
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 1
|
nic_id: 1
|
||||||
73: # old action num: 49
|
73: # old action num: 49
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 1
|
nic_id: 1
|
||||||
74: # old action num: 50
|
74: # old action num: 50
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
75: # old action num: 51
|
75: # old action num: 51
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
76: # old action num: 52
|
76: # old action num: 52
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 6
|
node_id: 6
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
77: # old action num: 53
|
77: # old action num: 53
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 6
|
node_id: 6
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
|
|||||||
@@ -38,7 +38,10 @@ agents:
|
|||||||
action_space:
|
action_space:
|
||||||
action_list:
|
action_list:
|
||||||
- type: DONOTHING
|
- type: DONOTHING
|
||||||
|
action_map:
|
||||||
|
0:
|
||||||
|
action: DONOTHING
|
||||||
|
options: {}
|
||||||
options:
|
options:
|
||||||
nodes:
|
nodes:
|
||||||
- node_name: client_2
|
- node_name: client_2
|
||||||
@@ -74,6 +77,15 @@ agents:
|
|||||||
- type: NODE_FILE_DELETE
|
- type: NODE_FILE_DELETE
|
||||||
- type: NODE_FILE_CORRUPT
|
- type: NODE_FILE_CORRUPT
|
||||||
- type: NODE_OS_SCAN
|
- type: NODE_OS_SCAN
|
||||||
|
action_map:
|
||||||
|
0:
|
||||||
|
action: DONOTHING
|
||||||
|
options: {}
|
||||||
|
1:
|
||||||
|
action: NODE_APPLICATION_EXECUTE
|
||||||
|
options:
|
||||||
|
node_id: 0
|
||||||
|
application_id: 0
|
||||||
options:
|
options:
|
||||||
nodes:
|
nodes:
|
||||||
- node_name: client_1
|
- node_name: client_1
|
||||||
@@ -183,14 +195,10 @@ agents:
|
|||||||
- type: NODE_SHUTDOWN
|
- type: NODE_SHUTDOWN
|
||||||
- type: NODE_STARTUP
|
- type: NODE_STARTUP
|
||||||
- type: NODE_RESET
|
- type: NODE_RESET
|
||||||
- type: NETWORK_ACL_ADDRULE
|
- type: ROUTER_ACL_ADDRULE
|
||||||
options:
|
- type: ROUTER_ACL_REMOVERULE
|
||||||
target_router_hostname: router_1
|
- type: HOST_NIC_ENABLE
|
||||||
- type: NETWORK_ACL_REMOVERULE
|
- type: HOST_NIC_DISABLE
|
||||||
options:
|
|
||||||
target_router_hostname: router_1
|
|
||||||
- type: NETWORK_NIC_ENABLE
|
|
||||||
- type: NETWORK_NIC_DISABLE
|
|
||||||
|
|
||||||
action_map:
|
action_map:
|
||||||
0:
|
0:
|
||||||
@@ -305,8 +313,9 @@ agents:
|
|||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
22: # "ACL: ADDRULE - Block outgoing traffic from client 1" (not supported in Primaite)
|
22: # "ACL: ADDRULE - Block outgoing traffic from client 1" (not supported in Primaite)
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 1
|
position: 1
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -315,8 +324,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 1
|
protocol_id: 1
|
||||||
23: # "ACL: ADDRULE - Block outgoing traffic from client 2" (not supported in Primaite)
|
23: # "ACL: ADDRULE - Block outgoing traffic from client 2" (not supported in Primaite)
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 2
|
position: 2
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -325,8 +335,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 1
|
protocol_id: 1
|
||||||
24: # block tcp traffic from client 1 to web app
|
24: # block tcp traffic from client 1 to web app
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 3
|
position: 3
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -335,8 +346,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
25: # block tcp traffic from client 2 to web app
|
25: # block tcp traffic from client 2 to web app
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 4
|
position: 4
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -345,8 +357,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
26:
|
26:
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 5
|
position: 5
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -355,8 +368,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
27:
|
27:
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 6
|
position: 6
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -365,122 +379,132 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
28:
|
28:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 0
|
position: 0
|
||||||
29:
|
29:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 1
|
position: 1
|
||||||
30:
|
30:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 2
|
position: 2
|
||||||
31:
|
31:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 3
|
position: 3
|
||||||
32:
|
32:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 4
|
position: 4
|
||||||
33:
|
33:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 5
|
position: 5
|
||||||
34:
|
34:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 6
|
position: 6
|
||||||
35:
|
35:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 7
|
position: 7
|
||||||
36:
|
36:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 8
|
position: 8
|
||||||
37:
|
37:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 9
|
position: 9
|
||||||
38:
|
38:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 0
|
node_id: 0
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
39:
|
39:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 0
|
node_id: 0
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
40:
|
40:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 1
|
node_id: 1
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
41:
|
41:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 1
|
node_id: 1
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
42:
|
42:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 2
|
node_id: 2
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
43:
|
43:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 2
|
node_id: 2
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
44:
|
44:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 3
|
node_id: 3
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
45:
|
45:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 3
|
node_id: 3
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
46:
|
46:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
47:
|
47:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
48:
|
48:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 1
|
nic_id: 1
|
||||||
49:
|
49:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 1
|
nic_id: 1
|
||||||
50:
|
50:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
51:
|
51:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
52:
|
52:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 6
|
node_id: 6
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
53:
|
53:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 6
|
node_id: 6
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
|
|||||||
@@ -38,7 +38,10 @@ agents:
|
|||||||
# options:
|
# options:
|
||||||
# execution_definition:
|
# execution_definition:
|
||||||
# target_address: arcd.com
|
# target_address: arcd.com
|
||||||
|
action_map:
|
||||||
|
0:
|
||||||
|
action: DONOTHING
|
||||||
|
options: {}
|
||||||
options:
|
options:
|
||||||
nodes:
|
nodes:
|
||||||
- node_name: client_2
|
- node_name: client_2
|
||||||
@@ -66,7 +69,6 @@ agents:
|
|||||||
type: UC2RedObservation
|
type: UC2RedObservation
|
||||||
options:
|
options:
|
||||||
nodes: {}
|
nodes: {}
|
||||||
|
|
||||||
action_space:
|
action_space:
|
||||||
action_list:
|
action_list:
|
||||||
- type: DONOTHING
|
- type: DONOTHING
|
||||||
@@ -74,6 +76,15 @@ agents:
|
|||||||
- type: NODE_FILE_DELETE
|
- type: NODE_FILE_DELETE
|
||||||
- type: NODE_FILE_CORRUPT
|
- type: NODE_FILE_CORRUPT
|
||||||
- type: NODE_OS_SCAN
|
- type: NODE_OS_SCAN
|
||||||
|
action_map:
|
||||||
|
0:
|
||||||
|
action: DONOTHING
|
||||||
|
options: {}
|
||||||
|
1:
|
||||||
|
action: NODE_APPLICATION_EXECUTE
|
||||||
|
options:
|
||||||
|
node_id: 0
|
||||||
|
application_id: 0
|
||||||
options:
|
options:
|
||||||
nodes:
|
nodes:
|
||||||
- node_name: client_1
|
- node_name: client_1
|
||||||
@@ -181,14 +192,10 @@ agents:
|
|||||||
- type: NODE_SHUTDOWN
|
- type: NODE_SHUTDOWN
|
||||||
- type: NODE_STARTUP
|
- type: NODE_STARTUP
|
||||||
- type: NODE_RESET
|
- type: NODE_RESET
|
||||||
- type: NETWORK_ACL_ADDRULE
|
- type: ROUTER_ACL_ADDRULE
|
||||||
options:
|
- type: ROUTER_ACL_REMOVERULE
|
||||||
target_router_hostname: router_1
|
- type: HOST_NIC_ENABLE
|
||||||
- type: NETWORK_ACL_REMOVERULE
|
- type: HOST_NIC_DISABLE
|
||||||
options:
|
|
||||||
target_router_hostname: router_1
|
|
||||||
- type: NETWORK_NIC_ENABLE
|
|
||||||
- type: NETWORK_NIC_DISABLE
|
|
||||||
|
|
||||||
action_map:
|
action_map:
|
||||||
0:
|
0:
|
||||||
@@ -303,8 +310,9 @@ agents:
|
|||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
22: # "ACL: ADDRULE - Block outgoing traffic from client 1" (not supported in Primaite)
|
22: # "ACL: ADDRULE - Block outgoing traffic from client 1" (not supported in Primaite)
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 1
|
position: 1
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -313,8 +321,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 1
|
protocol_id: 1
|
||||||
23: # "ACL: ADDRULE - Block outgoing traffic from client 2" (not supported in Primaite)
|
23: # "ACL: ADDRULE - Block outgoing traffic from client 2" (not supported in Primaite)
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 2
|
position: 2
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -323,8 +332,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 1
|
protocol_id: 1
|
||||||
24: # block tcp traffic from client 1 to web app
|
24: # block tcp traffic from client 1 to web app
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 3
|
position: 3
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -333,8 +343,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
25: # block tcp traffic from client 2 to web app
|
25: # block tcp traffic from client 2 to web app
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 4
|
position: 4
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -343,8 +354,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
26:
|
26:
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 5
|
position: 5
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 7 # client 1
|
source_ip_id: 7 # client 1
|
||||||
@@ -353,8 +365,9 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
27:
|
27:
|
||||||
action: "NETWORK_ACL_ADDRULE"
|
action: "ROUTER_ACL_ADDRULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 6
|
position: 6
|
||||||
permission: 2
|
permission: 2
|
||||||
source_ip_id: 8 # client 2
|
source_ip_id: 8 # client 2
|
||||||
@@ -363,122 +376,132 @@ agents:
|
|||||||
dest_port_id: 1
|
dest_port_id: 1
|
||||||
protocol_id: 3
|
protocol_id: 3
|
||||||
28:
|
28:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 0
|
position: 0
|
||||||
29:
|
29:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 1
|
position: 1
|
||||||
30:
|
30:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 2
|
position: 2
|
||||||
31:
|
31:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 3
|
position: 3
|
||||||
32:
|
32:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 4
|
position: 4
|
||||||
33:
|
33:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 5
|
position: 5
|
||||||
34:
|
34:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 6
|
position: 6
|
||||||
35:
|
35:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 7
|
position: 7
|
||||||
36:
|
36:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 8
|
position: 8
|
||||||
37:
|
37:
|
||||||
action: "NETWORK_ACL_REMOVERULE"
|
action: "ROUTER_ACL_REMOVERULE"
|
||||||
options:
|
options:
|
||||||
|
target_router_nodename: router_1
|
||||||
position: 9
|
position: 9
|
||||||
38:
|
38:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 0
|
node_id: 0
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
39:
|
39:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 0
|
node_id: 0
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
40:
|
40:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 1
|
node_id: 1
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
41:
|
41:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 1
|
node_id: 1
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
42:
|
42:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 2
|
node_id: 2
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
43:
|
43:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 2
|
node_id: 2
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
44:
|
44:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 3
|
node_id: 3
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
45:
|
45:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 3
|
node_id: 3
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
46:
|
46:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
47:
|
47:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
48:
|
48:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 1
|
nic_id: 1
|
||||||
49:
|
49:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 4
|
node_id: 4
|
||||||
nic_id: 1
|
nic_id: 1
|
||||||
50:
|
50:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
51:
|
51:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 5
|
node_id: 5
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
52:
|
52:
|
||||||
action: "NETWORK_NIC_DISABLE"
|
action: "HOST_NIC_DISABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 6
|
node_id: 6
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
53:
|
53:
|
||||||
action: "NETWORK_NIC_ENABLE"
|
action: "HOST_NIC_ENABLE"
|
||||||
options:
|
options:
|
||||||
node_id: 6
|
node_id: 6
|
||||||
nic_id: 0
|
nic_id: 0
|
||||||
|
|||||||
@@ -496,10 +496,10 @@ def game_and_agent():
|
|||||||
{"type": "NODE_SHUTDOWN"},
|
{"type": "NODE_SHUTDOWN"},
|
||||||
{"type": "NODE_STARTUP"},
|
{"type": "NODE_STARTUP"},
|
||||||
{"type": "NODE_RESET"},
|
{"type": "NODE_RESET"},
|
||||||
{"type": "NETWORK_ACL_ADDRULE", "options": {"target_router_hostname": "router"}},
|
{"type": "ROUTER_ACL_ADDRULE"},
|
||||||
{"type": "NETWORK_ACL_REMOVERULE", "options": {"target_router_hostname": "router"}},
|
{"type": "ROUTER_ACL_REMOVERULE"},
|
||||||
{"type": "NETWORK_NIC_ENABLE"},
|
{"type": "HOST_NIC_ENABLE"},
|
||||||
{"type": "NETWORK_NIC_DISABLE"},
|
{"type": "HOST_NIC_DISABLE"},
|
||||||
{"type": "NETWORK_PORT_ENABLE"},
|
{"type": "NETWORK_PORT_ENABLE"},
|
||||||
{"type": "NETWORK_PORT_DISABLE"},
|
{"type": "NETWORK_PORT_DISABLE"},
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -14,13 +14,20 @@ from ipaddress import IPv4Address
|
|||||||
from typing import Tuple
|
from typing import Tuple
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
import yaml
|
||||||
|
|
||||||
from primaite.game.agent.interface import ProxyAgent
|
from primaite.game.agent.interface import ProxyAgent
|
||||||
from primaite.game.game import PrimaiteGame
|
from primaite.game.game import PrimaiteGame
|
||||||
|
from primaite.session.environment import PrimaiteGymEnv
|
||||||
from primaite.simulator.file_system.file_system_item_abc import FileSystemItemHealthStatus
|
from primaite.simulator.file_system.file_system_item_abc import FileSystemItemHealthStatus
|
||||||
|
from primaite.simulator.network.transmission.network_layer import IPProtocol
|
||||||
|
from primaite.simulator.network.transmission.transport_layer import Port
|
||||||
from primaite.simulator.system.applications.application import ApplicationOperatingState
|
from primaite.simulator.system.applications.application import ApplicationOperatingState
|
||||||
from primaite.simulator.system.applications.web_browser import WebBrowser
|
from primaite.simulator.system.applications.web_browser import WebBrowser
|
||||||
from primaite.simulator.system.software import SoftwareHealthState
|
from primaite.simulator.system.software import SoftwareHealthState
|
||||||
|
from tests import TEST_ASSETS_ROOT
|
||||||
|
|
||||||
|
FIREWALL_ACTIONS_NETWORK = TEST_ASSETS_ROOT / "configs/firewall_actions_network.yaml"
|
||||||
|
|
||||||
|
|
||||||
def test_do_nothing_integration(game_and_agent: Tuple[PrimaiteGame, ProxyAgent]):
|
def test_do_nothing_integration(game_and_agent: Tuple[PrimaiteGame, ProxyAgent]):
|
||||||
@@ -94,9 +101,9 @@ def test_node_service_fix_integration(game_and_agent: Tuple[PrimaiteGame, ProxyA
|
|||||||
assert svc.health_state_actual == SoftwareHealthState.GOOD
|
assert svc.health_state_actual == SoftwareHealthState.GOOD
|
||||||
|
|
||||||
|
|
||||||
def test_network_acl_addrule_integration(game_and_agent: Tuple[PrimaiteGame, ProxyAgent]):
|
def test_router_acl_addrule_integration(game_and_agent: Tuple[PrimaiteGame, ProxyAgent]):
|
||||||
"""
|
"""
|
||||||
Test that the NetworkACLAddRuleAction can form a request and that it is accepted by the simulation.
|
Test that the RouterACLAddRuleAction can form a request and that it is accepted by the simulation.
|
||||||
|
|
||||||
The ACL starts off with 4 rules, and we add a rule, and check that the ACL now has 5 rules.
|
The ACL starts off with 4 rules, and we add a rule, and check that the ACL now has 5 rules.
|
||||||
"""
|
"""
|
||||||
@@ -113,8 +120,9 @@ def test_network_acl_addrule_integration(game_and_agent: Tuple[PrimaiteGame, Pro
|
|||||||
|
|
||||||
# 2: Add a rule to block client 1 from reaching server 2 on router
|
# 2: Add a rule to block client 1 from reaching server 2 on router
|
||||||
action = (
|
action = (
|
||||||
"NETWORK_ACL_ADDRULE",
|
"ROUTER_ACL_ADDRULE",
|
||||||
{
|
{
|
||||||
|
"target_router_nodename": "router",
|
||||||
"position": 4, # 4th rule
|
"position": 4, # 4th rule
|
||||||
"permission": 2, # DENY
|
"permission": 2, # DENY
|
||||||
"source_ip_id": 3, # 10.0.1.2 (client_1)
|
"source_ip_id": 3, # 10.0.1.2 (client_1)
|
||||||
@@ -137,8 +145,9 @@ def test_network_acl_addrule_integration(game_and_agent: Tuple[PrimaiteGame, Pro
|
|||||||
|
|
||||||
# 4: Add a rule to block server_1 from reaching server_2 on router (this should not affect comms as they are on same subnet)
|
# 4: Add a rule to block server_1 from reaching server_2 on router (this should not affect comms as they are on same subnet)
|
||||||
action = (
|
action = (
|
||||||
"NETWORK_ACL_ADDRULE",
|
"ROUTER_ACL_ADDRULE",
|
||||||
{
|
{
|
||||||
|
"target_router_nodename": "router",
|
||||||
"position": 5, # 5th rule
|
"position": 5, # 5th rule
|
||||||
"permission": 2, # DENY
|
"permission": 2, # DENY
|
||||||
"source_ip_id": 5, # 10.0.2.2 (server_1)
|
"source_ip_id": 5, # 10.0.2.2 (server_1)
|
||||||
@@ -156,8 +165,8 @@ def test_network_acl_addrule_integration(game_and_agent: Tuple[PrimaiteGame, Pro
|
|||||||
assert server_1.ping("10.0.2.3") # Can ping server_2
|
assert server_1.ping("10.0.2.3") # Can ping server_2
|
||||||
|
|
||||||
|
|
||||||
def test_network_acl_removerule_integration(game_and_agent: Tuple[PrimaiteGame, ProxyAgent]):
|
def test_router_acl_removerule_integration(game_and_agent: Tuple[PrimaiteGame, ProxyAgent]):
|
||||||
"""Test that the NetworkACLRemoveRuleAction can form a request and that it is accepted by the simulation."""
|
"""Test that the RouterACLRemoveRuleAction can form a request and that it is accepted by the simulation."""
|
||||||
game, agent = game_and_agent
|
game, agent = game_and_agent
|
||||||
|
|
||||||
# 1: Check that http traffic is going across the network nicely.
|
# 1: Check that http traffic is going across the network nicely.
|
||||||
@@ -172,8 +181,9 @@ def test_network_acl_removerule_integration(game_and_agent: Tuple[PrimaiteGame,
|
|||||||
|
|
||||||
# 2: Remove rule that allows HTTP traffic across the network
|
# 2: Remove rule that allows HTTP traffic across the network
|
||||||
action = (
|
action = (
|
||||||
"NETWORK_ACL_REMOVERULE",
|
"ROUTER_ACL_REMOVERULE",
|
||||||
{
|
{
|
||||||
|
"target_router_nodename": "router",
|
||||||
"position": 3, # 4th rule
|
"position": 3, # 4th rule
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
@@ -188,8 +198,8 @@ def test_network_acl_removerule_integration(game_and_agent: Tuple[PrimaiteGame,
|
|||||||
assert client_1.ping("10.0.2.3")
|
assert client_1.ping("10.0.2.3")
|
||||||
|
|
||||||
|
|
||||||
def test_network_nic_disable_integration(game_and_agent: Tuple[PrimaiteGame, ProxyAgent]):
|
def test_host_nic_disable_integration(game_and_agent: Tuple[PrimaiteGame, ProxyAgent]):
|
||||||
"""Test that the NetworkNICDisableAction can form a request and that it is accepted by the simulation."""
|
"""Test that the HostNICDisableAction can form a request and that it is accepted by the simulation."""
|
||||||
game, agent = game_and_agent
|
game, agent = game_and_agent
|
||||||
|
|
||||||
# 1: Check that client_1 can access the network
|
# 1: Check that client_1 can access the network
|
||||||
@@ -204,7 +214,7 @@ def test_network_nic_disable_integration(game_and_agent: Tuple[PrimaiteGame, Pro
|
|||||||
|
|
||||||
# 2: Disable the NIC on client_1
|
# 2: Disable the NIC on client_1
|
||||||
action = (
|
action = (
|
||||||
"NETWORK_NIC_DISABLE",
|
"HOST_NIC_DISABLE",
|
||||||
{
|
{
|
||||||
"node_id": 0, # client_1
|
"node_id": 0, # client_1
|
||||||
"nic_id": 0, # the only nic (eth-1)
|
"nic_id": 0, # the only nic (eth-1)
|
||||||
@@ -223,8 +233,8 @@ def test_network_nic_disable_integration(game_and_agent: Tuple[PrimaiteGame, Pro
|
|||||||
assert server_1.ping("10.0.2.3")
|
assert server_1.ping("10.0.2.3")
|
||||||
|
|
||||||
|
|
||||||
def test_network_nic_enable_integration(game_and_agent: Tuple[PrimaiteGame, ProxyAgent]):
|
def test_host_nic_enable_integration(game_and_agent: Tuple[PrimaiteGame, ProxyAgent]):
|
||||||
"""Test that the NetworkNICEnableAction can form a request and that it is accepted by the simulation."""
|
"""Test that the HostNICEnableAction can form a request and that it is accepted by the simulation."""
|
||||||
|
|
||||||
game, agent = game_and_agent
|
game, agent = game_and_agent
|
||||||
|
|
||||||
@@ -235,7 +245,7 @@ def test_network_nic_enable_integration(game_and_agent: Tuple[PrimaiteGame, Prox
|
|||||||
|
|
||||||
# 2: Use action to enable nic
|
# 2: Use action to enable nic
|
||||||
action = (
|
action = (
|
||||||
"NETWORK_NIC_ENABLE",
|
"HOST_NIC_ENABLE",
|
||||||
{
|
{
|
||||||
"node_id": 0, # client_1
|
"node_id": 0, # client_1
|
||||||
"nic_id": 0, # the only nic (eth-1)
|
"nic_id": 0, # the only nic (eth-1)
|
||||||
@@ -333,8 +343,8 @@ def test_network_router_port_disable_integration(game_and_agent: Tuple[PrimaiteG
|
|||||||
action = (
|
action = (
|
||||||
"NETWORK_PORT_DISABLE",
|
"NETWORK_PORT_DISABLE",
|
||||||
{
|
{
|
||||||
"node_id": 3, # router
|
"target_nodename": "router", # router
|
||||||
"port_id": 0, # port 1
|
"port_id": 1, # port 1
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
agent.store_action(action)
|
agent.store_action(action)
|
||||||
@@ -365,8 +375,8 @@ def test_network_router_port_enable_integration(game_and_agent: Tuple[PrimaiteGa
|
|||||||
action = (
|
action = (
|
||||||
"NETWORK_PORT_ENABLE",
|
"NETWORK_PORT_ENABLE",
|
||||||
{
|
{
|
||||||
"node_id": 3, # router
|
"target_nodename": "router", # router
|
||||||
"port_id": 0, # port 1
|
"port_id": 1, # port 1
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
agent.store_action(action)
|
agent.store_action(action)
|
||||||
@@ -481,3 +491,116 @@ def test_node_application_install_and_uninstall_integration(game_and_agent: Tupl
|
|||||||
game.step()
|
game.step()
|
||||||
|
|
||||||
assert client_1.software_manager.software.get("DoSBot") is None
|
assert client_1.software_manager.software.get("DoSBot") is None
|
||||||
|
|
||||||
|
|
||||||
|
def test_firewall_acl_add_remove_rule_integration():
|
||||||
|
"""
|
||||||
|
Test that FirewallACLAddRuleAction and FirewallACLRemoveRuleAction can form a request and that it is accepted by the simulation.
|
||||||
|
|
||||||
|
Check that all the details of the ACL rules are correctly added to each ACL list of the Firewall.
|
||||||
|
Check that rules are removed as expected.
|
||||||
|
"""
|
||||||
|
with open(FIREWALL_ACTIONS_NETWORK, "r") as f:
|
||||||
|
cfg = yaml.safe_load(f)
|
||||||
|
|
||||||
|
env = PrimaiteGymEnv(game_config=cfg)
|
||||||
|
|
||||||
|
# 1: Check that traffic is normal and acl starts off with 4 rules.
|
||||||
|
firewall = env.game.simulation.network.get_node_by_hostname("firewall")
|
||||||
|
assert firewall.internal_inbound_acl.num_rules == 2
|
||||||
|
assert firewall.internal_outbound_acl.num_rules == 2
|
||||||
|
assert firewall.dmz_inbound_acl.num_rules == 2
|
||||||
|
assert firewall.dmz_outbound_acl.num_rules == 2
|
||||||
|
assert firewall.external_inbound_acl.num_rules == 1
|
||||||
|
assert firewall.external_outbound_acl.num_rules == 1
|
||||||
|
|
||||||
|
env.step(1) # Add ACL rule to Internal Inbound
|
||||||
|
assert firewall.internal_inbound_acl.num_rules == 3
|
||||||
|
assert firewall.internal_inbound_acl.acl[1].action.name == "PERMIT"
|
||||||
|
assert firewall.internal_inbound_acl.acl[1].src_ip_address == IPv4Address("192.168.0.10")
|
||||||
|
assert firewall.internal_inbound_acl.acl[1].dst_ip_address is None
|
||||||
|
assert firewall.internal_inbound_acl.acl[1].dst_port is None
|
||||||
|
assert firewall.internal_inbound_acl.acl[1].src_port is None
|
||||||
|
assert firewall.internal_inbound_acl.acl[1].protocol is None
|
||||||
|
|
||||||
|
env.step(2) # Remove ACL rule from Internal Inbound
|
||||||
|
assert firewall.internal_inbound_acl.num_rules == 2
|
||||||
|
|
||||||
|
env.step(3) # Add ACL rule to Internal Outbound
|
||||||
|
assert firewall.internal_outbound_acl.num_rules == 3
|
||||||
|
assert firewall.internal_outbound_acl.acl[1].action.name == "DENY"
|
||||||
|
assert firewall.internal_outbound_acl.acl[1].src_ip_address == IPv4Address("192.168.0.10")
|
||||||
|
assert firewall.internal_outbound_acl.acl[1].dst_ip_address is None
|
||||||
|
assert firewall.internal_outbound_acl.acl[1].dst_port == Port.DNS
|
||||||
|
assert firewall.internal_outbound_acl.acl[1].src_port == Port.ARP
|
||||||
|
assert firewall.internal_outbound_acl.acl[1].protocol == IPProtocol.ICMP
|
||||||
|
|
||||||
|
env.step(4) # Remove ACL rule from Internal Outbound
|
||||||
|
assert firewall.internal_outbound_acl.num_rules == 2
|
||||||
|
|
||||||
|
env.step(5) # Add ACL rule to DMZ Inbound
|
||||||
|
assert firewall.dmz_inbound_acl.num_rules == 3
|
||||||
|
assert firewall.dmz_inbound_acl.acl[1].action.name == "DENY"
|
||||||
|
assert firewall.dmz_inbound_acl.acl[1].src_ip_address == IPv4Address("192.168.10.10")
|
||||||
|
assert firewall.dmz_inbound_acl.acl[1].dst_ip_address == IPv4Address("192.168.0.10")
|
||||||
|
assert firewall.dmz_inbound_acl.acl[1].dst_port == Port.HTTP
|
||||||
|
assert firewall.dmz_inbound_acl.acl[1].src_port == Port.HTTP
|
||||||
|
assert firewall.dmz_inbound_acl.acl[1].protocol == IPProtocol.UDP
|
||||||
|
|
||||||
|
env.step(6) # Remove ACL rule from DMZ Inbound
|
||||||
|
assert firewall.dmz_inbound_acl.num_rules == 2
|
||||||
|
|
||||||
|
env.step(7) # Add ACL rule to DMZ Outbound
|
||||||
|
assert firewall.dmz_outbound_acl.num_rules == 3
|
||||||
|
assert firewall.dmz_outbound_acl.acl[2].action.name == "DENY"
|
||||||
|
assert firewall.dmz_outbound_acl.acl[2].src_ip_address == IPv4Address("192.168.10.10")
|
||||||
|
assert firewall.dmz_outbound_acl.acl[2].dst_ip_address == IPv4Address("192.168.0.10")
|
||||||
|
assert firewall.dmz_outbound_acl.acl[2].dst_port == Port.HTTP
|
||||||
|
assert firewall.dmz_outbound_acl.acl[2].src_port == Port.HTTP
|
||||||
|
assert firewall.dmz_outbound_acl.acl[2].protocol == IPProtocol.TCP
|
||||||
|
|
||||||
|
env.step(8) # Remove ACL rule from DMZ Outbound
|
||||||
|
assert firewall.dmz_outbound_acl.num_rules == 2
|
||||||
|
|
||||||
|
env.step(9) # Add ACL rule to External Inbound
|
||||||
|
assert firewall.external_inbound_acl.num_rules == 2
|
||||||
|
assert firewall.external_inbound_acl.acl[10].action.name == "DENY"
|
||||||
|
assert firewall.external_inbound_acl.acl[10].src_ip_address == IPv4Address("192.168.20.10")
|
||||||
|
assert firewall.external_inbound_acl.acl[10].dst_ip_address == IPv4Address("192.168.10.10")
|
||||||
|
assert firewall.external_inbound_acl.acl[10].dst_port == Port.POSTGRES_SERVER
|
||||||
|
assert firewall.external_inbound_acl.acl[10].src_port == Port.POSTGRES_SERVER
|
||||||
|
assert firewall.external_inbound_acl.acl[10].protocol == IPProtocol.ICMP
|
||||||
|
|
||||||
|
env.step(10) # Remove ACL rule from External Inbound
|
||||||
|
assert firewall.external_inbound_acl.num_rules == 1
|
||||||
|
|
||||||
|
env.step(11) # Add ACL rule to External Outbound
|
||||||
|
assert firewall.external_outbound_acl.num_rules == 2
|
||||||
|
assert firewall.external_outbound_acl.acl[1].action.name == "DENY"
|
||||||
|
assert firewall.external_outbound_acl.acl[1].src_ip_address == IPv4Address("192.168.20.10")
|
||||||
|
assert firewall.external_outbound_acl.acl[1].dst_ip_address == IPv4Address("192.168.0.10")
|
||||||
|
assert firewall.external_outbound_acl.acl[1].dst_port is None
|
||||||
|
assert firewall.external_outbound_acl.acl[1].src_port is None
|
||||||
|
assert firewall.external_outbound_acl.acl[1].protocol is None
|
||||||
|
|
||||||
|
env.step(12) # Remove ACL rule from External Outbound
|
||||||
|
assert firewall.external_outbound_acl.num_rules == 1
|
||||||
|
|
||||||
|
|
||||||
|
def test_firewall_port_disable_enable_integration():
|
||||||
|
"""
|
||||||
|
Test that NetworkPortEnableAction and NetworkPortDisableAction can form a request and that it is accepted by the simulation.
|
||||||
|
"""
|
||||||
|
with open(FIREWALL_ACTIONS_NETWORK, "r") as f:
|
||||||
|
cfg = yaml.safe_load(f)
|
||||||
|
|
||||||
|
env = PrimaiteGymEnv(game_config=cfg)
|
||||||
|
firewall = env.game.simulation.network.get_node_by_hostname("firewall")
|
||||||
|
|
||||||
|
assert firewall.dmz_port.enabled == True
|
||||||
|
|
||||||
|
env.step(13) # Disable Firewall DMZ Port
|
||||||
|
assert firewall.dmz_port.enabled == False
|
||||||
|
|
||||||
|
env.step(14) # Enable Firewall DMZ Port
|
||||||
|
assert firewall.dmz_port.enabled == True
|
||||||
|
|||||||
Reference in New Issue
Block a user