Giter Site home page Giter Site logo

texnomic / securedns Goto Github PK

View Code? Open in Web Editor NEW
303.0 16.0 47.0 19.47 MB

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

License: MIT License

HTML 1.67% C# 78.73% CSS 11.75% JavaScript 4.13% Solidity 3.32% PowerShell 0.39%
dns dns-protocol dns-server dns-over-https dns-over-tls dnscrypt dns-client dns-record dnssec blockchain

securedns's Introduction

SecureDNS

Twitter Follow YouTube Video Views Slack Facebook

Building a Secure, Modern, Cross-Platform & Cross-Architecture DNS Server Using .NET 7.0.

SecureDNS Project aims to implements all secure DNS Protocols regardless of being standardized or widely adopted; while maintaining backward compatibility with unsecure DNS-Over-UDP Protocol via Reverse Proxy.

SecureDNS Project is implemented using modern Clean-Architecture Patterns.

Table Of Content

  1. Releases
  2. Protocols
  3. Integrations
  4. Resource Records
  5. Platforms
  6. Architecture
  7. Launch
  8. Dependencies
  9. Donations
  10. Supported-By

Releases

  • GitHub Release
  • GitHub Downloads
  • NuGet
  • NuGet
  • NuGet
  • NuGet
  • NuGet
  • NuGet
  • NuGet
  • NuGet
  • NuGet
  • NuGet
  • NuGet
  • NuGet

Protocols

Integrations

Platforms

  • Windows Client
  • Windows Server
  • macOS
  • Alpine
  • Debian
  • Ubuntu
  • Fedora
  • RHEL
  • openSUSE
  • SUSE

Architectures

  • ✔ x64 on Windows, macOS, and Linux
  • ✔ x86 on Windows, macOS, and Linux
  • ✔ ARM32 on Windows and Linux
  • ✔ ARM64 on Windows and Linux

Launch

The Project offically launched within my talk for Cairo Security Camp on September 22nd, 2019.

YouTube Video Views PowerPoint

This talk will cover the DNS protocol since its inception in 1986 and taking a deep-dive into the inherit lack of security at its core design and how all modern operating systems using insecure standards, Then we will explain alternative secure implementation like DNS Over TLS and DNS Over HTTP/S. Then we will shift-gears to developing an all-new modern DNS Server Reference-Implementation with a myriad of possibilities for retaking control like Black/Sink-holing, Threat Hunting/Intelligence and way more! Finally, we will launch a GitHub-based Open-Source Project containing DNS Server Reference-Implementation for the First-Time & Exclusively in Cairo Security Camp!

Dependencies

  1. HangFire
  2. MoreLINQ
  3. Electron.NET
  4. BinarySerializer
  5. FlexLabs.Upsert
  6. Telerik UI for Blazor
  7. Hangfire Extension Plugins
  8. Entity Framework Extensions
  9. Nethereum
  10. Polly
  11. Terminal UI
  12. Command Line Parser
  13. Async Enumerable
  14. Colorful Console
  15. Blazorise
  16. HtmlAgilityPack
  17. LibSodium

Donations

  • PayPal

Supported-By

JetBrains Syncfusion AdvancedInstaller

securedns's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar texnomic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

securedns's Issues

PURE NetCore

I forked the project on May 6, since it could be a good project for .Core things.
Found two commits related and was only in a day interval after my pulling.
2e6bdfc
1659a0b
It looks weird.
Now I think it's a good idea to evaluate this library: https://github.com/TimothyMeadows/AeadChaCha20Poly1305.NetCore
which refers to https://github.com/TimothyMeadows/ChaCha20.NetCore and https://github.com/TimothyMeadows/Poly1305.NetCore
A scrupulous banker knows the difference from NSec and has ambition to make this project great again.
Please find my codes in Go-lang related: https://github.com/AZ-X/dnscrypt-proxy-r2/blob/master/dnscrypt-proxy/unclassified/xsecretbox.go

Occurred While Resolving Message.

Hello,

The application works very well. but I have a little problem like this. Most of the time I see the following errors on the terminal, is this normal? There is no other output than these lines.

Thanks

