Skip to content

Terminal Edition Configuration

Mohamed Samy edited this page Jun 2, 2020 · 9 revisions

Introduction

The following Sections applies to AppSettings.json file bundled with SecureDNS Terminal Edition releases started from v0.2 Alpha.


Table Of Sections

  1. Seq
  2. Proxy Server
  3. DNSCrypt Protocol
  4. DNS-Over-HTTPs Protocol
  5. DNS-Over-TLS Protocol
  6. DNS-Over-UDP Protocol
  7. Ethereum Name Service Protocol
  8. FilterLists Middleware
  9. HostTable Middleware
  10. Terminal Options
  11. Proxy Responsibility Chain

Seq

Support for Seq comes from Serilog's Seq Sink. Accordingly, under Serilog's WriteTo object you can find Seq's Args of serverUrl:

Note
Check Seq Installation Wiki Page For Detailed Instructions.
Object Default Value Description
serverUrl http://127.0.0.1:5341 Seq Server HTTP EndPoint
"Serilog": {
    "WriteTo": [
      {
        "Name": "Seq",
        "Args": {
          "serverUrl": "http://127.0.0.1:5341",
          "compact": true
        }
      }
    ]

Support for Serilog's Console Sink. Accordingly, under Serilog's WriteTo object you can find sink Name of Console:

"Serilog": {
    "WriteTo": [
      {
        "Name": "Console"
      }
    ]

Proxy Server

SecureDNS built-in DoU to DoH or DoT Proxy Server.

Object Default Value Description
Address 127.0.0.1 UDP Lisenter Binded IP Address
Port 53 UDP Lisenter Binded Port
Threads Logical CPU Count Number of Concurrent Server Threads
Note
Removing Threads Property will trigger Default Value which is Number of Logical CPU Cores detected in Runtime.
  "Proxy Server": {
    "Address": "127.0.0.1",
    "Port": 53,
    "Threads": 8
  }

DNSCrypt Protocol

SecureDNS built-in DNSCrypt Protocol module.

Object Default Value Description
Stamp sdns://AQYAAAAAAAAADTkuOS45LjEwOjg0NDMgZ8hHuMh1jNEgJFVDvnVnRt803x2EwAuMRwNo34Idhj4ZMi5kbnNjcnlwdC1jZXJ0LnF1YWQ5Lm5ldA DNSCrypt Stamp
Timeout 2000 Number of Miliseconds Before DNS Resolution Failure
Note
DNS Stamp must be DNSCrypt Stamp.
  "DNSCrypt Protocol": {
    "Stamp": "sdns://AQYAAAAAAAAADTkuOS45LjEwOjg0NDMgZ8hHuMh1jNEgJFVDvnVnRt803x2EwAuMRwNo34Idhj4ZMi5kbnNjcnlwdC1jZXJ0LnF1YWQ5Lm5ldA",
    "Timeout": 2000
  }

DNS-Over-HTTPs Protocol

SecureDNS built-in DNS-Over-HTTPs Protocol module.

Object Default Value Description
Uri https://dns.google/ Public Resolver Uri EndPoint
PublicKey null SSL Certificate Public Key
AllowRedirects FALSE Enable or Disable HTTP Redirection
Retries 3 Number of HTTP Request Retries Before DNS Resolution Failure
WebProxy null HTTP Web Proxy Uri EndPoint
Note
Setting PublicKey value will automatically enable SSL Certificate Pinning Feature.
  "HTTPs Protocol": {
    "Uri": "https://dns.google/",
    "PublicKey": null,
    "AllowRedirects": false,
    "Retries": 3,
    "WebProxy": null
  }

DNS-Over-TLS Protocol

SecureDNS built-in DNS-Over-TLS Protocol module.

Object Default Value Description
Host dns.google Public Resolver FQDN
Port 853 DoT Port
Timeout 2000 Number of Miliseconds Before DNS Resolution Failure
PublicKey null SSL Certificate Public Key
Note
Setting PublicKey value will automatically enable SSL Certificate Pinning Feature.
  "TLS Protocol": {
    "Host": "dns.google",
    "Port": 853,
    "Timeout": 2000,
    "PublicKey": null
  }

DNS-Over-UDP Protocol

SecureDNS built-in DNS-Over-UDP Protocol module.

Object Default Value Description
Host 1.1.1.1 Public Resolver IP Address
Port 53 DoU Port
Timeout 2000 Number of Miliseconds Before DNS Resolution Failure
Note
SecureDNS Supports Hot-Reload Feature on this Section.
  "UDP Protocol": {
    "Host": "1.1.1.1",
    "Port": 53,
    "Timeout": 2000
  }

Ethereum Name Service Protocol

SecureDNS built-in Ethereum Name Service Protocol module.

Object Default Value Description
Web3 https://cloudflare-eth.com/ Ethereum Web3 Uri EndPoint
  "ENS Protocol": {
    "Web3": "https://cloudflare-eth.com/"
  }

FilterLists Middleware

SecureDNS built-in FilterLists Integration Middleware.

Object Default Value Description
IDs 10, 685 Array of FilterList IDs
Notes
SecureDNS Only Supports Host-File Syntax Lists.
SecureDNS Supports Hot-Reload Feature on this Section.
  "FilterLists Middleware": {
    "IDs": [
      10,
      685
    ]
  }

HostTable Middleware

SecureDNS built-in Host-Table (aka Hosts-File) Middleware.

Object Default Value Description
TimeToLive 30 TTL in Seconds of A Record
HostTable Objects Array of FQDN & IPv4 Address KeyPaire Objects
Note
SecureDNS Supports Hot-Reload Feature on this Section.
  "HostTable Middleware": {
    "TimeToLive": 30,
    "HostTable": {
      "dns.google": "8.8.8.8",
      "one.one.one.one": "1.1.1.1"
    }
  }

Terminal Options

SecureDNS Terminal Edition specific options.

Object Default Value Description
Mode CLI Operating Mode. Options: CLI, GUI or Daemon.
Protocol DNSCrypt Secure DNS Protocol. Options: TLS, HTTPs, DNSCrypt
Note
Daemon Mode Enables Supports for Both Windows Service & Linux Daemon depending on OS automatic detection.
  "Terminal Options": {
    "Mode": "CLI",
    "Protocol": "DNSCrypt"
  }

Proxy Responsibility Chain

SecureDNS Composable Pipeline of Middlewares handling each DNS Query Message.

Object Default Value Description
Middlewares Object Sorted Array of Middleware Names.
Note
Middlewares Must Be sorted according to Priority & Chain-Breaking properties.
 "Proxy Responsibility Chain": {
    "Middlewares": [
      "HostTableMiddleware",
      "FilterListsMiddleware",
      "ENSMiddleware",
      "ResolverMiddleware"
    ]
  }