SecureDNS Versions Save

Secure, Modern, Fully-Featured, All-In-One Cross-Architecture & Cross-Platform DNS Server Using .NET 7.0

v0.4-alpha

1 year ago

This is the Alpha 4 Release for Terminal Edition of SecureDNS Server.

This is considered a Milestone release as it includes new rewritten components.

Deploying As Portable Executable:

  1. Install Datalust's Seq (Optional)
  2. For Linux Only: sudo apt install libsodium-dev
  3. Download & Run Binary.
  4. Configure AppSettings.json File As Per Wiki Page.
  5. Update DNS Name-Server.

Deploying As Linux Daemon:

Check Daemonization Under Linux Wiki Page.

Binaries & Targeting:

Check Runtime Identifiers Wiki Page.

Release Notes:

  1. All Binaries are Portable & Self-Contained.
  2. No Known-Issues so-far!

New Features:

  1. Migrating to .NET 6.0.
  2. Rewriting UDP & TCP Server with new .NET APIs.
  3. Changing AppSettings.json File Location To C:\ProgramData\<Username>\SecureDNS - Terminal Edition.
  4. Various Bug Fixes & Performance Improvements.

Supported Operating Systems:

Check Operating Systems Wiki Page.

Supported Processor Architecture:

Check Processor Architecture Wiki Page.

Seq Queries:

Check Seq Queries Wiki Page.

Full Change Log:

Check https://github.com/Texnomic/SecureDNS/compare/v0.3-alpha...v0.4-alpha

v0.3-alpha

3 years ago

This is the Alpha 3 Release for Terminal Edition of SecureDNS Server.

This is considered a Milestone release as it includes new infrastructure libraries.

Deploying As Portable Executable:

  1. Install Datalust's Seq (Optional)
  2. For Linux Only: sudo apt install libsodium-dev
  3. Download & Run Binary.
  4. Configure AppSettings.json File As Per Wiki Page.
  5. Update DNS Name-Server.

Deploying As Linux Daemon:

Check Daemonization Under Linux Wiki Page.

Binaries & Targeting:

Check Runtime Identifiers Wiki Page.

Release Notes:

  1. All Binaries are Portable & Self-Contained.
  2. No Known-Issues so-far!

New Features:

  1. Supports DNSCrypt v2.0 Standard-Compliant Public Resolvers.
  2. Supports Ethereum Name Service Middleware.
  3. New & Custom DNS Serialization Library which is 15x Times Better!

Supported Operating Systems:

Check Operating Systems Wiki Page.

Supported Processor Architecture:

Check Processor Architecture Wiki Page.

Seq Queries:

Check Seq Queries Wiki Page.

v0.2-alpha

4 years ago

This is the Alpha 2 Release for Terminal Edition of SecureDNS Server.

This is considered a Milestone release as it includes many of the Core Features that were promised on Cairo Security Camp 2019 Session.

Deployment Steps:

  1. Install Datalust's Seq
  2. Configure AppSettings.json File As Per Wiki Page.
  3. Download, Extract & Execute Binary.
  4. Update DNS Name-Server.

Release Notes:

  1. All Binaries are Portable & Self-Contained.
  2. No Known-Issues so-far.

Supported Features:

  1. Any DoT &/or DoH Standard-Compliant Public Resolver.
  2. Host-Table aka Hosts-File Middleware.
  3. FilterLists Integration Middleware.
  4. Composable Middlewares Pipeline.
  5. Multiple Operating Modes: Terminal CLI, Terminal GUI, Windows Service & Linux Daemon.
  6. Enhanced Structured Logs Integration with Seq.

Supported Operating Systems:

Check Operating Systems Wiki Page.

Supported Processor Architecture:

Check Processor Architecture Wiki Page.

Seq Queries:

Check Seq Queries Wiki Page.

v0.1-alpha

4 years ago

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.