ISTS22_pfSense/rule_gen.py

58 lines
1.4 KiB
Python
Executable File

#! /usr/bin/python3
import json
RULES = {
"template":{"URL": "http://{0}/api/v1/firewall/rule",
"TAG":1,
"DATA":{"type":"block",
"interface":"wan",
"ipprotocol":"inet",
"protocol":"tcp",
"src":"",
"srcport":"any",
"dst":"any",
"dstport":"any",
"apply":False
}
},
"ip_ranges": [{
"template": "172.16.{0}.0/24",
"low": 1,
"high": 15
}, {
"template": "10.{0}.1.0/24",
"low": 1,
"high": 50
},{
"template": "192.168.{0}.0/16",
"low": 16,
"high": 50
}
]
}
def main():
rules = []
for ip_range in RULES["ip_ranges"]:
for x in range(ip_range["low"], ip_range["high"]+1):
ip = ip_range["template"].format(x)
rule = RULES["template"]
rule["DATA"]["src"] = ip
rules.append(json.dumps(rule))
with open("rules.json","w") as file:
file.write("[")
for i in range(len(rules)):
file.write(str(rules[i]))
if i +1 != len(rules):
file.write(",\n")
file.write("]")
if __name__ == "__main__":
main()