Пример #1
0
    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.')
Пример #2
0
    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
Пример #5
0
    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
Пример #6
0
    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
Пример #7
0
    def _setup(cls):
        Configuration.proxy_setup(cls)
        cls.set_proxy_callback(func=Inspect.dns)

        Log.notice(f'{cls.__name__} initialization complete.')