[v2,1/1] layer3: Add option to validate dnssec on the router

Submitted by Christian Dresel on April 11, 2020, 9:06 a.m.

Details

Message ID 20200411090608.8178-1-fff@chrisi01.de
State New
Headers show

Commit Message

Christian Dresel April 11, 2020, 9:06 a.m.
With this patch it is possible to activate dnssec validation on the layer3 router

Signed-off-by: Christian Dresel <fff@chrisi01.de>

---
Changes in v2:
 - increase PKG_RELEASE
 - fix if to only one "="
---
 src/packages/fff/fff-dhcp/Makefile                   | 2 +-
 src/packages/fff/fff-dhcp/files/etc/gateway.d/35-dns | 9 +++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

Patch hide | download patch | download mbox

diff --git a/src/packages/fff/fff-dhcp/Makefile b/src/packages/fff/fff-dhcp/Makefile
index 62e6c25..d6ba954 100644
--- a/src/packages/fff/fff-dhcp/Makefile
+++ b/src/packages/fff/fff-dhcp/Makefile
@@ -1,7 +1,7 @@ 
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=fff-dhcp
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/fff-dhcp
 
diff --git a/src/packages/fff/fff-dhcp/files/etc/gateway.d/35-dns b/src/packages/fff/fff-dhcp/files/etc/gateway.d/35-dns
index 89105f0..b852197 100644
--- a/src/packages/fff/fff-dhcp/files/etc/gateway.d/35-dns
+++ b/src/packages/fff/fff-dhcp/files/etc/gateway.d/35-dns
@@ -1,6 +1,9 @@ 
 configure() {
 	## dns
 	uci -q del dhcp.@dnsmasq[0].server
+	uci -q del dhcp.@dnsmasq[0].proxydnssec
+	uci -q del stubby.global.appdata_dir
+	uci -q del stubby.global.dnssec_return_status
 	if [ $(uci -q get gateway.@dns[0].dnsdot) = 1 ]; then
 		uci add_list dhcp.@dnsmasq[0].server="::1#5453"
 		uci add_list dhcp.@dnsmasq[0].server="127.0.0.1#5453"
@@ -16,6 +19,12 @@  configure() {
 		else
 			echo "WARNING: No DNS servers set!"
 		fi
+		if [ $(uci -q get gateway.@dns[0].dnssec_validation) = 1 ]; then
+			uci set dhcp.@dnsmasq[0].proxydnssec="1"
+			uci set stubby.global.appdata_dir="/tmp/stubby"
+			uci set stubby.global.dnssec_return_status="1"
+
+		fi
 	else
 		if dnsservers=$(uci -q get gateway.@dns[0].server); then
 			for f in $dnsservers; do

Comments

Robert Langhammer April 11, 2020, 10:22 a.m.
Hallo Christian,


Am 11.04.20 um 11:06 schrieb Christian Dresel:
> if [ $(uci -q get gateway.@dns[0].dnssec_validation) = 1 ]; then

 "gateway.@dns[0].dnssec_validation" ist laut Doku nicht Pflicht. Das
bedeutet, dass der Test einen Fehler wirft, wenn es nicht gesetzt ist.
Das passiert nicht, wenn man die Kommandosubstitution in " " setzt. Dann
wird ein leerer String mit 1 verglichen -> klappt. Ohne fehlt der erste
Operad -> Fehler,

Adrian hat das ja auch schon angemerkt.

Viele Grüße
Robert
Fabian Blaese April 17, 2020, 1:59 p.m.
Hallo Christian,

im folgenden zitiere ich meinen bisher unbeantworteten Kommentar auf den ursprünglichen RFC Patch.

Zusätzlicher Hinweis: Wenn ich die Option richtig verstehe, prüft die nur den DNSSEC Return Status des Resolvers. Das heißt:
1. Muss der Resolver DNSSEC prüfen
2. Muss man dem Resolver vertrauen
3. Muss man der Verbindung trauen, dafür müsste man aber Zertifikate prüfen, die wir aktuell nicht in der Firmware haben (und die mit dem DoT Patch auch nicht eingefügt werden, was das ganze DoT eigentlich ad absurdum führt, jedenfalls teilweise?)

"""
warum lassen wir das ganze nicht dnsmasq verifizieren?
Dann funktioniert das nämlich auch unabhängig von der DoT Sache, von der ich aktuell ehrlich gesagt eigentlich nicht so wahnsinnig viel halte.

Die nötigen Optionen dafür:
--dnssec
und
--trust-anchor=[<class>],<domain>,<key-tag>,<algorithm>,<digest-type>,<digest>

Wir brauchen dafür in jedem Fall das dnsmasq-full. Ich weiß nicht, was wir aktuell verwenden.
Vorsicht: Der Trust Anchor muss [..] aktualisiert werden, wenn [mal wieder key rollover] ist.
"""

Gruß
Fabian

On 11.04.20 11:06, Christian Dresel wrote:
> With this patch it is possible to activate dnssec validation on the layer3 router
> 
> Signed-off-by: Christian Dresel <fff@chrisi01.de>
> 
> ---
> Changes in v2:
>  - increase PKG_RELEASE
>  - fix if to only one "="
> ---
>  src/packages/fff/fff-dhcp/Makefile                   | 2 +-
>  src/packages/fff/fff-dhcp/files/etc/gateway.d/35-dns | 9 +++++++++
>  2 files changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/src/packages/fff/fff-dhcp/Makefile b/src/packages/fff/fff-dhcp/Makefile
> index 62e6c25..d6ba954 100644
> --- a/src/packages/fff/fff-dhcp/Makefile
> +++ b/src/packages/fff/fff-dhcp/Makefile
> @@ -1,7 +1,7 @@
>  include $(TOPDIR)/rules.mk
>  
>  PKG_NAME:=fff-dhcp
> -PKG_RELEASE:=3
> +PKG_RELEASE:=4
>  
>  PKG_BUILD_DIR:=$(BUILD_DIR)/fff-dhcp
>  
> diff --git a/src/packages/fff/fff-dhcp/files/etc/gateway.d/35-dns b/src/packages/fff/fff-dhcp/files/etc/gateway.d/35-dns
> index 89105f0..b852197 100644
> --- a/src/packages/fff/fff-dhcp/files/etc/gateway.d/35-dns
> +++ b/src/packages/fff/fff-dhcp/files/etc/gateway.d/35-dns
> @@ -1,6 +1,9 @@
>  configure() {
>  	## dns
>  	uci -q del dhcp.@dnsmasq[0].server
> +	uci -q del dhcp.@dnsmasq[0].proxydnssec
> +	uci -q del stubby.global.appdata_dir
> +	uci -q del stubby.global.dnssec_return_status
>  	if [ $(uci -q get gateway.@dns[0].dnsdot) = 1 ]; then
>  		uci add_list dhcp.@dnsmasq[0].server="::1#5453"
>  		uci add_list dhcp.@dnsmasq[0].server="127.0.0.1#5453"
> @@ -16,6 +19,12 @@ configure() {
>  		else
>  			echo "WARNING: No DNS servers set!"
>  		fi
> +		if [ $(uci -q get gateway.@dns[0].dnssec_validation) = 1 ]; then
> +			uci set dhcp.@dnsmasq[0].proxydnssec="1"
> +			uci set stubby.global.appdata_dir="/tmp/stubby"
> +			uci set stubby.global.dnssec_return_status="1"
> +
> +		fi
>  	else
>  		if dnsservers=$(uci -q get gateway.@dns[0].server); then
>  			for f in $dnsservers; do
>
Adrian Schmutzler April 20, 2020, 8:24 p.m.
Hallo,

> then
> +			uci set dhcp.@dnsmasq[0].proxydnssec="1"
> +			uci set stubby.global.appdata_dir="/tmp/stubby"
> +			uci set stubby.global.dnssec_return_status="1"
> +
> +		fi

Nutzlose Leerzeile hier? Kann weg ...

Grüße

Adrian