def bypass(self, net): self.net = net #default_routes = self.default_gateway_check() self.gw = self.net["gateway"] self.gw_6 = self.net["gateway_6"] default_interface_4 = self.net["interface"] default_interface_6 = self.net["interface_6"] no_dnsmasq = config.settings["no_dnsmasq"] if self.gw != "None" or self.gw_6 != "None": if default_interface_6 != "None": self.interface = default_interface_6 elif default_interface_4 != "None": self.interface = default_interface_4 else: self.interface = "None" if config.settings["bypass"] == 1: bypass.create_cgroup( self.net["user"], self.net["group"], self.interface, gw=self.gw, gw_6=self.gw_6, default_int=self.interface, no_dnsmasq=no_dnsmasq ) self.kill_dnsmasq() #dnsmasq is needed to handle requests from bypass if no_dnsmasq == 0: dns_manager.dnsmasq( self.interface, "5354", config.settings["alt_dns1"], config.settings["alt_dns2"], "_bypass" ) elif config.settings["bypass"] == 0: try: bypass.delete_cgroup(self.interface) except AttributeError: pass
def bypass(self, net): self.net = net #default_routes = self.default_gateway_check() self.gw = self.net["gateway"] self.gw_6 = self.net["gateway_6"] default_interface_4 = self.net["interface"] default_interface_6 = self.net["interface_6"] if self.gw != "None" or self.gw_6 != "None": try: if default_interface_6 != "None": self.interface = default_interface_6 elif default_interface_4 != "None": self.interface = default_interface_4 else: self.interface = "None" if self.config["bypass"] == 1: bypass.create_cgroup(self.net["user"], self.net["group"], self.interface, gw=self.gw, gw_6=self.gw_6, default_int=self.interface) self.kill_dnsmasq() #dnsmasq is needed to handle requests from bypass dns_manager.dnsmasq(self.interface, "5354", self.config["alt_dns1"], self.config["alt_dns2"], "_bypass") elif self.config["bypass"] == 0: try: bypass.delete_cgroup(self.interface) except AttributeError: pass except KeyError: self.logger.warning( 'Config file corrupted - bypass option does not exist')
def bypass(self, ug): try: self.kill_pid(self.dnsmasq_pid) except AttributeError: pass default_gateway = self.default_gateway_check()["gateway"] if default_gateway != "None": try: if self.config["bypass"] == 1: pid = bypass.create_cgroup(ug["user"], ug["group"], self.default_interface, default_gateway) self.dnsmasq_pid = (pid, "dnsmasq") elif self.config["bypass"] == 0: try: bypass.delete_cgroup(self.default_interface) except AttributeError: pass except KeyError: self.logger.warning('Could not read all values from file')
def load_firewall(self, activate): try: with open('{}/config.json'.format(ROOTDIR), 'r') as c: self.config = json.load(c) except (FileNotFoundError, json.decoder.JSONDecodeError) as e: self.logger.error( '{}: Could not open config.json - loading default configuration' .format(e)) with open('{}/default_config.json'.format(ROOTDIR), 'r') as c: self.config = json.load(c) try: self.logger.setLevel(self.config["log_level"].upper()) except KeyError: pass try: if self.config["fw_gui_only"] == 0: activate = 1 except KeyError: activate = 1 try: if self.config["preserve_rules"] == 1: preserve = 1 else: preserve = 0 except KeyError: preserve = 0 try: if self.config["block_lan"] == 1: block_lan = 1 else: block_lan = 0 except KeyError: block_lan = 0 try: if activate == 1: firewall.save_iptables() firewall.apply_rules(self.config["firewall"], block_lan=block_lan, preserve=preserve) elif activate == 2: if self.config["fw_gui_only"] == 1: firewall.restore_iptables() firewall.apply_rules(0, block_lan=0, preserve=preserve) try: bypass.delete_cgroup(self.default_interface_4, self.default_interface_6) except AttributeError: pass self.disable_ipv6(self.config["ipv6_disable"]) except KeyError: self.logger.warning('Could not read all values from config file') #default dns is always set to the alternative servers self.dns = self.config["alt_dns1"] self.dns_2 = self.config["alt_dns2"] self.dns_bypass = self.config["alt_dns1"] self.dns_2_bypass = self.config["alt_dns2"]