Code Monkey home page Code Monkey logo

dnsecure's Introduction

DNSecure

iOS 14+, iPadOS 14+, and macOS 11+ have supported encrypted DNS (e.g. DNS-over-TLS (DoT) and DNS-over-HTTPS (DoH)), but they don't have a native UI for enabling it. To solve that, DNSecure was created. DNSecure is a configuration tool of DoT and DoH.

This app uses the new DNS Settings API, so it requires iOS 14+, iPadOS 14+, or macOS 11+.

Installation (iOS/iPadOS)

Download on the App Store or TestFlight Beta

Installation (macOS)

Download on the Mac App Store or TestFlight Beta

How to use (iOS/iPadOS)

  1. Select a DNS server you like, or add another one
  2. Enable "Use This Server"
  3. Open the Settings
  4. Go to "General" > "VPN & Network" > "DNS"
  5. "Automatic" is selected by default, so select "DNSecure"

How to use (macOS 13+)

  1. Select a DNS server you like, or add another one
  2. Enable "Use This Server"
  3. Open the System Settings
  4. Go to Network settings and click "Filters"
  5. Enable "DNSecure"

How to use (macOS 12)

  1. Select a DNS server you like, or add another one
  2. Enable "Use This Server"
  3. Open the System Preferences
  4. Go to Network settings
  5. Select "DNSecure" and click "..." button on the bottom
  6. Click "Make Service Active"
  7. Click "Apply" button

References

dnsecure's People

Contributors

comzeradd avatar decodism avatar kkebo 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

dnsecure's Issues

macOS support

Technically, DNSecure is possible to support macOS. I'm currently working on this.

DNSecure formula for `brew`?

Hello everyone; thank you for this superb application for iOS and macOS.

I wondered, is there any interest in maybe making available DNSecure not only via App Store, but also via brew?

Thank you very much in advance.

some advise

  1. add shortcuts method which help change dns for certain app autoly when open them
  2. Give examples of dns rules,I need to automaticly change dns for visiting different domain/ip,however I still not get the point.
  3. Add whole opthion apple gives, apple give an option for dns over ip,but our app only afford https and Tls.

User selectable port possible?

There are DoT servers offering different ports, maybe useful to be implemented into DNSecure, if possible.
Here an example:

IPv4 address: 146.255.56.98
IPv6 address: 2a02:1b8:10:234::2
TCP port: 443 or 853
Name for TLS verification: dot1.applied-privacy.net
TLSA record: available
TCP Fast Open support: no

Crash on adding a new server

Steps to reproduce

  1. Open DNSecure
  2. Do not select any server
  3. Tap "+" button
  4. Tap "DNS-over-TLS"

Version

DNSecure 1.1.0 (8) (TestFlight beta)

The "Activate" link on the sidebar

I want to open the Settings app's DNS settings page automatically by tapping the "Activate" link on the sidebar, but it just opens the Settings app currently.

Refreshing status issue

ContentView.updateStatus() is currently called on .onAppear() of the sidebar. However, this doesn't address the following case.

Steps to reproduce:

  1. Open DNSecure
  2. Tap a server
  3. Tap "Use This Server" on the detail view
  4. Tap "Activate" on the bottom of the sidebar, then the Settings app will be opened automatically
  5. Select DNSecure as a DNS provider
  6. Go back to DNSecure

Expected behavior:

It shows "Active" on the bottom of the sidebar.

Actual behavior:

It shows "Inactive", but once I hide and show the sidebar, it will be refreshed.

Difference between iOS and iPadOS versions

is there a difference between the two app versions?

With the iPhone cannot connect to a DoT server, the same server with DoH works OK.
The iPad connects the same DoT server without any problem. This is not a new issue, just forgot to report

Oblivious DoH protocol

Would be nice to implement into DNSecure app also the Apple / Cludflare newly developed ODoH protocol.
At the moment seems that such DNS server is provided by Cloudflare only, but other will follow soon. I think.

Here’s how it works:
ODoH wraps a layer of encryption around the DNS query and passes it through a proxy server, which acts as a go-between the internet user and the website they want to visit. Because the DNS query is encrypted, the proxy can’t see what’s inside, but acts as a shield to prevent the DNS resolver from seeing who sent the query to begin with.
Summary by Bruce Schneier

https://blog.cloudflare.com/oblivious-dns/

Cannot edit on-demand rules

Editing anything inside an on-demand rule causes the view to close itself

Steps to reproduce:

  • Open a server’s details
  • Add a new on-demand rule
  • Tap on it and make any modification

Specifications:
iOS Version: 16.1
Device: iPhone 12 Mini
App version: 1.4.0 (Apple Store)

request for mobileconfig

Hey, thanks for your nice work!
Since your app is not available for Mac yet, could you please share a mobileconfig that could be used in Mac?
I need a profile that is system-wide and not used only by Safari. I cannot find it elsewhere.

Thanks

Blank screen when editing rule

iOS 16.4.1, iPhone 12 mini

Steps to reproduce:

  1. Select a server, create a new rule
  2. Enter the rule-edit screen
  3. Add SSID
  4. Type 1 character in the SSID text field

Expected result:

  • Can enter SSID

Actual result:

  • Screen goes blank:

IMG_9532 (1)

Add LibreDNS

Following up from #10 we would love if we could be part of this list, since many of our users use your app (great work btw ❤️). But I understand that you don't want the providers list to go huge, so I thought I should ask before we open a PR.

