51 lines
1.7 KiB
Markdown
51 lines
1.7 KiB
Markdown
# Cool dns
|
|
|
|
A simple dns server written in Go. It supports zonefile parsing, different zones based on IP and forwarding.
|
|
|
|
# Configuration
|
|
|
|
Example config file
|
|
```yaml
|
|
zones:
|
|
- zone: example.com. # Fully qualified domain name of the zone
|
|
file: zonefile.txt # Path to the zonefile to parse
|
|
|
|
- zone: example.com.
|
|
file: zonefile2.txt
|
|
acl: # What IPs can query the zone
|
|
- lan
|
|
|
|
acl: # List of ip filter rules
|
|
- name: vpn # Name of the rule
|
|
cidr: 10.0.0.0/24 # CIDR of the rule
|
|
- name: lan
|
|
cidr: 192.168.0.0/16
|
|
- name: local
|
|
cidr: 127.0.0.1/32
|
|
|
|
tls:
|
|
enable: true # Enable DNS over TLS
|
|
address: 0.0.0.0:8853 # What address and port to liste for tls connections
|
|
cert: cert.crt # Path to the certificate file
|
|
key: private.key # Path to the private key file
|
|
|
|
forward:
|
|
acl: # What IPs are allowed
|
|
- vpn
|
|
server: "8.8.8.8:53" # DNS server to forward to
|
|
|
|
address: 0.0.0.0:8053 # What address and port to listen on
|
|
|
|
blacklist: # What domains to block when forwarding
|
|
# URL of the blacklist
|
|
- url: https://raw.githubusercontent.com/anudeepND/blacklist/master/adservers.txt
|
|
format: host # Format of the blacklist: Hostfile
|
|
- url: https://blocklistproject.github.io/Lists/alt-version/ads-nl.txt
|
|
format: line # Format: One domain per line
|
|
|
|
lego: # Support for Lego http provider. See https://go-acme.github.io/lego/dns/httpreq/
|
|
enable: true
|
|
address: :8080
|
|
username: lego
|
|
secret: "133742069ab"
|
|
``` |