[12:30:57 ERR] System.TimeoutException: The operation has timed out.
   at Texnomic.SecureDNS.Protocols.DNSCrypt.ResolveAsync(Byte[] Query) in D:\Repositories\Texnomic.SecureDNS\Texnomic.SecureDNS.Protocols\DNSCrypt.cs:line 217
   at Texnomic.SecureDNS.Protocols.Protocol.ResolveAsync(IMessage Query) in D:\Repositories\Texnomic.SecureDNS\Texnomic.SecureDNS.Protocols\Protocol.cs:line 42
   at Texnomic.DNS.Servers.Middlewares.ResolverMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\ResolverMiddleware.cs:line 63
   at Texnomic.DNS.Servers.Middlewares.ENSMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\ENSMiddleware.cs:line 36
   at Texnomic.DNS.Servers.Middlewares.FilterListsMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\FilterListsMiddleware.cs:line 68
   at Texnomic.DNS.Servers.Middlewares.HostTableMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\HostTableMiddleware.cs:line 91
   at PipelineNet.ChainsOfResponsibility.AsyncResponsibilityChain`2.Execute(TParameter parameter)
   at Texnomic.DNS.Servers.ProxyServer.ResolveAsync() in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\ProxyServer.cs:line 205 Occurred While Resolving Message.
System.TimeoutException: The operation has timed out.
   at Texnomic.SecureDNS.Protocols.DNSCrypt.ResolveAsync(Byte[] Query) in D:\Repositories\Texnomic.SecureDNS\Texnomic.SecureDNS.Protocols\DNSCrypt.cs:line 217
   at Texnomic.SecureDNS.Protocols.Protocol.ResolveAsync(IMessage Query) in D:\Repositories\Texnomic.SecureDNS\Texnomic.SecureDNS.Protocols\Protocol.cs:line 42
   at Texnomic.DNS.Servers.Middlewares.ResolverMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\ResolverMiddleware.cs:line 63
   at Texnomic.DNS.Servers.Middlewares.ENSMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\ENSMiddleware.cs:line 36
   at Texnomic.DNS.Servers.Middlewares.FilterListsMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\FilterListsMiddleware.cs:line 68
   at Texnomic.DNS.Servers.Middlewares.HostTableMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\HostTableMiddleware.cs:line 91
   at PipelineNet.ChainsOfResponsibility.AsyncResponsibilityChain`2.Execute(TParameter parameter)
   at Texnomic.DNS.Servers.ProxyServer.ResolveAsync() in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\ProxyServer.cs:line 205
[12:30:57 ERR] System.TimeoutException: The operation has timed out.
   at Texnomic.SecureDNS.Protocols.DNSCrypt.ResolveAsync(Byte[] Query) in D:\Repositories\Texnomic.SecureDNS\Texnomic.SecureDNS.Protocols\DNSCrypt.cs:line 217
   at Texnomic.SecureDNS.Protocols.Protocol.ResolveAsync(IMessage Query) in D:\Repositories\Texnomic.SecureDNS\Texnomic.SecureDNS.Protocols\Protocol.cs:line 42
   at Texnomic.DNS.Servers.Middlewares.ResolverMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\ResolverMiddleware.cs:line 63
   at Texnomic.DNS.Servers.Middlewares.ENSMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\ENSMiddleware.cs:line 36
   at Texnomic.DNS.Servers.Middlewares.FilterListsMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\FilterListsMiddleware.cs:line 68
   at Texnomic.DNS.Servers.Middlewares.HostTableMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\HostTableMiddleware.cs:line 91
   at PipelineNet.ChainsOfResponsibility.AsyncResponsibilityChain`2.Execute(TParameter parameter)
   at Texnomic.DNS.Servers.ProxyServer.ResolveAsync() in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\ProxyServer.cs:line 205 Occurred While Resolving Message.
System.TimeoutException: The operation has timed out.
   at Texnomic.SecureDNS.Protocols.DNSCrypt.ResolveAsync(Byte[] Query) in D:\Repositories\Texnomic.SecureDNS\Texnomic.SecureDNS.Protocols\DNSCrypt.cs:line 217
   at Texnomic.SecureDNS.Protocols.Protocol.ResolveAsync(IMessage Query) in D:\Repositories\Texnomic.SecureDNS\Texnomic.SecureDNS.Protocols\Protocol.cs:line 42
   at Texnomic.DNS.Servers.Middlewares.ResolverMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\ResolverMiddleware.cs:line 63
   at Texnomic.DNS.Servers.Middlewares.ENSMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\ENSMiddleware.cs:line 36
   at Texnomic.DNS.Servers.Middlewares.FilterListsMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\FilterListsMiddleware.cs:line 68
   at Texnomic.DNS.Servers.Middlewares.HostTableMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\HostTableMiddleware.cs:line 91
   at PipelineNet.ChainsOfResponsibility.AsyncResponsibilityChain`2.Execute(TParameter parameter)