If you plan to make UI changes in the sidebar to accommodate more providers, one idea is to group per provider since some of them may have different protocols (DoH, DoT) or options (cutting ads, trackers, etc).

Support to Shortcuts App

It is possible to support Shortcuts feature so that can automate switching between different DNS providers?

Can’t use IP DNS server as a fallbak

on my configuration, IP DNS and DNS over TLS doesn’t work together.

Created a new entry for my customized DNS. Using a self-built AdGuard for DNS over TLS, and try to setup 1.1.1.1 as as failover.

DoT works along, but whenever I added 1.1.1.1 under server section, the network stop working. No page loaded.

Tried DoH as well, same issue

either DoH or DoT, my AdGuard works along without any IP entered but can’t work together.

I also tried self-signed profile which seem having same issue. Not sure if it’s Apple side issue or what. Those build in configurations work though.

Since this app doesn’t have logs, so I can’t really debug it myself. Anyone have similar issue and know the solution?

No longer working over LTE

iOS 14.6 - Doesn’t seem to be working over LTE. Checking my DNS while connected to any DNA server through the app just comes back as my cellular service provider. Furthermore, Adguard’s Adblock DNS-over-HTTPS doesn’t work on WiFi or cellular with the app.

Can't get the current SSID

Steps to reproduce:

  1. Select a server
  2. Tap "Add New Rule"
  3. Tap the rule created above
  4. Tap "Add SSID"

Expected behavior:

The currently connected SSID is inserted into the new row.

Actual behavior:

An empty line is created.

Environment:

  • iPadOS 16.5 (20F5039e), iPad Pro 12.9-inch 6th generation

Custom TCP Port for DoT

Hi,

this is a feature request on having an extra field to declare an alternate TCP Port for DoT servers. Although the majority and default port is 853 a lot of providers are blocking this port or sometimes a DoT server have a different functionality to another tcp port. So it would be useful to have the opportunity to declare an custom port to a different field (if necessary)

PS: Thanks for this project

Feature: configuration templates

Currently, DNSecure has the examples of DNS services by default, e.g. Google Public DNS, Cloudflare 1.1.1.1, and Quad9.

However, it has the following problems:

  1. Once you change server settings, you can't see a new default list even if you update the app that includes a new one.
  2. If the default list is too long, the app becomes less useful.

To solve them, I plan to treat those DNS services as templates and add "Create from Templates" into the context menu of the plus button so that I can leave the default list empty.

Sync Profiles Between Devices?

Have you considered the ability to sync user-added DNS setups across multiple devices so that I don’t have to add them to each phone/tablet/Mac individually? The app is great as-is, so this is really just a “nice to have” feature.

documentation/feature: using router for resolving local addresses

The core functionality works.

Now in my intranet say, *.my.local there are nodes (e.g. node1.my.local). The router is usually a DNS-server for those local nodes.

  • Is it currently possible (how?) to add an "exclusion" and use the Router DNS to resolve those hostnames on the local network?

DNSSEC test results

Obtaining different DNSSEC test results (rootcanary.org) when using UncensoredDNS (@tykling) Unicast server:

  • Manually configured server (DoH or DoT not enabled (screenshot A)
  • DoH enabled through DNSecure app or installed profile @nitrohorse (screenshot DoH)
  • DoT enabled through DNSecure app or installed profile @nitrohorse (screenshot DoT)

P.S. New DNS test page went live (beta) https://cmdns.dev.dns-oarc.net/
A

DoH

DoT

Ignore "configuration is unchanged" error

When the configuration is the same as the previous configuration, the error "configuration is unchanged" occurs. However, this isn't a problem for normal use, so this should be ignored.

Feature: disable dns while on certain wifi networks

It could be nice to disable encrypted dns behavior while connected to certain WiFi’s, also a whole new level would be to use certain profiles on encrypted dns depending on the wifi you’re currently connected.

Some `TextField`s are laggy

The following TextFields work but are laggy.

  • The TextField for "Name" on DetailView
  • All TextFields on RuleView

iPadOS 16.5 (20F5039e), iPad Pro 12.9-inch 6th generation

DNSecure for iPadOS - Server Configuration

I have discovered a repeatable bug with server settings. After launching the App, the sidebar list is populated with the full default list of DNS servers as expected - for both DoH and DoT providers.

IMG_3155

Whichever service provider’s properties are first accessed from the DNSecure UI (e.g., Quad9 - DoH or DoT), all other providers that use the same protocol inherit the same server properties. As such, all DoH providers will have the same settings - as will all DoT providers.

Deleting and re-adding a provider, or creating a new provider doesn’t resolve the problem - and neither does editing. As such, it isn’t possible to switch between different DNS providers. Removing and re-adding the App restores the default list - but the problem will recur upon choosing a DNS provider.

The problem is repeatable between iPads of the same model.

DNSecure 1.4.1
iPadOS 16.x
iPad Pro 12.9” M1

Can't activate Service -> Not running

Hi there,

When I try to activate the Service in Network Preferences and then hit apply, it goes back to "not running". Any idea why? Could it have to to with the other services, like Little Snitch?

I tried multiple different DNS servers TLS and HTTPS. Always the same result. Tried restarting and this also didn't solve the issue.

Best

se_dony
Screen Shot 2021-02-14 at 08 53 09
Screen Shot 2021-02-14 at 08 53 27

Alerts

When an error occurs, an alert should be displayed.

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.