mirror of
https://github.com/TechnitiumSoftware/DnsServer.git
synced 2026-03-02 23:09:15 +00:00
MISP Connector for Technitium DNS Server
A plugin that pulls malicious domain names from MISP feeds and enforces blocking in Technitium DNS.
It maintains in-memory blocklists with disk-backed caching and periodically refreshes from the source.
Features
- Retrieves indicators of compromise (IOCs) aka. malicious domain names from a MISP server via its REST API.
- Handles paginated fetches with exponential backoff and retry on transient failures.
- Stores the latest blocklist in memory for fast lookup and persists it to disk for faster startup.
- Blocks matching DNS requests by returning NXDOMAIN or, for TXT queries when enabled, a human-readable blocking report.
- Optionally includes extended DNS error metadata.
- Configurable refresh interval and age window for which indicators are considered.
- Optional disabling of TLS certificate validation with explicit warning in logs.
Configuration
Supply a JSON configuration like the following:
{
"enableBlocking": true,
"mispServerUrl": "https://misp.example.com",
"mispApiKey": "YourMispApiKeyHere",
"disableTlsValidation": false,
"updateInterval": "2h",
"maxIocAge": "15d",
"allowTxtBlockingReport": true,
"paginationLimit": 5000,
"addExtendedDnsError": true
}
- You can disable the app without uninstalling.
- You can disable TLS validation for test instances and homelabs, but it is not recommended use this option in production.
- The
maxIocAgeoption is used for filtering IOCs wihlastSeenattributes on MISP. So, you can dynamically filter for recent campaigns. - The
allowTxtBlockingReportrewrites the response with a blocking report. - The
addExtendedDnsErroris useful when logs are exported to a SIEM. The blocking report gets added to EDNS payload of the package.
Acknowledgement
Thanks to everyone who has been part of or contributed to MISP Project for being an amazing resource.