Errors

I get Fatals and Errors.
Also every query I make has timeouts before resolving

NSLOOKUP

> google.com
Server:  localhost
Address:  127.0.0.1

DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
Non-authoritative answer:
Name:    google.com
Addresses:  2a00:1450:4001:80e::200e
          142.250.185.110

SDNS OUTPUT

       ________                                         _____
       ___  __/_____ ____  _________ ______ _______ ___ ___(_)_______
       __  /   _  _ \__  |/_/__  __ \_  __ \__  __ `__ \__  / _  ___/
       _  /    /  __/__>  <  _  / / // /_/ /_  / / / / /_  /  / /__
       /_/     \___/ /_/|_|  /_/ /_/ \____/ /_/ /_/ /_/ /_/   \___/

       ________                                   ________ _____   __________
       __  ___/_____ ___________  _______________ ___  __ \___  | / /__  ___/
       _____ \ _  _ \_  ___/_  / / /__  ___/_  _ \__  / / /__   |/ / _____ \
       ____/ / /  __// /__  / /_/ / _  /    /  __/_  /_/ / _  /|  /  ____/ /
       /____/  \___/ \___/  \__,_/  /_/     \___/ /_____/  /_/ |_/   /____/


[12:43:55 INF] Server Started with 12 Threads. Listening On 127.0.0.1:53
[12:43:55 INF] Application started. Press Ctrl+C to shut down.
[12:43:55 INF] Hosting environment: Production
[12:43:55 INF] Content root path: C:\Program Files\Texnomic\Texnomic SecureDNS Terminal\
[12:44:37 FTL] Fatal {"LineNumber": 2, "LinePosition": 49, "SourceUri": "", "Message": "'src' is an unexpected token. The expected token is '='. Line 2, position 49.", "TargetSite": "Void MoveNext()", "StackTrace": "   at Texnomic.FilterLists.FilterListsClient.GetListsAsync() in D:\\Repositories\\Texnomic.SecureDNS\\Texnomic.FilterLists\\FilterListsClient.cs:line 39\r\n   at Texnomic.DNS.Servers.Middlewares.FilterListsMiddleware.GetFilterListsAsync(Int32[] IDs) in D:\\Repositories\\Texnomic.SecureDNS\\Texnomic.DNS.Servers\\Middlewares\\FilterListsMiddleware.cs:line 125\r\n   at Texnomic.DNS.Servers.Middlewares.FilterListsMiddleware.InitializeAsync(Int32[] IDs) in D:\\Repositories\\Texnomic.SecureDNS\\Texnomic.DNS.Servers\\Middlewares\\FilterListsMiddleware.cs:line 76", "Data": [], "InnerException": null, "HelpLink": null, "Source": "Texnomic.FilterLists", "HResult": -2146232000, "$type": "XmlException"} Occurred While Initializing FilterLists.
[12:44:40 INF] Resolved {"ID": 5, "MessageType": "Response", "OperationCode": "Query", "AuthoritativeAnswer": "Cache", "Truncated": false, "RecursionDesired": true, "RecursionAvailable": true, "Zero": 0, "AuthenticatedData": false, "CheckingDisabled": false, "ResponseCode": "NoError", "QuestionsCount": 1, "Questions": [{"Domain": "google.com", "Type": "A", "Class": "Internet", "$type": "Question"}], "AnswersCount": 1, "Answers": [{"TimeToLive": "00:02:29", "Record": {"Address": "142.250.186.142", "$type": "A"}, "Domain": "google.com", "Type": "A", "Class": "Internet", "$type": "Answer"}], "AuthorityCount": 0, "Authority": [], "AdditionalCount": 0, "Additional": [], "$type": "Message"} For google.com with NoError To 127.0.0.1:57916.
[12:44:40 INF] Resolved {"ID": 6, "MessageType": "Response", "OperationCode": "Query", "AuthoritativeAnswer": "Cache", "Truncated": false, "RecursionDesired": true, "RecursionAvailable": true, "Zero": 0, "AuthenticatedData": false, "CheckingDisabled": false, "ResponseCode": "NoError", "QuestionsCount": 1, "Questions": [{"Domain": "google.com", "Type": "AAAA", "Class": "Internet", "$type": "Question"}], "AnswersCount": 1, "Answers": [{"TimeToLive": "00:03:45", "Record": {"Address": "2a00:1450:4001:80f::200e", "$type": "AAAA"}, "Domain": "google.com", "Type": "AAAA", "Class": "Internet", "$type": "Answer"}], "AuthorityCount": 0, "Authority": [], "AdditionalCount": 0, "Additional": [], "$type": "Message"} For google.com with NoError To 127.0.0.1:57918.
[12:44:41 ERR] System.TimeoutException: The operation has timed out.
   at Texnomic.SecureDNS.Protocols.DNSCrypt.ResolveAsync(Byte[] Query) in D:\Repositories\Texnomic.SecureDNS\Texnomic.SecureDNS.Protocols\DNSCrypt.cs:line 192
   at Texnomic.SecureDNS.Protocols.Protocol.ResolveAsync(IMessage Query) in D:\Repositories\Texnomic.SecureDNS\Texnomic.SecureDNS.Protocols\Protocol.cs:line 37
   at Texnomic.DNS.Servers.Middlewares.ResolverMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\ResolverMiddleware.cs:line 47
   at Texnomic.DNS.Servers.Middlewares.ENSMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\ENSMiddleware.cs:line 29
   at Texnomic.DNS.Servers.Middlewares.FilterListsMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\FilterListsMiddleware.cs:line 66
   at Texnomic.DNS.Servers.Middlewares.HostTableMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\HostTableMiddleware.cs:line 84
   at PipelineNet.ChainsOfResponsibility.AsyncResponsibilityChain`2.Execute(TParameter parameter)
   at Texnomic.DNS.Servers.ProxyServer.ResolveAsync() in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\ProxyServer.cs:line 205 Occurred While Resolving Message.
