seems to work now
This commit is contained in:
parent
6e09734800
commit
6fc64baaa7
14
Dockerfile
14
Dockerfile
@ -15,6 +15,7 @@ RUN \
|
|||||||
mkdir -p $VAR_DIR && \
|
mkdir -p $VAR_DIR && \
|
||||||
mkdir -p $DATA_DIR && \
|
mkdir -p $DATA_DIR && \
|
||||||
mkdir -p $LOG_DIR && \
|
mkdir -p $LOG_DIR && \
|
||||||
|
mkdir -p $LOG_DIR/actionlog && \
|
||||||
mkdir -p $DYN_ZONES_DIR && \
|
mkdir -p $DYN_ZONES_DIR && \
|
||||||
apt update && \
|
apt update && \
|
||||||
apt install -y bind9 && \
|
apt install -y bind9 && \
|
||||||
@ -24,7 +25,8 @@ RUN \
|
|||||||
apt install -y dnsutils && \
|
apt install -y dnsutils && \
|
||||||
apt install -y vim.tiny && \
|
apt install -y vim.tiny && \
|
||||||
apt install -y procps && \
|
apt install -y procps && \
|
||||||
/usr/sbin/tsig-keygen local. > /etc/bind/local.key && \
|
apt install -y less && \
|
||||||
|
apt install -y netcat && \
|
||||||
echo "include \"/etc/bind/local.key\";" >> /etc/bind/named.conf && \
|
echo "include \"/etc/bind/local.key\";" >> /etc/bind/named.conf && \
|
||||||
echo "include \"/etc/bind/dynamic/dynamic-zones.conf\";" >> /etc/bind/named.conf && \
|
echo "include \"/etc/bind/dynamic/dynamic-zones.conf\";" >> /etc/bind/named.conf && \
|
||||||
echo "include \"/etc/bind/named.conf.logging\";" >> /etc/bind/named.conf
|
echo "include \"/etc/bind/named.conf.logging\";" >> /etc/bind/named.conf
|
||||||
@ -33,19 +35,15 @@ COPY ./server/ $APP_DIR
|
|||||||
COPY ./bind/named.conf.logging $BIND_DIR
|
COPY ./bind/named.conf.logging $BIND_DIR
|
||||||
COPY ./bind/dynamic-zones.conf $DYN_ZONES_DIR
|
COPY ./bind/dynamic-zones.conf $DYN_ZONES_DIR
|
||||||
COPY ./bind/dynamic.hottis.de $DYN_ZONES_DIR
|
COPY ./bind/dynamic.hottis.de $DYN_ZONES_DIR
|
||||||
|
COPY ./yadynns.sh $APP_DIR
|
||||||
RUN \
|
|
||||||
cat /etc/bind/local.key && \
|
|
||||||
KEY=`cat /etc/bind/local.key | awk -F\" '/secret/ {print $2}'` && \
|
|
||||||
echo $KEY && \
|
|
||||||
sed -i "s,KEYVALUE,$KEY," $APP_DIR/yadyn
|
|
||||||
|
|
||||||
EXPOSE 8023/tcp
|
EXPOSE 8023/tcp
|
||||||
EXPOSE 8053/udp
|
EXPOSE 8053/udp
|
||||||
EXPOSE 53/udp
|
|
||||||
EXPOSE 53/tcp
|
EXPOSE 53/tcp
|
||||||
|
|
||||||
VOLUME $VAR_DIR
|
VOLUME $VAR_DIR
|
||||||
VOLUME $DYN_ZONES_DIR
|
VOLUME $DYN_ZONES_DIR
|
||||||
|
|
||||||
|
WORKDIR $APP_DIR
|
||||||
|
CMD ./yadynns.sh
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ zone "dynamic.hottis.de" {
|
|||||||
file "/etc/bind/dynamic/dynamic.hottis.de";
|
file "/etc/bind/dynamic/dynamic.hottis.de";
|
||||||
allow-update {
|
allow-update {
|
||||||
{ localhost; };
|
{ localhost; };
|
||||||
key local.;
|
key "local.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ import dns.rdataclass
|
|||||||
import dns.rdatatype
|
import dns.rdatatype
|
||||||
import dns.rdtypes.IN.A
|
import dns.rdtypes.IN.A
|
||||||
import dns.tsigkeyring
|
import dns.tsigkeyring
|
||||||
|
from dns.tsig import HMAC_SHA256
|
||||||
import dns.rcode
|
import dns.rcode
|
||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
@ -52,7 +53,7 @@ class DnsHandler(threading.Thread):
|
|||||||
return
|
return
|
||||||
# send A-RR insertion for ip to DNS server
|
# send A-RR insertion for ip to DNS server
|
||||||
rr = dns.rdtypes.IN.A.A(dns.rdataclass.IN, dns.rdatatype.A, address)
|
rr = dns.rdtypes.IN.A.A(dns.rdataclass.IN, dns.rdatatype.A, address)
|
||||||
u = dns.update.Update(zone, keyring=self.keyring)
|
u = dns.update.Update(zone, keyring=self.keyring, keyalgorithm=HMAC_SHA256)
|
||||||
u.add(name, self.ttl, rr)
|
u.add(name, self.ttl, rr)
|
||||||
r = dns.query.tcp(u, self.nsAddress, port=self.nsPort)
|
r = dns.query.tcp(u, self.nsAddress, port=self.nsPort)
|
||||||
|
|
||||||
@ -65,7 +66,7 @@ class DnsHandler(threading.Thread):
|
|||||||
if self.dnsDummy:
|
if self.dnsDummy:
|
||||||
return
|
return
|
||||||
# send A-RR deletion for ip to DNS server
|
# send A-RR deletion for ip to DNS server
|
||||||
u = dns.update.Update(zone, keyring=self.keyring)
|
u = dns.update.Update(zone, keyring=self.keyring, keyalgorithm=HMAC_SHA256)
|
||||||
u.delete(name)
|
u.delete(name)
|
||||||
r = dns.query.tcp(u, self.nsAddress, port=self.nsPort)
|
r = dns.query.tcp(u, self.nsAddress, port=self.nsPort)
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import syslog
|
import syslog
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
class Logger(object):
|
class Logger(object):
|
||||||
@ -6,13 +7,15 @@ class Logger(object):
|
|||||||
def log(data):
|
def log(data):
|
||||||
syslog.syslog(syslog.LOG_INFO, data)
|
syslog.syslog(syslog.LOG_INFO, data)
|
||||||
if Logger.debugFlag:
|
if Logger.debugFlag:
|
||||||
print data
|
# print data
|
||||||
|
sys.stderr.write(data)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def debug(data):
|
def debug(data):
|
||||||
if Logger.debugFlag:
|
if Logger.debugFlag:
|
||||||
syslog.syslog(syslog.LOG_DEBUG, data)
|
syslog.syslog(syslog.LOG_DEBUG, data)
|
||||||
print data
|
# print data
|
||||||
|
sys.stderr.write(data)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def openlog():
|
def openlog():
|
||||||
|
23
yadyn-start.sh
Executable file
23
yadyn-start.sh
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
IMAGE=registry.gitlab.com/wolutator/yadyn:latest
|
||||||
|
VOLUME_VAR=yadyn-var
|
||||||
|
VOLUME_ZONES=yadyn-zones
|
||||||
|
|
||||||
|
docker volume inspect $VOLUME_VAR > /dev/null || docker volume create $VOLUME_VAR
|
||||||
|
docker volume inspect $VOLUME_ZONES > /dev/null || docker volume create $VOLUME_ZONES
|
||||||
|
|
||||||
|
#docker pull $IMAGE
|
||||||
|
|
||||||
|
|
||||||
|
docker run \
|
||||||
|
-d \
|
||||||
|
-p 53:53/udp \
|
||||||
|
-p 53:53/tcp \
|
||||||
|
-p 8053:8053/udp \
|
||||||
|
-v $VOLUME_VAR:/opt/app/var \
|
||||||
|
-v $VOLUME_ZONES:/etc/bind/dynamic \
|
||||||
|
--restart unless-stopped \
|
||||||
|
$IMAGE
|
||||||
|
|
||||||
|
|
16
yadynns.sh
Executable file
16
yadynns.sh
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "Generating key ..."
|
||||||
|
/usr/sbin/tsig-keygen local. > /etc/bind/local.key
|
||||||
|
KEY=`cat /etc/bind/local.key | awk -F\" '/secret/ {print $2}'`
|
||||||
|
sed -i "s,KEYVALUE,$KEY," /opt/app/yadyn
|
||||||
|
|
||||||
|
echo "Starting named ..."
|
||||||
|
/usr/sbin/named
|
||||||
|
|
||||||
|
echo "Starting yadyn ..."
|
||||||
|
cd /opt/app
|
||||||
|
./yadyn
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user