From b3703f24e239427d624d96dbed2556b96412ce48 Mon Sep 17 00:00:00 2001 From: aptalca Date: Tue, 6 Oct 2020 18:07:58 -0400 Subject: [PATCH] disable coredns in client mode or if 53 is in use --- Dockerfile | 1 + Dockerfile.aarch64 | 1 + Dockerfile.armhf | 1 + README.md | 2 +- readme-vars.yml | 2 +- root/etc/cont-init.d/30-config | 15 ++++++--------- root/etc/services.d/coredns/run | 9 +++++++-- 7 files changed, 18 insertions(+), 13 deletions(-) diff --git a/Dockerfile b/Dockerfile index eae63e1f..4dadd322 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,6 +26,7 @@ RUN \ jq \ libc6 \ libelf-dev \ + net-tools \ openresolv \ perl \ pkg-config \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index b47d5e5f..f7363da2 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -26,6 +26,7 @@ RUN \ jq \ libc6 \ libelf-dev \ + net-tools \ openresolv \ perl \ pkg-config \ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index b8fde662..b4dc7bb4 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -26,6 +26,7 @@ RUN \ jq \ libc6 \ libelf-dev \ + net-tools \ openresolv \ perl \ pkg-config \ diff --git a/README.md b/README.md index bd95f92a..21ba6f89 100644 --- a/README.md +++ b/README.md @@ -291,7 +291,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions -* **06.10.20:** - Disable CoreDNS when Host networking is detected. +* **06.10.20:** - Disable CoreDNS in client mode, or if port 53 is already in use in server mode. * **04.10.20:** - Allow to specify a list of names as PEERS and add ALLOWEDIPS environment variable. Also, add peer name/id to each one of the peer sections in wg0.conf. Important: Existing users need to delete `/config/templates/peer.conf` and restart * **27.09.20:** - Cleaning service binding example to have accurate PreDown script. * **06.08.20:** - Replace resolvconf with openresolv due to dns issues when a client based on this image is connected to a server also based on this image. Add IPv6 info to readme. Display kernel version in logs. diff --git a/readme-vars.yml b/readme-vars.yml index d617bc99..113d1213 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -103,7 +103,7 @@ app_setup_block: | # changelog changelogs: - - { date: "06.10.20:", desc: "Disable CoreDNS when Host networking is detected." } + - { date: "06.10.20:", desc: "Disable CoreDNS in client mode, or if port 53 is already in use in server mode." } - { date: "04.10.20:", desc: "Allow to specify a list of names as PEERS and add ALLOWEDIPS environment variable. Also, add peer name/id to each one of the peer sections in wg0.conf. Important: Existing users need to delete `/config/templates/peer.conf` and restart" } - { date: "27.09.20:", desc: "Cleaning service binding example to have accurate PreDown script." } - { date: "06.08.20:", desc: "Replace resolvconf with openresolv due to dns issues when a client based on this image is connected to a server also based on this image. Add IPv6 info to readme. Display kernel version in logs." } diff --git a/root/etc/cont-init.d/30-config b/root/etc/cont-init.d/30-config index 578938c8..724d24b2 100644 --- a/root/etc/cont-init.d/30-config +++ b/root/etc/cont-init.d/30-config @@ -266,22 +266,19 @@ if [ -n "$PEERS" ]; then fi fi else - echo "**** Client mode selected." + echo "**** Client mode selected. ****" if [ ! -f /config/wg0.conf ]; then echo "**** No client conf found. Provide your own client conf as \"/config/wg0.conf\" and restart the container. ****" sleep infinity fi -fi - -# set up or disable CoreDNS -if ip addr show dev docker0 > /dev/null 2>&1; then - echo "Host networking detected, disabling CoreDNS" + echo "**** Disabling CoreDNS ****" rm -rf /etc/services.d/coredns -else - [[ ! -f /config/coredns/Corefile ]] && \ - cp /defaults/Corefile /config/coredns/Corefile fi +# set up CoreDNS +[[ ! -f /config/coredns/Corefile ]] && \ + cp /defaults/Corefile /config/coredns/Corefile + # permissions chown -R abc:abc \ /config diff --git a/root/etc/services.d/coredns/run b/root/etc/services.d/coredns/run index f073c29f..5448654b 100644 --- a/root/etc/services.d/coredns/run +++ b/root/etc/services.d/coredns/run @@ -2,5 +2,10 @@ cd /config/coredns -exec \ - /app/coredns -dns.port=53 \ No newline at end of file +if netstat -apn | grep -q ":53 "; then + echo "Another service is using port 53, disabling CoreDNS" + sleep infinity +else + exec \ + /app/coredns -dns.port=53 +fi \ No newline at end of file