All Projects → fardog → Secureoperator

fardog / Secureoperator

Licence: apache-2.0
A DNS-protocol proxy for DNS-over-HTTPS providers, such as Google and Cloudflare

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Secureoperator

Dnsserver
Technitium DNS Server
Stars: ✭ 603 (+150.21%)
Mutual labels:  dns, dns-server, privacy
Pihole Unbound
Guide to setup Unbound recursive DNS resolver with Pi-Hole. With additional configs for speed and security!! 🚀🔒
Stars: ✭ 165 (-31.54%)
Mutual labels:  dns, dns-server, privacy
Trust Dns
A Rust based DNS client, server, and resolver
Stars: ✭ 2,155 (+794.19%)
Mutual labels:  dns, dns-server
Unbound Docker
Unbound DNS Server Docker Image
Stars: ✭ 147 (-39%)
Mutual labels:  dns, dns-server
Nativepayload dns
C# code for Transferring Backdoor Payloads by DNS Traffic and Bypassing Anti-viruses
Stars: ✭ 228 (-5.39%)
Mutual labels:  dns, dns-server
Sliver
Adversary Simulation Framework
Stars: ✭ 1,348 (+459.34%)
Mutual labels:  dns, dns-server
Knot
A mirrored repository
Stars: ✭ 138 (-42.74%)
Mutual labels:  dns, dns-server
Routedns
DNS stub resolver, proxy and router with support for DoT, DoH, DoQ, and DTLS
Stars: ✭ 153 (-36.51%)
Mutual labels:  dns, dns-server
Tor Router
A SOCKS, HTTP and DNS proxy for distributing traffic across multiple instances of Tor
Stars: ✭ 69 (-71.37%)
Mutual labels:  dns, dns-server
Blokada
The official repo for Blokada for Android and iOS.
Stars: ✭ 2,427 (+907.05%)
Mutual labels:  dns, privacy
Partyloud
A simple tool to generate fake web browsing and mitigate tracking
Stars: ✭ 170 (-29.46%)
Mutual labels:  dns, privacy
Dcompass
[WIP] High-performance programmable DNS server aiming at robustness, speed, and flexibility
Stars: ✭ 174 (-27.8%)
Mutual labels:  dns, dns-server
Dnoise
DNS noise generator that looks at your network activity and blends in. Requires pi-hole.
Stars: ✭ 88 (-63.49%)
Mutual labels:  dns, privacy
1hosts
DNS filter-/blocklists | safe. private. clean. browsing!
Stars: ✭ 85 (-64.73%)
Mutual labels:  dns, privacy
Nogo
A cross-platform network-wide ad/site blocker with a simple web control panel.
Stars: ✭ 143 (-40.66%)
Mutual labels:  dns, privacy
Noisy
Simple random DNS, HTTP/S internet traffic noise generator
Stars: ✭ 1,208 (+401.24%)
Mutual labels:  dns, privacy
Pdns
PowerDNS Authoritative, PowerDNS Recursor, dnsdist
Stars: ✭ 2,575 (+968.46%)
Mutual labels:  dns, dns-server
Simpledns
A very simple and small DNS Server to help understanding the protocol basics.
Stars: ✭ 62 (-74.27%)
Mutual labels:  dns, dns-server
Ioc2rpz
ioc2rpz is a place where threat intelligence meets DNS.
Stars: ✭ 67 (-72.2%)
Mutual labels:  dns, dns-server
Dnsguide
A guide to writing a DNS Server from scratch in Rust
Stars: ✭ 2,226 (+823.65%)
Mutual labels:  dns, dns-server

secureoperator

Build Status

A DNS-protocol proxy for DNS-over-HTTPS: allows you to run a server on your local network which responds to DNS queries, but requests records across the internet using HTTPS.

It's known to work with the following providers:

  • Google - Well tested and configured by default
  • Cloudflare (Beta) - May be used by passing the --cloudflare flag
  • Quad9 (Beta) - May be used by passing the `--quad9' flag

If you're interested in a more roll-your-own-DNS system, you might look at dnoxy, a sibling project to secureoperator which allows running your own DNS-over-HTTPS servers.

Installation

You may retrieve binaries from the releases page, or install using go get:

go get -u github.com/fardog/secureoperator/cmd/secure-operator

Then either run the binary you downloaded, or the built package:

secure-operator

This will start a DNS server listening on TCP and UDP at :53. For usage information, run secure-operator --help.

Note: Running a service on port 53 requires administrative privileges on most systems.

Docker

There is a Docker image available for secureoperator:

docker pull fardog/secureoperator

The latest tag will always be the build from the master branch. If you wish to use one of the stable releases, use its version tag when pulling, e.g.:

docker pull fardog/secureoperator:4  # latest of major version
docker pull fardog/secureoperator:4.0  # latest of minor version
docker pull fardog/secureoperator:4.0.1  # exact version

Version Compatibility

This package follows semver for its tagged releases. The master branch is always considered stable, but may break API compatibility. If you require API stability, either use the tagged releases or mirror on gopkg.in:

go get -u gopkg.in/fardog/secureoperator.v4

Caching

secureoperator does not perform any caching; each request to it causes a matching request to the upstream DNS-over-HTTPS server to be made. It's recommended that you place secureoperator behind a caching DNS server such as dnsmasq on your local network.

An simple example setup is described on the wiki. Please feel free to contribute additional setups if you are running secureoperator in your environment.

Security

Note that while DNS requests are made over HTTPS, this does not imply "secure"; consider the following:

  • You must trust the upstream provider with your requests; for your chosen provider, see:
  • The lookup for the HTTP endpoint must happen in some regard, although how this is handled is up to you:
    • The system DNS resolver is used to look up the endpoint (default)
    • You provide a list of DNS servers to use for the endpoint lookup
    • You provide the IP address(es) to the endpoint; and no unencrypted DNS lookup will be performed. However if the addresses change while the service is running, you will need to restart the service to provide new addresses.

Information on the usage of these options is available with secure-operator --help.

Help Wanted

secureoperator could be greatly enhanced by community contributions! The following areas could use work:

  • More thorough unit tests
  • Installable packages for your favorite Linux distributions
  • Documentation on deploying secureoperator to a local network

Known Issues

Cloudflare is not fully tested yet; it should work for common cases, however:

  • EDNS is not supported; this is an intentional choice by Cloudflare, which means any EDNS setting you provide when using Cloudflare as a provider will be silently ignored.

For a production environment, the Google provider (default) is your best option today. If you're brave, please test Cloudflare and report any issues!

Acknowledgments

This owes heavily to the following work:

License

   Copyright 2018 Nathan Wittstock

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].