From 234a7f98ec69d44c520a215f087a0bf056cac605 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 4 Dec 2017 15:29:20 +0100 Subject: [PATCH 1/5] Add DNSSEC --- Dockerfile | 4 ++++ named.conf.options | 6 ++++-- setup.sh | 6 ++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9b9ea54..3020157 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,6 +15,10 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update && \ apt-get install -q -y bind9 dnsutils && \ apt-get clean +RUN DEBIAN_FRONTEND=noninteractive apt-get update && \ + apt-get install -q -y vim udev cron && \ + apt-get clean + RUN chmod 770 /var/cache/bind COPY setup.sh /root/setup.sh RUN chmod +x /root/setup.sh diff --git a/named.conf.options b/named.conf.options index 9c0925d..6393c05 100644 --- a/named.conf.options +++ b/named.conf.options @@ -1,8 +1,10 @@ options { directory "/var/cache/bind"; - dnssec-validation auto; + dnssec-enable yes; + dnssec-validation yes; + dnssec-lookaside auto; recursion no; allow-transfer { none; }; auth-nxdomain no; listen-on-v6 { any; }; -}; \ No newline at end of file +}; diff --git a/setup.sh b/setup.sh index c373bc7..f067ebd 100755 --- a/setup.sh +++ b/setup.sh @@ -10,7 +10,7 @@ then cat >> /etc/bind/named.conf < Date: Mon, 4 Dec 2017 15:35:53 +0100 Subject: [PATCH 2/5] Finalize DNSSEC --- envfile | 3 +- setup.sh | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 88 insertions(+), 4 deletions(-) diff --git a/envfile b/envfile index fc51a2d..db36003 100644 --- a/envfile +++ b/envfile @@ -1,3 +1,4 @@ SHARED_SECRET=changeme ZONE=example.org -RECORD_TTL=3600 \ No newline at end of file +RECORD_TTL=3600 +NS=ns.example.org diff --git a/setup.sh b/setup.sh index f067ebd..d56c590 100755 --- a/setup.sh +++ b/setup.sh @@ -18,17 +18,29 @@ zone "$ZONE" { EOF echo "creating zone file..." + if [ 'z "$NS" ] + then + IFS="," read -r -a elements <<< "$NS" + for element in ${elements[@]} + do + SHORT+="${element%%.*}. " + LONG+="$element. " + done + else + SHORT="${NS%%.*}." + LONG+="$NS." + fi cat > /var/cache/bind/$ZONE.zone <> $ZONE.zone + done + + dnssec-signzone -A -3 $(head -c 1000 /dev/urandom | sha1sum | cut -b 1-16) -N INCREMENT -o $ZONE -t $ZONE.zone +fi + +# Increase safety to prevents hacks with raindow tables +if [ ! -f /usr/sbin/zonesigner.sh ] +then + echo "Creating /usr/sbin/zonesigner.sh..." + cat > /usr/sbin/zonesigner.sh < /var/spool/cron/crontabs/root < Date: Mon, 4 Dec 2017 15:37:17 +0100 Subject: [PATCH 3/5] Typo --- setup.sh | 66 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/setup.sh b/setup.sh index d56c590..e727618 100755 --- a/setup.sh +++ b/setup.sh @@ -6,41 +6,41 @@ if [ ! -f /var/cache/bind/$ZONE.zone ] then - echo "creating zone..."; - cat >> /etc/bind/named.conf <> /etc/bind/named.conf < /var/cache/bind/$ZONE.zone < /var/cache/bind/$ZONE.zone < /etc/dyndns.json < /etc/dyndns.json < Date: Mon, 4 Dec 2017 15:38:35 +0100 Subject: [PATCH 4/5] Add pessistant and restart always --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index d3af69e..d8ad9bb 100644 --- a/Makefile +++ b/Makefile @@ -25,4 +25,4 @@ api_test_recursion: dig @docker.local google.com deploy: image - docker run -it -d -p 8080:8080 -p 53:53 -p 53:53/udp --env-file envfile --name=dyndns davd/docker-ddns:latest + docker run -it -d --restart="always" -p 8080:8080 -p 53:53 -p 53:53/udp -v /opt/bind:/var/cache/bind --env-file envfile --name=dyndns davd/docker-ddns:latest From fc590e32dd928d2f1088423d6e7ce355e105a5a2 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 6 Dec 2017 13:08:36 +0100 Subject: [PATCH 5/5] Fix typo --- setup.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.sh b/setup.sh index e727618..f8dbc3b 100755 --- a/setup.sh +++ b/setup.sh @@ -18,7 +18,7 @@ zone "$ZONE" { EOF echo "creating zone file..." - if [ 'z "$NS" ] + if [ -z "$NS" ] then IFS="," read -r -a elements <<< "$NS" for element in ${elements[@]} @@ -28,7 +28,7 @@ EOF done else SHORT="${NS%%.*}." - LONG+="$NS." + LONG="$NS." fi cat > /var/cache/bind/$ZONE.zone <