[PATCH v2] fff-dhcp: Add DNS over TLS option inside the Freifunk backbone
Christian Dresel
fff at chrisi01.de
Mo Apr 6 22:23:20 CEST 2020
Hallo Adrian
On 06.04.20 19:59, mail at adrianschmutzler.de wrote:
> Hallo Christian,
>
> nur ein paar dumme Kommentare/Fragen:
>
>> -----Original Message-----
>> From: franken-dev [mailto:franken-dev-bounces at freifunk.net] On Behalf
>> Of Christian Dresel
>> Sent: Sonntag, 5. April 2020 14:21
>> To: franken-dev at freifunk.net
>> Subject: [PATCH v2] fff-dhcp: Add DNS over TLS option inside the Freifunk
>> backbone
>>
>> With this option it is possible to make DoT (DNS over TLS) from the layer3
>> router to the DoT DNS Server.
>>
>> The DNS traffic from Client to the layer3 router is still uncryptet.
>
> uncryptet -> unencrypted
>
>>
>> On the layer 3 router, dnsmasq forward the DNS to stubby.
>
> forward -> forwards
>
>> Stubby use DoT to ask a resolver inside or outside the Freifunk backbone
>
> use -> uses; "ask a" -> "ask for a"
>
>>
>> For documentation for the options is here:
>
> "of the options"
>
>> https://wiki.freifunk-
>> franken.de/w/Gatewayfirmware_Config/mit_stubby#dns_mit_DoT_.C3.BCb
>> er_stubby
>>
>> Signed-off-by: Christian Dresel <fff at chrisi01.de>
>>
>> ---
>>
>> Changes in v2:
>> - fix some quoting
>> - increase PKG_RELEASE
>> ---
>> src/packages/fff/fff-dhcp/Makefile | 5 ++--
>> .../fff/fff-dhcp/files/etc/gateway.d/35-dns | 33 +++++++++++++++++---
>> --
>> 2 files changed, 29 insertions(+), 9 deletions(-)
>>
>> diff --git a/src/packages/fff/fff-dhcp/Makefile b/src/packages/fff/fff-
>> dhcp/Makefile
>> index 3f0d65c..62e6c25 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:=2
>> +PKG_RELEASE:=3
>>
>> PKG_BUILD_DIR:=$(BUILD_DIR)/fff-dhcp
>>
>> @@ -12,7 +12,8 @@ define Package/fff-dhcp
>> CATEGORY:=Freifunk
>> TITLE:=Freifunk-Franken dhcp
>> URL:=http://www.freifunk-franken.de
>> - DEPENDS:=+dnsmasq
>> + DEPENDS:=+dnsmasq \
>> + +stubby
>> endef
>>
>> define Package/fff-dhcp/description
>> 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 ad9f1cd..89105f0 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,21 +1,40 @@
>> configure() {
>> ## dns
>> uci -q del dhcp. at dnsmasq[0].server
>> - if dnsservers=$(uci -q get gateway. at dns[0].server); then
>> - for f in $dnsservers; do
>> - uci add_list dhcp. at dnsmasq[0].server=$f
>> - uci add_list dhcp. at dnsmasq[0].server="/in-
>> addr.arpa/$f"
>> - uci add_list dhcp. at dnsmasq[0].server="/ip6.arpa/$f"
>> - done
>> + if [ $(uci -q get gateway. at dns[0].dnsdot) = 1 ]; then
>
> Ich würde beide zu vergleichende Werte in Anführungszeichen setzen, damit sicher Strings verglichen werden, und keine Zahlen:
>
> [ "$(uci -q get gateway. at dns[0].dnsdot)" = "1" ]
>
> Ist aber in der Praxis wahrscheinlich ziemlich wurscht.
am Ende gibts viele Möglichkeiten, ich hab ja sogar über ein
if uci -q get gateway. at dns[0].dnsdot; then
nachgedacht aber am Ende... wurscht.
>
>> + uci add_list dhcp. at dnsmasq[0].server="::1#5453"
>> + uci add_list dhcp. at dnsmasq[0].server="127.0.0.1#5453"
>> + uci set dhcp. at dnsmasq[0].noresolv="1"
>> + while uci -q delete stubby. at resolver[0]; do :; done
>
> Diese Zeile ist eigentlich der Grund, warum ich überhaupt eine Mail geschrieben habe:
> Was tut die?
> Für mich sieht das aus wie ein kompliziertes Äquivalent von
> uci -q delete stubby. at resolver[0]
tja sagen wir so, meine Programmierkenntnisse sind in etwa so gut wie
meine Englischkenntnisse (scheiße was kann ich eigentlich überhaupt?
Deutsch klappt ja auch nie... ah Fränkisch wäre was ;)) hab ich mich
hier einfach aus dem OpenWRT Wiki bedient:
https://openwrt.org/docs/guide-user/services/dns/dot_dnsmasq_stubby#dot_provider
also ja, vermutlich macht sie genau das gleiche.
Gruß
Christian
>
> Beste Grüße
>
> Adrian
>
>> + if dnsservers=$(uci -q get gateway. at dns[0].server); then
>> + for f in $dnsservers; do
>> + type="$(echo $f | cut -d @ -f 1)"
>> + uci set stubby.$type="resolver"
>> + uci set stubby.$type.address="$(echo $f | cut
>> -d @ -f 2)"
>> + uci set stubby.$type.tls_auth_name="$(echo
>> $f | cut -d @ -f 3)"
>> + done
>> + else
>> + echo "WARNING: No DNS servers set!"
>> + fi
>> else
>> - echo "WARNING: No DNS servers set!"
>> + if dnsservers=$(uci -q get gateway. at dns[0].server); then
>> + for f in $dnsservers; do
>> + uci add_list dhcp. at dnsmasq[0].server=$f
>> + uci add_list dhcp. at dnsmasq[0].server="/in-
>> addr.arpa/$f"
>> + uci add_list
>> dhcp. at dnsmasq[0].server="/ip6.arpa/$f"
>> + done
>> + else
>> + echo "WARNING: No DNS servers set!"
>> + fi
>> fi
>> }
>>
>> apply() {
>> uci commit dhcp
>> + uci commit stubby
>> }
>>
>> revert() {
>> uci revert dhcp
>> + uci revert stubby
>> }
>> --
>> 2.11.0
Mehr Informationen über die Mailingliste franken-dev