def add_port(port: str, ruletype: str) -> None: """ The function adds a port to the list of open ports. """ rules = RulesHandler() rulelist = rules.get_rules_for_web(ruletype) rulelist.append(port) rules.save_new_rules(ruletype, rulelist)
def remove_forwarding(source_port: str, dest_port: str, ruletype: str) -> None: """ TODO: Docu """ rules = RulesHandler() rulelist = rules.get_rules_for_web("forwarding") rulelist.remove("{}:{}:{}".format(ruletype, source_port, dest_port)) rules.save_new_rules("forwarding", rulelist)
def remove_port(port: str, ruletype: str) -> None: """ The function deletes a port from the list of open ports. """ rules = RulesHandler() rulelist = rules.get_rules_for_web(ruletype) rulelist.remove(port) rules.save_new_rules(ruletype, rulelist)
def remove_port(entry: dict) -> bool: """Delete a port from the list of open ports.""" rules = RulesHandler() rulelist = rules.get_rules_for_web(entry["ruletype"]) for i in range(len(rulelist)): if rulelist[i]['port'] == entry["port"]: del rulelist[i] break rules.save_new_rules(entry["ruletype"], rulelist) return True
def custom_save() -> str: """the function saves the custom rules into the corresponding rulesfile""" utils = Webutils() rules = RulesHandler() if utils.check_login(request) is True: for key, value in request.form.items(): key = str(key) + "" # just for ignoring the warning rulelist = value.split("\n") rules.save_new_rules("custom", rulelist) return custom(True) return login()
def add_port(entry: dict) -> bool: """Add a port to the list of open ports.""" rules = RulesHandler() ruletype = entry["ruletype"] rulelist = rules.get_rules_for_web(ruletype) entry.pop("ruletype", None) # we dont't want the ruletype to be saved duplicate = False for i in range(len(rulelist)): if rulelist[i]['port'] == entry["port"]: duplicate = True break if duplicate is False: rulelist.append(entry) rules.save_new_rules(ruletype, rulelist) return True return False
def blacklist_save() -> str: """Save the blacklist rules into the corresponding rulesfile.""" utils = Webutils() rules = RulesHandler() if utils.check_login(request) is True: ipaddress = "" rulelist = rules.get_rules_for_web("blacklist") for key, value in request.form.items(): if key == "ipadr": # then a new ip address is blacklisted ipaddress = value rulelist.append(ipaddress) rules.save_new_rules("blacklist", rulelist) else: # then a old ip address is removed ipaddress = key rulelist.remove(ipaddress) rules.save_new_rules("blacklist", rulelist) return blacklist(True) return login()
def whitelist_save(): """ the function saves the whitelist rules into the corresponding rulesfile """ utils = Webutils() rules = RulesHandler() if utils.check_login() is True: ipaddress = "" rulelist = rules.get_rules_for_web("whitelist") for key, value in request.form.items(): if key == "ipadr": # then a new ip address is whitelisted ipaddress = value rulelist.append(ipaddress) rules.save_new_rules("whitelist", rulelist) else: # then a old ip address is removed ipaddress = key rulelist.remove(ipaddress) rules.save_new_rules("whitelist", rulelist) return whitelist(True) return login("", None)
class TestRulesHandler(unittest.TestCase): """TODO: Doku.""" def setUp(self) -> None: """TODO: Doku.""" self.rules = RulesHandler() def test_get_current_rules(self) -> None: """TODO: Doku.""" ports: list = [] entry: dict = {} entry["description"] = "test" entry["port"] = "80" entry["ssh"] = False ports.append(entry) entry = {} entry["description"] = "test" entry["port"] = "443" entry["ssh"] = False ports.append(entry) self.rules.save_new_rules("tcp", ports) self.rules.apply_new_rules() self.assertEqual(self.rules.get_current_rules("tcp"), ports) def test_get_new_rules(self) -> None: """TODO: Doku.""" ports: list = [] entry: dict = {} entry["description"] = "test" entry["port"] = "80" entry["ssh"] = False ports.append(entry) entry = {} entry["description"] = "test" entry["port"] = "443" entry["ssh"] = False ports.append(entry) self.rules.save_new_rules("tcp", ports) self.assertEqual(self.rules.get_new_rules("tcp"), ports) def test_backup_current_rules(self) -> None: """TODO: Doku.""" ports: list = [] entry: dict = {} entry["description"] = "test" entry["port"] = "80" entry["ssh"] = False ports.append(entry) entry = {} entry["description"] = "test" entry["port"] = "443" entry["ssh"] = False ports.append(entry) self.rules.save_new_rules("tcp", ports) self.rules.apply_new_rules() self.rules.backup_current_rules() self.assertEqual(self.rules.get_backup_rules("tcp"), ports) def test_apply_new_rules(self) -> None: """TODO: Doku.""" ports: list = [] entry: dict = {} entry["description"] = "test" entry["port"] = "80" entry["ssh"] = False ports.append(entry) entry = {} entry["description"] = "test" entry["port"] = "443" entry["ssh"] = False ports.append(entry) self.rules.save_new_rules("tcp", []) self.rules.apply_new_rules() self.assertEqual(self.rules.get_current_rules("tcp"), []) self.rules.save_new_rules("tcp", ports) self.rules.apply_new_rules() self.assertEqual(self.rules.get_current_rules("tcp"), ports) def test_get_rules_for_web(self) -> None: """TODO: Doku.""" ports: list = [] entry: dict = {} entry["description"] = "test" entry["port"] = "80" entry["ssh"] = False ports.append(entry) entry = {} entry["description"] = "test" entry["port"] = "443" entry["ssh"] = False ports.append(entry) self.rules.save_new_rules("tcp", ports) self.rules.apply_new_rules() self.assertEqual(self.rules.get_rules_for_web("tcp"), ports) ports = [] entry = {} entry["description"] = "test" entry["port"] = "80" entry["ssh"] = False ports.append(entry) entry = {} entry["description"] = "test" entry["port"] = "443" entry["ssh"] = False ports.append(entry) entry = {} entry["description"] = "test" entry["port"] = "8080" entry["ssh"] = False ports.append(entry) self.rules.save_new_rules("tcp", ports) self.assertEqual(self.rules.get_rules_for_web("tcp"), ports) def test_rollback_from_backup(self) -> None: """TODO: Doku.""" ports: list = [] entry: dict = {} entry["description"] = "test" entry["port"] = "80" entry["ssh"] = False ports.append(entry) entry = {} entry["description"] = "test" entry["port"] = "443" entry["ssh"] = False ports.append(entry) self.rules.save_new_rules("tcp", ports) self.rules.apply_new_rules() self.rules.backup_current_rules() self.rules.save_new_rules("tcp", []) self.rules.apply_new_rules() self.assertEqual(self.rules.get_current_rules("tcp"), []) self.rules.rollback_from_backup() self.assertEqual(self.rules.get_current_rules("tcp"), ports) def test_diff_new_current(self) -> None: """TODO: Doku.""" ports: list = [] entry: dict = {} entry["description"] = "test" entry["port"] = "123" entry["ssh"] = False ports.append(entry) entry = {} entry["description"] = "test" entry["port"] = "1234" entry["ssh"] = False ports.append(entry) self.rules.save_new_rules("tcp", ports) self.rules.apply_new_rules() ports = [] entry = {} entry["description"] = "test" entry["port"] = "1337" entry["ssh"] = False ports.append(entry) self.rules.save_new_rules("tcp", ports) self.assertTrue(self.rules.diff_new_current("tcp")) self.rules.apply_new_rules() self.assertFalse(self.rules.diff_new_current("tcp")) def test_save_new_rules(self) -> None: """TODO: Doku.""" ports: list = [] entry: dict = {} entry["description"] = "test" entry["port"] = "80" entry["ssh"] = False ports.append(entry) entry = {} entry["description"] = "test" entry["port"] = "443" entry["ssh"] = False ports.append(entry) self.rules.save_new_rules("tcp", ports) self.assertEqual(self.rules.get_new_rules("tcp"), ports)
def remove_port(port, ruletype): """the function removes a port from the opened port rules file""" rules = RulesHandler() rulelist = rules.get_rules_for_web(ruletype) rulelist.remove(port) rules.save_new_rules(ruletype, rulelist)
def add_port(port, ruletype): """the function adds a port to the opened port rules file""" rules = RulesHandler() rulelist = rules.get_rules_for_web(ruletype) rulelist.append(port) rules.save_new_rules(ruletype, rulelist)
class TestRulesHandler(unittest.TestCase): """ TODO: Doku """ def setUp(self): self.rules = RulesHandler() self.rules.rules_firstrun() def test_firstrun(self): """ TODO: Doku """ self.rules.rules_firstrun() def test_get_current_rules(self): """ TODO: Doku """ write_into_file("{}/current/tcp".format(self.rules.rulesfolder), """80 443 """) self.assertEqual(self.rules.get_current_rules("tcp"), ["80", "443"]) def test_get_new_rules(self): """ TODO: Doku """ write_into_file("{}/new/tcp".format(self.rules.rulesfolder), """80 443 """) self.assertEqual(self.rules.get_new_rules("tcp"), ["80", "443"]) def test_backup_current_rules(self): """ TODO: Doku """ write_into_file("{}/current/tcp".format(self.rules.rulesfolder), """80 443 """) write_into_file("{}/backup/tcp".format(self.rules.rulesfolder), "") self.rules.backup_current_rules() self.assertEqual( file_get_contents("{}/backup/tcp".format(self.rules.rulesfolder)), """80 443 """) def test_apply_new_rules(self): """ TODO: Doku """ write_into_file("{}/new/tcp".format(self.rules.rulesfolder), """80 443 """) write_into_file("{}/current/tcp".format(self.rules.rulesfolder), "") self.assertEqual(self.rules.get_current_rules("tcp"), []) self.rules.apply_new_rules() self.assertEqual(self.rules.get_current_rules("tcp"), ["80", "443"]) def test_rollback_from_backup(self): """ TODO: Doku """ write_into_file("{}/backup/tcp".format(self.rules.rulesfolder), """80 443 """) write_into_file("{}/current/tcp".format(self.rules.rulesfolder), "") self.assertEqual(self.rules.get_current_rules("tcp"), []) self.rules.rollback_from_backup() self.assertEqual(self.rules.get_current_rules("tcp"), ["80", "443"]) def test_get_rules_for_web(self): """ TODO: Doku """ write_into_file("{}/current/tcp".format(self.rules.rulesfolder), """80 443 """) self.assertEqual(self.rules.get_rules_for_web("tcp"), ["80", "443"]) write_into_file("{}/new/tcp".format(self.rules.rulesfolder), """80 443 8080 """) self.assertEqual(self.rules.get_rules_for_web("tcp"), ["80", "443", "8080"]) def test_save_new_rules(self): """ TODO: Doku """ self.rules.save_new_rules("tcp", ["80", "443"]) self.assertEqual( file_get_contents("{}/new/tcp".format(self.rules.rulesfolder)), "80\n443")
class TestEasywall(unittest.TestCase): """TODO: Doku.""" def setUp(self) -> None: """TODO: Doku.""" prepare_configuration() self.cfg = Config(CONFIG_PATH) self.easywall = Easywall(self.cfg) self.rules = RulesHandler() def tearDown(self) -> None: """TODO: Doku.""" restore_configuration() def test_init(self) -> None: """TODO: Doku.""" self.easywall = Easywall(self.cfg) def test_apply_not_accepted(self) -> None: """TODO: Doku.""" self.easywall.apply() def test_apply_accepted(self) -> None: """TODO: Doku.""" write_into_file(self.easywall.acceptance.filename, "true") self.easywall.apply() def test_apply_blacklist(self) -> None: """TODO: Doku.""" blacklist = ["192.168.233.254", "1.2.4.5", "2001:db8:a0b:12f0::1"] self.rules.save_new_rules("blacklist", blacklist) self.rules.apply_new_rules() self.easywall.apply_blacklist() def test_apply_whitelist(self) -> None: """TODO: Doku.""" whitelist = ["192.168.233.254", "1.2.4.5", "2001:db8:a0b:12f0::1"] self.rules.save_new_rules("whitelist", whitelist) self.rules.apply_new_rules() self.easywall.apply_whitelist() def test_apply_rules_port_range(self) -> None: """TODO: Doku.""" udp: list = [] entry: dict = {} entry["description"] = "test" entry["port"] = "8080:8085" entry["ssh"] = False udp.append(entry) self.rules.save_new_rules("udp", udp) self.rules.apply_new_rules() self.easywall.apply_rules("udp") def test_apply_custom_rules(self) -> None: """TODO: Doku.""" custom = ["1234"] self.rules.save_new_rules("custom", custom) self.rules.apply_new_rules() self.easywall.apply_custom_rules() def test_apply_ssh_port(self) -> None: """TODO: Doku.""" tcp: list = [] entry: dict = {} entry["description"] = "SSH" entry["port"] = "22" entry["ssh"] = True tcp.append(entry) self.rules.save_new_rules("tcp", tcp) self.rules.apply_new_rules() self.easywall.apply_rules("tcp") def test_apply_forwarding(self) -> None: """TODO: Doku.""" forwarding = ["tcp:1234:1235"] self.rules.save_new_rules("forwarding", forwarding) self.rules.apply_new_rules() self.easywall.apply_forwarding()