System.TimeoutException: The operation has timed out.
   at Texnomic.SecureDNS.Protocols.DNSCrypt.ResolveAsync(Byte[] Query) in D:\Repositories\Texnomic.SecureDNS\Texnomic.SecureDNS.Protocols\DNSCrypt.cs:line 192
   at Texnomic.SecureDNS.Protocols.Protocol.ResolveAsync(IMessage Query) in D:\Repositories\Texnomic.SecureDNS\Texnomic.SecureDNS.Protocols\Protocol.cs:line 37
   at Texnomic.DNS.Servers.Middlewares.ResolverMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\ResolverMiddleware.cs:line 47
   at Texnomic.DNS.Servers.Middlewares.ENSMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\ENSMiddleware.cs:line 29
   at Texnomic.DNS.Servers.Middlewares.FilterListsMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\FilterListsMiddleware.cs:line 66
   at Texnomic.DNS.Servers.Middlewares.HostTableMiddleware.Run(IMessage Message, Func`2 Next) in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\Middlewares\HostTableMiddleware.cs:line 84
   at PipelineNet.ChainsOfResponsibility.AsyncResponsibilityChain`2.Execute(TParameter parameter)
   at Texnomic.DNS.Servers.ProxyServer.ResolveAsync() in D:\Repositories\Texnomic.SecureDNS\Texnomic.DNS.Servers\ProxyServer.cs:line 205

Also if I add filterlist 1734... that is Badmojr PRO and make a DNS query for something that is listed on, I would expect response as 0.0.0.0 instead of real IP.

Any suggestions?
Thank you 😄

Linux-Arm64 package is not for Arm64

Hi!

It looks like the Linux-Arm64 package is for 32-bit ARM, not ARM64:

$ file Texnomic.SecureDNS.Terminal
Texnomic.SecureDNS.Terminal: ELF 32-bit LSB executable, ARM

So, unfortunately, it doesn't run on Linux/aarch64.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.