Skip to content

Terminal Edition - v0.1 Alpha

Pre-release
Pre-release
Compare
Choose a tag to compare
@Texnomic Texnomic released this 03 Jan 15:03
· 331 commits to master since this release

This is the Terminal Edition of SecureDNS Server for interested early adopters.

Deployment Steps:

  1. Install Datalust's Seq

    # Note: Elevated PowerShell Core
    
    # Option 1: MSI Setup
    curl "https://getseq.blob.core.windows.net/releases/Seq-5.1.3200.msi" --output .
    .\Seq-5.1.3200.msi /quiet
    Invoke-Item "$Env:Programfiles\Seq\Admin\Seq.Administration.exe"
    
    # Option 2: Docker
    docker run -e ACCEPT_EULA=Y -p 5341:80 datalust/seq:latest
  2. Download & Execute Binary.

    # Note: Elevated PowerShell Core
    
    # Option 1: Terminal GUI
    .\Texnomic.SecureDNS.CLI-[OS]-[Arch]
    
    # Option 2: Terminal CLI
    .\Texnomic.SecureDNS.CLI-[OS]-[Arch] -binding "0.0.0.0:53" -seq "http://127.0.0.1:5341"
  3. Update DNS Server(s).

    # Note: Elevated PowerShell Core
    
    # Setting DNS Servers
    Get-NetAdapter -Physical | ForEach-Object { Set-DnsClientServerAddress $_.Name -ServerAddresses ("127.0.0.1") }
    
    # Resetting DNS Servers
    Get-NetAdapter -Physical | ForEach-Object { Set-DnsClientServerAddress $_.Name -ResetServerAddresses }

Release Notes:

  1. Server Runs in Proxy Mode: From Standard DNS-Over-UDP To DNS-Over-HTTP/s.
  2. Server Utilize Google's Public Resolver aka 8.8.8.8.
  3. Server Threads defaults to number of Logical Processors.
  4. SSL Certificate-Pinning Feature is Disable.
  5. Binaries are Portable & Self-Contained.

Platforms Supported:

  • Alpine: 3.10+
  • Debian: 9+
  • Ubuntu: 16.04+
  • Fedora: 29+
  • RHEL: 6+
  • openSUSE: 15+
  • SUSE Enterprise Linux (SLES): 12 SP2+
  • macOS: 10.13+
  • Windows Client: 7, 8.1, 10 (1607+)
  • Windows Server: 2012 R2+

Chips Supported:

  • x64 on Windows, macOS, and Linux
  • x86 on Windows
  • ARM32 on Windows and Linux
  • ARM64 on Linux (kernel 4.14+)

Seq Queries:

Example 1: A Records

select Coalesce(Answer.Answers[0].Name, Query.Questions[0].Name) as Domain, Coalesce(Answer.Answers[0].Type, Query.Questions[0].Type) as Type, Answer.Answers[0].Record.Address.IP as IP, RemoteEndPoint from stream where StartsWith(@Message, 'Resolved') and Type = 'A'

Example 2: CNAME Records

select Coalesce(Answer.Answers[0].Name, Query.Questions[0].Name) as Domain, Coalesce(Answer.Answers[0].Type, Query.Questions[0].Type) as Type, Answer.Answers[0].Record.Domain.Name as CNAME, RemoteEndPoint from stream where StartsWith(@Message, 'Resolved') and Type = 'CNAME'

Known Issues:

On Windows:

  • Port 53 already in use.
    • Disable & Stop Internet Connection Sharing (ICS) Service:
    # Elevated PowerShell Core
    
    Set-Service -Name 'Internet Connection Sharing (ICS)' -StartupType Disabled
    Stop-Service -DisplayName 'Internet Connection Sharing (ICS)'
    # Elevated Command Prompt
    
    sc config "SharedAccess" start=disabled
    sc stop "SharedAccess"
    

On Linux:

  • IOControl not supported on platforms other than windows.
    • Fixed in the new binaries.