[PATCH] Add DNS over TLS option inside the Freifunk backbone
Christian Dresel
fff at chrisi01.de
Sa Apr 4 13:03:28 CEST 2020
Hallo Robert
Danke paar Sachen inline:
On 03.04.20 21:31, Robert Langhammer wrote:
> hallo Christian,
>
> find ich gut, das rein zu nehmen.
>
> Zur Syntax hab ich noch was: s.u.
>
> Am 03.04.20 um 19:29 schrieb Christian Dresel:
>> 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.
>>
>> On the layer 3 router, dnsmasq forward the DNS to stubby.
>> Stubby use DoT to ask a resolver inside or outside the Freifunk backbone
>>
>> For documentation for the options is here:
>> https://wiki.freifunk-franken.de/w/Gatewayfirmware_Config/mit_stubby#dns_mit_DoT_.C3.BCber_stubby
>>
>> Signed-off-by: Christian Dresel <fff at chrisi01.de>
>> ---
>> src/packages/fff/fff-dhcp/Makefile | 3 +-
>> .../fff/fff-dhcp/files/etc/gateway.d/35-dns | 34 +++++++++++++++++-----
>> 2 files changed, 29 insertions(+), 8 deletions(-)
>>
>> diff --git a/src/packages/fff/fff-dhcp/Makefile b/src/packages/fff/fff-dhcp/Makefile
>> index c481d82..fed1a2b 100644
>> --- a/src/packages/fff/fff-dhcp/Makefile
>> +++ b/src/packages/fff/fff-dhcp/Makefile
>> @@ -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..20503bf 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,41 @@
>> 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
> hier keine doppelten == ist nicht bash.
ack
>> + 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
>> + if dnsservers=$(uci -q get gateway. at dns[0].server); then
> Hier braucht es " um die Substitution sonst wordsplitting wenn mehrere
> dns und die Var-zuweisung kracht.
Ist genau dieser Code den ich eigentlich gar nicht angefasst habe nur
verschoben:
https://github.com/FreifunkFranken/firmware/blob/master/src/packages/fff/fff-dhcp/files/etc/gateway.d/35-dns#L4
würde ich hier jetzt nicht anfassen sondern lieber in einem eigenen
Patch dann korrigieren. Es funktioniert auf jeden Fall auch ohne, gerade
getestet.
>>
>> + 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)""
> Doppelte "" willst du nicht das 2. schaltet das erste wieder aus. Dann
> kannst du die auch weglassen. Das @ ist ein normales Zeichen und
> bräuchte die " nicht. aber egal.
wo auch immer die "" herkommen... Fallen im v2 dann weg ;)
Wegen dem "@" das ist PHP Gewohnheit, alles was kein Integer ist bekommt
"x" drum herum (deshalb haben auch die Zahlen nach dem -f keine "") ;)
Keine Ahnung was die "schönere" Lösung ist, mir soll es egal sein und
wegen mir können die "" dann im v2 weg, funktionieren tut beides (eben
getestet).
>> + 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
>
> Hier auch "$f"
selbe wie oben nur dieser:
https://github.com/FreifunkFranken/firmware/blob/master/src/packages/fff/fff-dhcp/files/etc/gateway.d/35-dns#L6
Gruß
Christian
>
> Viele Grüße
> Robert
>
>> + 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
>> }
>
Mehr Informationen über die Mailingliste franken-dev