def _setup(cls): dns_sigs = Configuration.load_signatures() # en_dns | dns | tld | keyword cls.signatures = SIGNATURES(set(), dns_sigs, {}, []) Configuration.proxy_setup(cls) cls.set_proxy_callback(func=Inspect.dns) Log.notice(f'{cls.__name__} initialization complete.')
def _reset_flag(self, cache_type): setattr(self, f'clear_{cache_type}', False) with fo.ConfigurationManager('dns_server') as dnx: dns_settings = dnx.load_configuration() dns_settings['dns_server']['cache'][cache_type] = False dnx.write_configuration(dns_settings) Log.notice(f'{cache_type.replace("_", " ")} has been cleared.')
def udp(self): if (not self.is_enabled and not self.DNSServer.udp_fallback): return TEN_SEC with self.DNSServer.server_lock: for server in self.DNSServer.dns_servers: if (server[self._protocol]): continue # not checking if server/proto is known up if self._udp_reachable(server['ip']): server[PROTO.UDP] = True Log.notice('DNS server {} has recovered on {}.'.format( server['ip'], self._protocol.name)) write_configuration(self.DNSServer.dns_servers._asdict(), 'dns_server_status') return THIRTY_SEC
def tls(self): if (not self.is_enabled): return TEN_SEC with self.DNSServer.server_lock: for secure_server in self.DNSServer.dns_servers: if (secure_server[self._protocol]): continue # not checking if server/proto is known up if self._tls_reachable(secure_server): secure_server[PROTO.DNS_TLS] = True, self.DNSServer.tls_up = True Log.notice('DNS server {} has recovered on {}.'.format( secure_server['ip'], self._protocol.name)) if (self.DNSServer.tls_up): write_configuration(self.DNSServer.dns_servers._asdict(), 'dns_server_status') return THIRTY_SEC
def udp(self): if (not self.is_enabled and not self.DNSServer.udp_fallback): return TEN_SEC DNSServer = self.DNSServer with DNSServer.server_lock: for server in DNSServer.dns_servers: # no check needed if server/proto is known up if (server[self._protocol]): continue # if server responds to connection attempt, it will be marked as available if self._udp_reachable(server['ip']): server[PROTO.UDP] = True Log.notice('DNS server {} has recovered on {}.'.format( server['ip'], self._protocol.name)) write_configuration(self.DNSServer.dns_servers._asdict(), 'dns_server_status') return THIRTY_SEC
def tls(self): if (not self.is_enabled): return TEN_SEC DNSServer = self.DNSServer with DNSServer.server_lock: for secure_server in DNSServer.dns_servers: # no check needed if server/proto is known up if (secure_server[self._protocol]): continue # if server responds to connection attempt, it will be marked as available if self._tls_reachable(secure_server): secure_server[PROTO.DNS_TLS] = True, DNSServer.tls_up = True Log.notice('DNS server {} has recovered on {}.'.format( secure_server['ip'], self._protocol.name)) # will write server status change individually as its unlikely both will be down at same time write_configuration(DNSServer.dns_servers._asdict(), 'dns_server_status') return THIRTY_SEC
def _setup(cls): Configuration.proxy_setup(cls) cls.set_proxy_callback(func=Inspect.dns) Log.notice(f'{cls.__name__} initialization complete.')