VeraDNS is an on-premise, enterprise-grade DNS security platform. Unlike cloud DNS services, it runs entirely on your own infrastructure — giving your organisation complete control over DNS traffic, filtering policy, and audit data, with nothing ever leaving your network.
Network-wide filtering
Block malware, phishing and trackers at the DNS layer for every device — no endpoint agents required.
RBAC, enforced at the API
Owner, Admin and Viewer roles with permissions checked server-side — not hidden in the UI.
Full audit trail
Every config change, login and rule edit is logged with before/after detail, exportable for compliance.
Encrypted DNS
DNS, DoH, DoT, DoQ and DNSSEC validation — enforce encrypted transport for internal clients.
How it works
When a device on your network sends a DNS request, that request is routed to VeraDNS instead of a public resolver. VeraDNS evaluates it against your blocklists and policies, then either resolves it (returning the IP) or blocks it (returning a non-routable answer). This happens before any connection is established — at sub-millisecond speed.
VeraDNS is designed to run alongside your existing network filtering, not replace it. DNS filtering catches what packet filtering misses (and vice versa) — defence in depth.
Data sovereignty by design
VeraDNS runs on any Linux host with Docker. Your DNS queries, configuration and audit logs are never transmitted to external servers. You own your data — guaranteed by architecture, not by policy.
Ports 53 (UDP/TCP), 443 (DoH/console) and 853 (DoT) reachable from your clients
Installation
Install with the bootstrap script:
bash
curl -sSL https://install.veradns.io | bash
Or run it manually with Docker Compose:
bash
docker pull veradns/veradns:latest
docker compose up -d
On hosts running systemd-resolved, port 53 may already be in use. Free it first: sudo systemctl stop systemd-resolved and disable its stub listener (see the Linux tab).
First start — setup wizard
Open http://<your-server-ip>:3000 in a browser. The wizard guides you through:
1
Admin interface binding — the interface and port the web console listens on (default: all interfaces, port 3000).
2
DNS service binding — the interface VeraDNS receives queries on (default: all interfaces, port 53).
3
Administrator credentials — create the first Owner account. Store these in your password manager.
4
Finish — click Complete. VeraDNS is now serving DNS and the dashboard is live.
Run as a service & update
Enable automatic start on boot, and update in place when a new release ships (your config persists in a named volume):
bash
sudo systemctl enable --now veradns # start on boot
docker compose pull && docker compose up -d # update in place
Blocklists, user rules and user accounts live in a persistent volume outside the container, so they survive updates and re-creates.
VeraDNS scales from a single branch resolver to a multi-region, high-availability fleet. Choose the topology that matches your network size, uptime requirements and internal-zone needs.
1. Single resolver
One VeraDNS instance serves all clients on a site. Ideal for small offices and single-location teams. Point clients (or the router/DHCP) at the resolver's IP, and set a public fallback (e.g. 1.1.1.1) as secondary so the network degrades gracefully during maintenance.
A public secondary resolver will bypass filtering when used. For enforced filtering, prefer the HA pair below and remove public fallbacks, or block outbound port 53 to anything but VeraDNS at the firewall.
2. High-availability pair
Two (or more) VeraDNS nodes share a virtual IP (VIP) via keepalived (VRRP) or an anycast route. Clients target the VIP; if the active node fails, the standby takes over with no client reconfiguration. Configuration is replicated between nodes so policy stays consistent.
Each location runs a local resolver (or HA pair) for low latency and site survivability, while a central console manages policy and aggregates logs. This mirrors how distributed enterprises run recursive DNS — local resolution, central control. Internal/private zones are handled with conditional forwarding (below).
Conditional forwarding & split-horizon
Forward queries for your internal domains to your authoritative DNS (e.g. Active Directory) while everything else is filtered and resolved upstream. Configure this at Settings → DNS Settings → Conditional forwarding:
corp.internal → 10.0.0.10 (AD / internal authoritative)
10.in-addr.arpa → internal reverse-DNS server
everything else → filtered, then your chosen upstream
Sizing guidance
Approximate capacity per node. Real throughput depends on cache hit-rate, blocklist size and encryption overhead — size up for headroom.
Point your devices or router at VeraDNS as their DNS server. Configuring the router is fastest — it automatically covers every device on the network, including those you can't change manually.
Router/DHCP configuration is recommended. It covers smart TVs, IoT devices and game consoles that have no manual DNS setting — with zero per-device setup.
Router — covers all devices
Log into your router's admin interface (usually 192.168.1.1 or 192.168.0.1). Find DNS settings — typically under WAN, Internet, or LAN → DHCP → DNS — and set the primary DNS to your VeraDNS IP.
For enforced filtering, leave the secondary blank or set it to a second VeraDNS node — not a public resolver.
Router interfaces vary by manufacturer. Most consumer routers expose this under Advanced → DHCP → DNS. Consult your router manual if needed.
Windows 11
1
Open Settings → Network & Internet.
2
Click your active connection, then Edit next to DNS server assignment.
3
Switch to Manual, enable IPv4, and set Preferred DNS to your VeraDNS IP.
4
For DoH, choose On (automatic template) and enter your DoH endpoint. Click Save.
macOS
1
Open System Settings → Network.
2
Select your interface, click Details, then the DNS tab.
3
Click +, add your VeraDNS IP, then OK → Apply.
For system-wide DoH/DoT, deploy a signed DNS configuration profile via MDM.
Android 9+
Android's Private DNS (DNS-over-TLS) is the recommended method and applies system-wide:
1
Open Settings → Network & Internet → Private DNS.
2
Select Private DNS provider hostname.
3
Enter your VeraDNS DoT hostname (e.g. dns.yourcompany.internal), then Save.
iOS / iPadOS
The recommended method is a DNS configuration profile (applies system-wide), distributed by your administrator via MDM:
1
Go to Settings → General → VPN & Device Management.
2
Install the VeraDNS DNS profile, tap Install, and follow the prompts.
Wi-Fi only: Settings → Wi-Fi → (i) → Configure DNS → Manual, then add your VeraDNS IP.
On many distros /etc/resolv.conf is managed by NetworkManager. For a permanent change, configure DNS in the NetworkManager connection rather than editing the file directly.
DNS filtering intercepts DNS requests and decides whether to resolve or block them based on your policy. VeraDNS sits as a filtering proxy between your devices and the upstream resolver.
Why filter at the DNS layer?
Every connection — web, app, or background service — begins with a DNS lookup. Filtering at this layer is extremely efficient: VeraDNS can block an entire domain before any packet is sent, regardless of device type, app or protocol. Some threats (such as CNAME-cloaked trackers) can only be stopped at the DNS level.
The decision pipeline
Receive the DNS query from a client.
Check the domain against active blocklists, user rules and threat intelligence.
If blocked → return a non-routable answer (0.0.0.0 / NXDOMAIN). The connection never starts.
If allowed → forward to the configured upstream resolver and return the result (cached when possible).
Every decision is recorded in the Query Log with domain, client, status, latency and the matched rule.
Upstream resolvers
Allowed queries are forwarded to your chosen upstream. Configure one or more (for redundancy) at Settings → DNS Settings → Upstream DNS:
Beyond managed lists, write your own rules using the widely-adopted adblock-style DNS syntax:
user-rules
||example.com^ # block example.com and all subdomains
@@||allowed.example.com^ # allowlist exception (overrides blocks)
127.0.0.1 ads.example.com # rewrite to a specific IP
||track.*^$dnstype=A # block only A-record lookups
Blocklists are curated sets of rules that tell VeraDNS which domains to block. They're maintained by the community and security researchers, and VeraDNS keeps them updated automatically.
Activating a blocklist
1
Open Filters → Blocklists.
2
Browse by category — General, Regional, Security, Other.
3
Click Add next to any list to enable it.
4
VeraDNS downloads and applies the rules immediately; active lists move to the top.
Categories
General
VeraDNS Base Filter
Composite of ad, tracking and social-media filters, optimised for DNS-level blocking.
general
Popup & Popunder Hosts
Blocks domains that open new windows. Compiled from multiple community sources.
general
Regional
AdRules DNS (CN)
Ad and tracker blocking tuned for the Chinese region.
regionalzh-CN
EasyList Thailand
Region-specific ad filtering for Thai sites and services.
regionalth
Security
Phishing Protection (PhishTank / OpenPhish)
Known phishing domains from PhishTank and OpenPhish feeds.
security
Anti-Malware List
DNS-level malware and C2 domain blocking, updated continuously.
security
Custom blocklists
Add any blocklist available as a URL at Filters → Blocklists → Custom → Add custom blocklist — give it a name, the URL, and an optional description.
Each plan caps the total number of filtering rules. If a newly added list pushes you over the limit it is disabled automatically, and a dashboard notification appears.
Beyond blocklists, VeraDNS applies continuously-updated threat intelligence to stop phishing, malware, command-and-control and data-exfiltration at the resolver — before any connection is made.
Threat categories
Enable categories at Settings → Security. Each maps to live intelligence feeds and heuristic detection:
Category
What it catches
Default severity
Malware
Domains hosting or distributing malicious payloads.
High
Phishing & scam
Credential-harvesting and fraudulent look-alike sites.
High
C2 / botnet
Command-and-control callbacks used by infected hosts.
High
DNS tunnelling / exfiltration
Abnormal query patterns used to smuggle data out over DNS.
High
Cryptomining
Browser and host-based coin-mining pools.
Medium
Newly-registered / newly-seen
Domains created or first observed in the last N days — a strong attack signal.
Medium
Typosquatting / look-alike
Domains imitating brands via typos or swapped characters.
Medium
Parked / suspicious
Dormant domains commonly weaponised later.
Low
Newly-registered domain (NRD) filtering
Attackers frequently register a domain hours before launching a campaign. VeraDNS checks the registration/first-seen date of each queried domain and blocks those younger than your configured threshold (default 30 days).
NRD filtering can occasionally flag a legitimate just-launched service. Allowlist it with a user rule: @@||newservice.com^
Typosquatting & DGA detection
VeraDNS scores domains for similarity to known brands (e.g. gooogle.com, paypa1.com) and for algorithmically-generated patterns (high-entropy DGA names used by malware). High-confidence matches are blocked at the DNS level. Tune sensitivity at Settings → Security → Heuristics.
DNS encryption
Encrypt DNS between clients and VeraDNS to prevent interception and tampering on the local network:
DNS-over-HTTPS (DoH) — DNS inside HTTPS on 443. Configure at Settings → Encryption.
A real-time view of every DNS request on your network. Filter, search, block or allow domains directly from the log — without leaving the page.
What each entry shows
Domain — the queried name
Client — device name and source IP (with ASN where available)
Status — ALLOWED, BLOCKED or CACHED
Record type — A, AAAA, CNAME, MX, HTTPS, etc.
Latency — round-trip resolution time in milliseconds
Matched rule — the blocklist or user rule that caused a block
Block or allow inline
Expand any entry and use Block domain / Unblock domain to update your User Rules instantly. Add user rule lets you write a custom rule (e.g. allow a subdomain while blocking the root).
Filtering & retention
Filter by status, record type, client, time window or domain search. Retention depends on your plan:
Plan
Query & audit log retention
SIEM streaming
Team
30 days
—
Business
90 days
REST export
Enterprise
Custom
Real-time stream
Disabling query logging (Settings → Log & Statistics) also disables the Statistics dashboard. Only do so if required by your data-retention policy.
Invite team members with scoped permissions. Each member logs in individually — no shared credentials, no shared sessions — and every role is enforced at the API, not just the interface.
RBAC is available on Business and Enterprise plans. Team accounts include a single administrator. Enterprise adds SSO (SAML 2.0) and SCIM provisioning.
Roles
Role
Access level
Typical use
Owner
Full access including billing and user management. One per account.
Account holder.
Admin
Modify DNS settings, manage blocklists and servers, invite members.
IT managers, MSPs.
Viewer
Read-only — view settings, query log and statistics; no changes.
Compliance, security analysts.
Inviting members
1
Go to Settings → Organisation → Members.
2
Click Add member, enter their work email, and select Admin or Viewer.
3
They receive an email to set up their account; status shows Active once accepted.
Revoking access
Change a role or remove a member at any time. Revocation invalidates their session immediately — they're logged out on their next request. All changes are written to the Audit Log.
A tamper-evident record of every administrative action — configuration changes, logins, rule edits and authentication events — with full before/after traceability.
Detail — what changed, with before/after values where applicable
Export & compliance
Export as CSV/JSON from Audit Log → Export, or stream to your SIEM via the REST API. The audit log supports ISO 27001, SOC 2 and internal compliance evidence.
Ask your account manager for the compliance export template, which maps audit events to NIST 800-53 and CIS v8 controls.
Automate VeraDNS and stream its data into your existing stack. The REST API exposes query logs, audit events, blocklists and rules; Business and Enterprise plans add SIEM streaming, SSO and SCIM.
Authentication
Generate an API key at Settings → API. Pass it as a Bearer token. Keys inherit the role of the member who created them and every call is recorded in the audit log.
Stream or page query records (filter by status, client, time).
/api/v1/audit-log
GET
Retrieve administrative audit events.
/api/v1/rules
GET · POST · DELETE
Read and manage user rules.
/api/v1/blocklists
GET · POST
List and add blocklist subscriptions.
/api/v1/stats
GET
Aggregated counters for dashboards.
SIEM streaming
Export query and audit data in JSON or CSV, compatible with Splunk, Microsoft Sentinel and Elastic. Enterprise plans support a real-time push stream so events arrive in your SIEM within seconds.
Identity (Enterprise)
SSO — SAML 2.0 and OIDC for centralised login.
SCIM 2.0 — automated user provisioning and de-provisioning from your IdP.
LDAP / Active Directory — directory-based authentication and group mapping.
API rate limits apply per key. Responses include X-RateLimit-Remaining and Retry-After headers — back off when throttled.
Common questions about deployment, capabilities and configuration.
What does "on-premise DNS proxy" mean for my organisation?
VeraDNS runs entirely within your own infrastructure — on-premise, private cloud or your own VMs. No queries, configuration or audit logs are transmitted to external servers. Data sovereignty is guaranteed by architecture, not policy.
How does VeraDNS differ from a cloud DNS service?
Cloud DNS routes your queries through external servers, creating a third-party dependency and potential visibility into your activity. VeraDNS resolves within your perimeter — you retain full control over blocklists, policy and query data, with no dependency on external availability.
Which DNS protocols are supported?
Standard DNS (port 53), DoH, DoT, DoQ and DNSSEC validation. Encrypted protocols can be enforced for internal clients to prevent query interception.
Can VeraDNS integrate with our SIEM or identity provider?
Yes — see API & Integrations. Business and Enterprise plans export logs to Splunk, Sentinel and Elastic; Enterprise adds SSO (SAML 2.0), OIDC, SCIM and LDAP/AD.
A legitimate domain is being blocked. How do I fix it?
Add an allowlist exception at Filters → User Rules:
user-rules
@@||yourdomain.com^
You can also unblock directly from the Query Log entry.
Can I run VeraDNS in high availability?
Yes — see Deployment Topologies. Enterprise plans support multi-site and HA with automatic failover via a shared VIP or anycast.
Who do I contact for support?
Email support@veradns.io, or use the Contact Sales form on the main site. Business and Enterprise plans include priority support with guaranteed response times.