commit b8b670b11ba33686e3cd0d81c8805870db8d3ca5 Author: Jason Date: Mon Feb 14 16:44:26 2022 -0500 🦈🏠🐜❗ Initial Commit ❗🐜🦈🏠 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..99a5f5f --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +# gitignore created on 02/09/22 at 12:16 +# Disable reminder in prompt +ignoredirmessage + +# OS generated files +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db + +# Other +.installed + + +# ignore commit message +.gitcommit diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8800620 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,37 @@ +FROM casjaysdev/alpine:latest as ddnsbase +LABEL author="CasjaysDev" \ + email="" \ + version="1.0.0" \ + description="dynamic-dns server" + +RUN apk update --no-cache && apk add --no-cache dhcp-server-vanilla radvd bind bash php8 tftp-hpa tor torsocks +RUN rm -Rf /var/cache/apk/* /etc/named* /etc/bind* /etc/dhcpd* /etc/radvd* /etc/tor* /bin/ash +RUN ln -sf /bin/bash /bin/ash + +FROM ddnsbase +ARG BUILD_DATE="$(date +'%Y-%m-%d %H:%M')" + +LABEL \ + org.label-schema.name="ddns" \ + org.label-schema.description="My Dynamic DNS server" \ + org.label-schema.url="https://github.com/casjaysdev/ddns" \ + org.label-schema.vcs-url="https://github.com/casjaysdev/ddns" \ + org.label-schema.build-date=$BUILD_DATE \ + org.label-schema.version=$BUILD_DATE \ + org.label-schema.vcs-ref=$BUILD_DATE \ + org.label-schema.license="MIT" \ + org.label-schema.vcs-type="Git" \ + org.label-schema.schema-version="1.0" \ + org.label-schema.vendor="CasjaysDev" \ + maintainer="CasjaysDev " + +ENV HOSTNAME ddns +EXPOSE 53 53/udp 67 67/udp 69 69/udp 80 546 546/udp 8053 8053/udp 9050 9050/udp + +COPY ./files /var/lib/ddns +COPY ./bin/entrypoint.sh /usr/local/bin/entrypoint-ddns.sh + +VOLUME ["/data", "/config"] + +HEALTHCHECK CMD ["/usr/local/bin/entrypoint-ddns.sh","--health"] +ENTRYPOINT ["/usr/local/bin/entrypoint-ddns.sh"] diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..86d4345 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,13 @@ + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2022 Jason Hempstead + + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 1. You just DO WHAT THE FUCK YOU WANT TO. diff --git a/README.md b/README.md new file mode 100644 index 0000000..85e3821 --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ +

+👋 Welcome to ddns 👋 +

+

+StartDocumentationHere +

+ +## Author + +👤 **Jason Hempstead** diff --git a/bin/entrypoint.sh b/bin/entrypoint.sh new file mode 100755 index 0000000..ae0a7e4 --- /dev/null +++ b/bin/entrypoint.sh @@ -0,0 +1,284 @@ +#!/usr/bin/env bash +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +##@Version : 202112111512-git +# @Author : Jason Hempstead +# @Contact : jason@casjaysdev.com +# @License : WTFPL +# @ReadME : entrypoint.sh --help +# @Copyright : Copyright: (c) 2021 Jason Hempstead, Casjays Developments +# @Created : Saturday, Dec 11, 2021 15:12 EST +# @File : entrypoint.sh +# @Description : +# @TODO : +# @Other : +# @Resource : +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +APPNAME="$(basename "$0" 2>/dev/null)" +VERSION="202112111512-git" +USER="${SUDO_USER:-${USER}}" +HOME="${USER_HOME:-${HOME}}" +SRC_DIR="${BASH_SOURCE%/*}" +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Set bash options +if [[ "$1" == "--debug" ]]; then shift 1 && set -xo pipefail && export SCRIPT_OPTS="--debug" && export _DEBUG="on"; fi + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' +# Set functions +__help() { + echo 'docker entry point script + options are: +'$APPNAME' --help +'$APPNAME' --version +'$APPNAME' --shell +'$APPNAME' --help +'$APPNAME' --health +'$APPNAME' --status +' +} +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +__list_options() { echo "${1:-$ARRAY}" | sed 's|:||g;s|'$2'| '$3'|g' 2>/dev/null; } +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Additional functions +__run_dns() { + named-checkconf -z /etc/named.conf + named -c /etc/named.conf +} +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Check for needed applications +type -P bash &>/dev/null || { echo "Missing: bash" && exit 1; } +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Set variables +exitCode=0 + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Application Folders + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Show warn message if variables are missing + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Set options +SETARGS="$*" +SHORTOPTS="" +LONGOPTS="options,version,help,shell,health,status" +ARRAY="" +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Setup application options +setopts=$(getopt -o "$SHORTOPTS" --long "$LONGOPTS" -a -n "$APPNAME" -- "$@" 2>/dev/null) +eval set -- "${setopts[@]}" 2>/dev/null +while :; do + case $1 in + --options) + shift 1 + [ -n "$1" ] || printf 'Current options for %s\n' "${PROG:-$APPNAME}" + [ -z "$SHORTOPTS" ] || __list_options "Short Options" "-$SHORTOPTS" ',' '-' + [ -z "$LONGOPTS" ] || __list_options "Long Options" "--$LONGOPTS" ',' '--' + [ -z "$ARRAY" ] || __list_options "Base Options" "$ARRAY" ',' '' + exit $? + ;; + --help) + shift 1 + __help + exit + ;; + --version) + shift 1 + printf "$APPNAME Version: $VERSION\n" + exit + ;; + --shell) + shift 1 + bash -s /root/.profile -l + exit $? + ;; + --health) + shift 1 + exitCode=0 + for proc in named tor tftp named dhcp radvd php; do + ps aux | grep -Ev 'grep|tail' | grep -q "$proc" && echo "$proc" || exitCode+=1 + done + exit ${exitCode:-$?} + ;; + --status) + shift 1 + netstat -taupln | grep -E '^udp|LISTEN' + exit ${exitCode:-$?} + ;; + --) + shift 1 + ARGS="$1" + set -- + break + ;; + esac +done +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +[[ -f "/run/ddns.pid" ]] && echo "PID file exists" && exit 1 +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Additional variables +[[ -f "/root/.bashrc" ]] || printf "source /etc/profile\ncd %s\n" "$HOME" >"/root/.bashrc" +[[ -f "/root/.bashrc" ]] && source "/root/.bashrc" +[[ -f "/config/env" ]] && source "/config/env" +DATE="$(date +%Y%m%d)01" +OLD_DATE="${OLD_DATE:-2018020901}" +NETDEV="$(ip route 2>/dev/null | grep default | sed -e "s/^.*dev.//" -e "s/.proto.*//" | awk '{print $1}')" +IPV4_ADDR="$(ifconfig $NETDEV 2>/dev/null | grep -E "venet|inet" | grep -v "127.0.0." | grep 'inet' | grep -v inet6 | awk '{print $2}' | sed s/addr://g | head -n1 | grep '^' || echo '')" +IPV6_ADDR="$(ifconfig "$NETDEV" 2>/dev/null | grep -E "venet|inet" | grep 'inet6' | grep -i global | awk '{print $2}' | head -n1 | grep '^' || echo '')" +IPV4_ADDR_GATEWAY="$(ip route show default | awk '/default/ {print $3}' | head -n1 | grep '^' || echo '')" +IPV4_ADDR="${IPV4_ADDR:-10.0.0.2}" +IPV4_ADDR_SUBNET="${IPV4_ADDR_SUBNET:-10.0.0.0}" +IPV4_ADDR_START="${IPV4_ADDR_START:-10.0.100.1}" +IPV4_ADDR_END="${IPV4_ADDR_END:-10.0.100.254}" +IPV4_ADDR_NETMASK="${IPV4_ADDR_NETMASK:-255.255.0.0}" +IPV4_ADDR_GATEWAY="${IPV4_ADDR_GATEWAY:-10.0.0.1}" +IPV6_ADDR="${IP6_ADDR:-2001:0db8:edfa:1234::2}" +IPV6_ADDR_SUBNET="${IPV6_ADDR_SUBNET:-2001:0db8:edfa:1234::}" +IPV6_ADDR_START="${IPV6_ADDR_START:-2001:0db8:edfa:1234:5678::1}" +IPV6_ADDR_END="${IPV6_ADDR_END:-2001:0db8:edfa:1234:5678::ffff}" +IPV6_ADDR_NETMASK="${IPV6_ADDR_NETMASK:-64}" +IPV6_ADDR_GATEWAY="${IPV6_ADDR_GATEWAY:-2001:0db8:edfa:1234::1}" + +DOMAIN_NAME="${DOMAIN_NAME:-test}" +HOSTNAME="$(hostname -s).${DOMAIN_NAME}" +[[ "$DOMAIN_NAME" == "local" ]] && DOMAIN_NAME="test" +############################################################################### +[[ -f "/config/env" ]] && source "/config/env" +{ + echo 'Starting dynamic DNS server...' + touch /run/ddns.pid + date '+%Y-%m-%d %H:%M' + echo "Setting hostname to $HOSTNAME" +} &>/data/log/entrypoint.log +[[ -d "/data/log" ]] && rm -Rf /data/log/* || mkdir -p "/data/log" +[[ -f "/etc/profile" ]] && [[ ! -f "/root/.profile" ]] && cp -Rf "/etc/profile" "/root/.profile" + +if [[ -f "/config/rndc.key" ]]; then + RNDC_KEY="$(cat /config/rndc.key | grep secret | awk '{print $2}' | sed 's|;||g;s|"||g')" +else + rndc-confgen -a -c /etc/rndc.key &>>/data/log/named.log + RNDC_KEY="$(cat /etc/rndc.key | grep secret | awk '{print $2}' | sed 's|;||g;s|"||g')" + [[ -f "/config/rndc.key" ]] || cp -Rf "/etc/rndc.key" "/config/rndc.key" &>>/data/log/entrypoint.log + [[ -f "/config/rndc.conf" ]] || { [[ -f "/etc/rndc.conf" ]] && cp -Rf "/etc/rndc.conf" "/config/rndc.conf" &>>/data/log/entrypoint.log; } +fi +[[ -d "/run/tor" ]] || mkdir -p "/run/tor" &>>/data/log/entrypoint.log +[[ -d "/etc/dhcp" ]] || mkdir -p "/etc/dhcp" &>>/data/log/entrypoint.log +[[ -d "/run/dhcp" ]] || mkdir -p "/run/dhcp" &>>/data/log/entrypoint.log +[[ -d "/var/tftpboot" ]] && [[ ! -d "/data/tftp" ]] && mv -f "/var/tftpboot" "/data/tftp" &>>/data/log/entrypoint.log +[[ -d "/var/lib/dhcp" ]] || mkdir -p "/var/lib/dhcp" &>>/data/log/entrypoint.log +[[ -d "/data/tor" ]] || cp -Rf "/var/lib/tor" "/data/tor" &>>/data/log/entrypoint.log +[[ -d "/data/web" ]] || cp -Rf "/var/lib/ddns/data/web" "/data/web" &>>/data/log/entrypoint.log +[[ -d "/data/named" ]] || cp -Rf "/var/lib/ddns/data/named" "/data/named" &>>/data/log/entrypoint.log +[[ -d "/config/tor" ]] || cp -Rf "/var/lib/ddns/config/tor" "/config/tor" &>>/data/log/entrypoint.log +[[ -d "/config/dhcp" ]] || cp -Rf "/var/lib/ddns/config/dhcp" "/config/dhcp" &>>/data/log/entrypoint.log +[[ -d "/config/named" ]] || cp -Rf "/var/lib/ddns/config/named" "/config/named" &>>/data/log/entrypoint.log +[[ -f "/config/radvd.conf" ]] || cp -Rf "/var/lib/ddns/config/radvd.conf" "/config/radvd.conf" &>>/data/log/entrypoint.log +[[ -f "/config/named.conf" ]] || cp -Rf "/var/lib/ddns/config/named.conf" "/config/named.conf" &>>/data/log/entrypoint.log +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Main application +find "/config" "/data" -type f -exec sed -i 's|'${OLD_DATE:-2018020901}'|'$DATE'|g' {} \; +find "/config" "/data" -type f -exec sed -i 's|REPLACE_DOMAIN|'$DOMAIN_NAME'|g' {} \; +find "/config" "/data" -type f -exec sed -i 's|REPLACE_WITH_RNDC_KEY|'$RNDC_KEY'|g' {} \; +find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV4_ADDRESS|'$IPV4_ADDR'|g' {} \; +find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV4_ADDR_START|'$IPV4_ADDR_START'|g' {} \; +find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV4_ADDR_END|'$IPV4_ADDR_END'|g' {} \; +find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV4_SUBNET|'$IPV4_ADDR_SUBNET'|g' {} \; +find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV4_NETMASK|'$IPV4_ADDR_NETMASK'|g' {} \; +find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV4_GATEWAY|'$IPV4_ADDR_GATEWAY'|g' {} \; +find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV6_ADDRESS|'$IPV6_ADDR'|g' {} \; +find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV6_ADDR_START|'$IPV6_ADDR_START'|g' {} \; +find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV6_ADDR_END|'$IPV6_ADDR_END'|g' {} \; +find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV6_SUBNET|'$IPV6_ADDR_SUBNET'|g' {} \; +find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV6_NETMASK|'$IPV6_ADDR_NETMASK'|g' {} \; +find "/config" "/data" -type f -exec sed -i 's|REPLACE_IPV6_GATEWAY|'$IPV6_ADDR_GATEWAY'|g' {} \; + +if [ ! -f "/confiv/env" ]; then + echo "Creating file: /config/env" &>>/data/log/entrypoint.log + cat </config/env +RNDC_KEY="${RNDC_KEY:-}" +OLD_DATE="${OLD_DATE:-2018020901}" +NETDEV="$(ip route 2>/dev/null | grep default | sed -e "s/^.*dev.//" -e "s/.proto.*//" | awk '{print $1}')" +IPV4_ADDR="$(ifconfig $NETDEV 2>/dev/null | grep -E "venet|inet" | grep -v "127.0.0." | grep 'inet' | grep -v inet6 | awk '{print $2}' | sed s/addr://g | head -n1 | grep '^' || echo '')" +IPV6_ADDR="$(ifconfig "$NETDEV" 2>/dev/null | grep -E "venet|inet" | grep 'inet6' | grep -i global | awk '{print $2}' | head -n1 | grep '^' || echo '')" +IPV4_ADDR="${IPV4_ADDR:-10.0.0.2}" +IPV4_ADDR_SUBNET="${IPV4_ADDR_SUBNET:-10.0.0.0}" +IPV4_ADDR_START="${IPV4_ADDR_START:-10.0.100.1}" +IPV4_ADDR_END="${IPV4_ADDR_END:-10.0.100.254}" +IPV4_ADDR_NETMASK="${IPV4_ADDR_NETMASK:-255.255.0.0}" +IPV4_ADDR_GATEWAY="${IPV4_ADDR_GATEWAY:-10.0.0.1}" +IPV6_ADDR="${IP6_ADDR:-2001:0db8:edfa:1234::2}" +IPV6_ADDR_SUBNET="${IPV6_ADDR_SUBNET:-2001:0db8:edfa:1234::}" +IPV6_ADDR_START="${IPV6_ADDR_START:-2001:0db8:edfa:1234:5678::1}" +IPV6_ADDR_END="${IPV6_ADDR_END:-2001:0db8:edfa:1234:5678::ffff}" +IPV6_ADDR_NETMASK="${IPV6_ADDR_NETMASK:-64}" +IPV6_ADDR_GATEWAY="${IPV6_ADDR_GATEWAY:-2001:0db8:edfa:1234::1}" + +EOF +fi + +if [[ -f "/config/named.conf" ]]; then + echo "Initializing named" &>>/data/log/entrypoint.log + rm -R /data/log/dns/* &>>/data/log/entrypoint.log + cp -Rf "/config/named.conf" "/etc/named.conf" + [[ -d "/data/log/dns" ]] || mkdir -p "/data/log/dns" + [[ -d "/data/named" ]] && cp -Rf "/data/named" "/var/named" + [[ -d "/config/named" ]] && cp -Rf "/config/named" "/etc/named" + [[ -f "/config/rndc.key" ]] && cp -Rf "/config/rndc.key" "/etc/rndc.key" + [[ -f "/config/rndc.conf" ]] && cp -Rf "/config/rndc.conf" "/etc/rndc.conf" + chmod -f 777 "/data/log/dns" + __run_dns &>>/data/log/named.log & + sleep .5 +fi + +if [[ -n "$IP6_ADDR" ]]; then + if [[ -f "/config/dhcp/dhcpd6.conf" ]]; then + echo "Initializing dhcpd6" &>>/data/log/entrypoint.log + cp -Rf "/config/dhcp/dhcpd6.conf" "/etc/dhcp/dhcpd6.conf" + touch /var/lib/dhcp/dhcpd6.leases + dhcpd -6 -cf /etc/dhcp/dhcpd6.conf &>>/data/log/dhcpd6.log & + sleep .5 + fi + if [[ -f "/config/radvd.conf" ]]; then + echo "Initializing radvd" &>>/data/log/entrypoint.log + cp -Rf "/config/radvd.conf" "/etc/radvd.conf" + radvd -C /etc/radvd.conf &>>/data/log/radvd.log & + sleep .5 + fi +fi + +if [[ -f "/config/dhcp/dhcpd4.conf" ]]; then + echo "Initializing dhcpd4" &>>/data/log/entrypoint.log + cp -Rf "/config/dhcp/dhcpd4.conf" "/etc/dhcp/dhcpd4.conf" + touch /var/lib/dhcp/dhcpd.leases + dhcpd -4 -cf /etc/dhcp/dhcpd4.conf &>>/data/log/dhcpd4.log & + sleep .5 +fi + +if [[ -d "/config/tor" ]]; then + echo "Initializing tor" &>>/data/log/entrypoint.log + [[ -d "/config/tor" ]] && cp -Rf "/config/tor" "/etc/tor" + chown -Rf root:root "/var/lib/tor" + chmod 700 "/run/tor" + tor -f "/etc/tor/torrc" &>>/data/log/tor.log & +fi +if [[ -d "/data/tftp" ]]; then + echo "Initializing tftp" &>>/data/log/entrypoint.log + rm -Rf "/var/tftpboot" + ln -sf "/data/tftp" "/var/tftpboot" + in.tftpd -vv -L /var/tftpboot &>/data/log/tftpd.log & +fi +if [[ -f "/data/web/index.php" ]]; then + php_bin="$(command -v php || command -v php8 || false)" + if [[ -n "$php_bin" ]]; then + echo "Initializing web on $IP_ADDR" &>>/data/log/entrypoint.log + $php_bin -S 0.0.0.0:80 -t "/data/web" &>>/data/log/php.log & + sleep .5 + fi +fi +sleep 5 +date +'%Y-%m-%d %H:%M' >/data/log/entrypoint.log +echo "Initializing completed" &>>/data/log/entrypoint.log +tail -n 1000 -f /data/log/*.log +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +exit ${exitCode:-$?} +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# end diff --git a/files/config/dhcp/dhcpd4.conf b/files/config/dhcp/dhcpd4.conf new file mode 100755 index 0000000..620ba38 --- /dev/null +++ b/files/config/dhcp/dhcpd4.conf @@ -0,0 +1,102 @@ +###### +#Domain REPLACE_DOMAIN is dynamic DNS +# +#DHCP REPLACE_IPV4_ADDRESS + + +key rndc-key { +algorithm hmac-md5; +secret REPLACE_WITH_RNDC_KEY; +} + +zone REPLACE_DOMAIN { +primary 127.0.0.1; +key rndc-key; +} + +zone in-addr.arpa. { +primary 127.0.0.1; +key rndc-key; +} + +#option T150 code 150 = string; +#option wpad-url code 252 = text; +#option wpad-url "http://REPLACE_DOMAIN/wpad.dat "; + +authoritative; +ddns-ttl 3600; +ddns-updates on; +ddns-update-style interim; +update-static-leases on; +update-conflict-detection off; +update-optimization on; +use-host-decl-names on; +ddns-domainname "REPLACE_DOMAIN"; +ddns-rev-domainname "in-addr.arpa."; +allow client-updates; +allow unknown-clients; +allow booting ; +allow bootp ; +next-server REPLACE_IPV4_ADDRESS; +filename "linux.0"; +max-lease-time 3600; +default-lease-time 3600; +dynamic-bootp-lease-length 3600; + +subnet REPLACE_IPV4_SUBNET netmask REPLACE_IPV4_NETMASK { +dynamic-bootp-lease-length 3600; +option slp-directory-agent true REPLACE_IPV4_ADDRESS; +option log-servers REPLACE_IPV4_ADDRESS; +option time-servers REPLACE_IPV4_ADDRESS; +allow client-updates; +ddns-updates on; +update-conflict-detection off; +update-static-leases true; +option routers REPLACE_IPV4_GATEWAY; +option subnet-mask REPLACE_IPV4_NETMASK; +option nis-domain "REPLACE_DOMAIN"; +option domain-name "REPLACE_DOMAIN"; +option domain-search "REPLACE_DOMAIN"; +option domain-name-servers REPLACE_IPV4_ADDRESS; +option time-offset -18000; +option ntp-servers REPLACE_IPV4_ADDRESS; +option netbios-name-servers REPLACE_IPV4_ADDRESS; +option netbios-node-type 8; +range dynamic-bootp REPLACE_IPV4_ADDR_START REPLACE_IPV4_ADDR_END; +default-lease-time 3600; +max-lease-time 3600; +authoritative; +allow unknown-clients; +allow booting; +allow bootp; +update-static-leases on; +next-server REPLACE_IPV4_ADDRESS; +filename "pxelinux.0"; +} + +option architecture-type code 93 = unsigned integer 16; + +class "pxeclients" { + match if substring (option vendor-class-identifier, 0, 9) = "PXEClient"; + + if option architecture-type = 0 { + filename "pxelinux.0"; + } elsif option architecture-type = 9 { + filename "syslinux64.efi"; + } elsif option architecture-type = 7 { + filename "syslinux64.efi"; + } elsif option architecture-type = 6 { + filename "syslinux32.efi"; + } +} + +## Begin Fixed Addresses ## +#Servers REPLACE_IPV4_ADDRESS +################################################# + +# host ddns { +# hardware ethernet 52:54:00:8f:c5:cb; +# fixed-address REPLACE_IPV4_ADDRESS; +# ddns-hostname monitor; +# ddns-domainname "REPLACE_DOMAIN"; +# } diff --git a/files/config/dhcp/dhcpd6.conf b/files/config/dhcp/dhcpd6.conf new file mode 100755 index 0000000..d3c8fce --- /dev/null +++ b/files/config/dhcp/dhcpd6.conf @@ -0,0 +1,99 @@ +#Domain REPLACE_DOMAIN is dynamic DNS +# +#Servers REPLACE_IPV6_ADDR + +key rndc-key { +algorithm hmac-md5; +secret REPLACE_WITH_RNDC_KEY; +} + +zone REPLACE_DOMAIN { +primary 127.0.0.1; +key rndc-key; +} + +zone ip6.arpa { +primary 127.0.0.1; +key rndc-key; +} + +#option T150 code 150 = string; +#option wpad-url code 252 = text; +#option wpad-url "http://REPLACE_DOMAIN/wpad.dat"; + +authoritative; +ddns-ttl 3600; +ddns-updates on; +ddns-update-style interim; +update-static-leases on; +update-conflict-detection off; +update-optimization on; +use-host-decl-names on; +ddns-domainname "REPLACE_DOMAIN"; +ddns-rev-domainname "ip6.arpa."; +allow client-updates; +allow unknown-clients; +allow booting ; +allow bootp ; +option dhcp6.bootfile-url "tftp://[REPLACE_IPV6_ADDRESS]/linux.0"; +option dhcp6.bootfile-url code 59 = string ; +max-lease-time 43200; +default-lease-time 43200; +dynamic-bootp-lease-length 43200; + +subnet6 REPLACE_IPV6_SUBNET/REPLACE_IPV6_SUBNET { +dynamic-bootp-lease-length 3600; +allow client-updates; +ddns-ttl 43200; +ddns-updates on; +ddns-update-style standard; +update-static-leases on; +update-static-leases true; +update-conflict-detection off; +update-optimization false; +use-host-decl-names on; +ddns-domainname "REPLACE_DOMAIN"; +ddns-rev-domainname "ip6.arpa"; +option subnet-mask IPV4_ADDR_NETMASK; +option nis-domain "REPLACE_DOMAIN"; +option domain-name "REPLACE_DOMAIN"; +option dhcp6.name-servers REPLACE_IPV6_ADDRESS; +option time-offset -18000; +option netbios-node-type 8; +option dhcp6.domain-search "REPLACE_DOMAIN"; +range6 REPLACE_IPV6_ADDR_START REPLACE_IPV6_ADDR_END; +default-lease-time 43200; +max-lease-time 43200; +authoritative; +allow unknown-clients; +allow booting; +allow bootp; +option dhcp6.bootfile-url "tftp://[REPLACE_IPV6_ADDRESS]/linux.0"; +} + +option architecture-type code 93 = unsigned integer 16; + +class "pxeclients" { + match if substring (option vendor-class-identifier, 0, 9) = "PXEClient"; + + if option architecture-type = 0 { + filename "pxelinux.0"; + } elsif option architecture-type = 9 { + filename "syslinux64.efi"; + } elsif option architecture-type = 7 { + filename "syslinux64.efi"; + } elsif option architecture-type = 6 { + filename "syslinux32.efi"; + } +} + +## Begin Fixed Addresses ## +#Servers REPLACE_IPV6_ADDRESS +################################################# + +# host ddns { +# hardware ethernet 00:50:56:a1:87:a8; +# fixed-address6 REPLACE_IPV6_ADDRESS; +# ddns-hostname ddns; +# ddns-domainname "REPLACE_DOMAIN"; +# } diff --git a/files/config/named.conf b/files/config/named.conf new file mode 100644 index 0000000..fac0e2f --- /dev/null +++ b/files/config/named.conf @@ -0,0 +1,38 @@ +# +options { +version ""; +directory "/var/named"; +pid-file "/var/run/named/named.pid"; +dump-file "/var/named/data/dump.db"; +memstatistics-file "/var/log/named/mem.stats"; +statistics-file "/var/log/named/named.stats"; +zone-statistics yes; +max-cache-size 15m; +interface-interval 60; +lame-ttl 0; +max-ncache-ttl 10800; +recursion yes; +allow-transfer { any; }; +allow-recursion { any; }; +allow-query { any; }; +transfer-format many-answers; +listen-on { any; }; +listen-on-v6 { any; }; +notify yes; +also-notify { }; +dnssec-validation auto; +managed-keys-directory "/etc/named/keys/"; + +forwarders { 1.1.1.1; 8.8.8.8; 8.8.4.4; 9.9.9.9; }; +}; + +include "/etc/named/config/0000-logging.conf"; +include "/etc/named/config/0001-rndc.key"; +include "/etc/named/config/0001-rndc.conf"; +include "/etc/named/config/0002-acl.conf"; + +include "/etc/named/zones/000-hint.conf"; +include "/etc/named/zones/000-localhost.zone"; +include "/etc/named/zones/000-localdomain.zone"; +include "/etc/named/zones/001-ddns.zone"; +include "/etc/named/zones/000-tor.zone"; diff --git a/files/config/named/certbot-update.conf b/files/config/named/certbot-update.conf new file mode 100644 index 0000000..ad6c418 --- /dev/null +++ b/files/config/named/certbot-update.conf @@ -0,0 +1,8 @@ +#Certbot DNS +dns_rfc2136_server = 127.0.0.1 +# TSIG key name +dns_rfc2136_name = certbot. +# TSIG key secret +dns_rfc2136_secret = REPLACE_WITH_RNDC_KEY +# TSIG key algorithm +dns_rfc2136_algorithm = HMAC-MD5 diff --git a/files/config/named/common/001-soa.inc b/files/config/named/common/001-soa.inc new file mode 100644 index 0000000..f24fb3a --- /dev/null +++ b/files/config/named/common/001-soa.inc @@ -0,0 +1,9 @@ +;default soa records +$TTL 38400 ; 10 hours 40 minutes +@ IN SOA dns dns-admin ( + 2021040901 ; serial + 10800 ; refresh (3 hours) + 3600 ; retry (1 hour) + 1209600 ; expire (2 weeks) + 38400 ; minimum (10 hours 40 minutes) + ) diff --git a/files/config/named/common/002-nameservers.inc b/files/config/named/common/002-nameservers.inc new file mode 100644 index 0000000..8f39133 --- /dev/null +++ b/files/config/named/common/002-nameservers.inc @@ -0,0 +1,2 @@ +;default nameservers +@ IN NS dns diff --git a/files/config/named/common/003-dns.inc b/files/config/named/common/003-dns.inc new file mode 100644 index 0000000..1135825 --- /dev/null +++ b/files/config/named/common/003-dns.inc @@ -0,0 +1,8 @@ +;local dns +dns IN A REPLACE_IPV4_ADDRESS +dns IN AAAA REPLACE_IPV6_ADDRESS + +default._domainkey IN TXT ( "v=DKIM1; k=rsa; " + "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDWQ16IV4OzWniRotqTNUvuwO5KknZMm5F5cOQl+Ch20Zm5D3RSL27AcjGE8DXIlkADDG3jFoXKOPilmCyf6ikqDX9PwBpeveY6ugaASMl6DHK4PSGZby6EmFuNu59kIpPJXac7Wwvy7Kd5mWVTZBxQt3ersDf8KRzL+Akr0IE7DwIDAQAB" ) ; +*.default._domainkey IN TXT ( "v=DKIM1; k=rsa; " + "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDWQ16IV4OzWniRotqTNUvuwO5KknZMm5F5cOQl+Ch20Zm5D3RSL27AcjGE8DXIlkADDG3jFoXKOPilmCyf6ikqDX9PwBpeveY6ugaASMl6DHK4PSGZby6EmFuNu59kIpPJXac7Wwvy7Kd5mWVTZBxQt3ersDf8KRzL+Akr0IE7DwIDAQAB" ) ; diff --git a/files/config/named/config/0000-logging.conf b/files/config/named/config/0000-logging.conf new file mode 100644 index 0000000..ae7c25b --- /dev/null +++ b/files/config/named/config/0000-logging.conf @@ -0,0 +1,104 @@ +logging { + # channel default { + # file "/data/log/dns/default.log"; + # severity debug; + # print-category yes; + # print-severity yes; + # print-time yes; + # }; + # category lame-servers { + # default; + # }; + # category dispatch { + # default; + # }; + # category network { + # default; + # }; + # category unmatched { + # default; + # }; + # category client { + # default; + # }; + # category resolver { + # default; + # }; + # category config { + # default; + # }; + # category database { + # default; + # }; + # category general { + # default; + # }; + # category default { + # default; + # }; + + channel security { + file "/data/log/dns/default.log"; + severity dynamic; + print-severity yes; + print-time yes; + }; + category security { + security; + }; + category dnssec { + security; + }; + + channel xfer-in { + file "/data/log/dns/default.log"; + severity info; + print-category yes; + print-severity yes; + print-time yes; + }; + category xfer-in { + xfer-in; + }; + channel xfer-out { + file "/data/log/dns/default.log"; + severity info; + print-category yes; + print-severity yes; + print-time yes; + }; + category xfer-out { + xfer-out; + }; + + channel update { + file "/data/log/dns/default.log"; + severity info; + print-category yes; + print-severity yes; + print-time yes; + }; + category update { + update; + }; + + channel notify { + file "/data/log/dns/default.log"; + severity info; + print-category yes; + print-severity yes; + print-time yes; + }; + category notify { + notify; + }; + + channel querylog { + file "/data/log/dns/default.log"; + severity info; + print-time yes; + }; + category queries { + querylog; + }; +}; diff --git a/files/config/named/config/0001-rndc.conf b/files/config/named/config/0001-rndc.conf new file mode 100644 index 0000000..9737da8 --- /dev/null +++ b/files/config/named/config/0001-rndc.conf @@ -0,0 +1,3 @@ +controls { + inet 127.0.0.1 allow { trusted; } keys { "rndc-key"; }; +}; diff --git a/files/config/named/config/0001-rndc.key b/files/config/named/config/0001-rndc.key new file mode 100644 index 0000000..550ee49 --- /dev/null +++ b/files/config/named/config/0001-rndc.key @@ -0,0 +1,4 @@ +key "rndc-key" { + algorithm hmac-md5; + secret "REPLACE_WITH_RNDC_KEY"; +}; diff --git a/files/config/named/config/0002-acl.conf b/files/config/named/config/0002-acl.conf new file mode 100644 index 0000000..485854b --- /dev/null +++ b/files/config/named/config/0002-acl.conf @@ -0,0 +1,10 @@ + acl "trusted" { + 127.0.0.0/8; + 10.0.0.0/8; + 172.0.0.0/12; + 192.168.0.0/16; + ::1/128; + 2001:db8:edfa:1234::/64; + localhost; + localnets; +}; diff --git a/files/config/named/hosted/host.ddns.conf b/files/config/named/hosted/host.ddns.conf new file mode 100644 index 0000000..bd9c69f --- /dev/null +++ b/files/config/named/hosted/host.ddns.conf @@ -0,0 +1,5 @@ +;host info +@ HINFO "HP DL360" "CentOS" +* HINFO "HP DL360" "CentOS" +@ IN TXT "Hosted on REPLACE_DOMAIN" +* IN TXT "Hosted on REPLACE_DOMAIN" diff --git a/files/config/named/hosted/ip.ddns.conf b/files/config/named/hosted/ip.ddns.conf new file mode 100644 index 0000000..c35d4db --- /dev/null +++ b/files/config/named/hosted/ip.ddns.conf @@ -0,0 +1,5 @@ +;default server +@ IN A REPLACE_IPV4_ADDRESS +* IN A REPLACE_IPV4_ADDRESS +@ IN AAAA REPLACE_IPV6_ADDRESS +* IN AAAA REPLACE_IPV6_ADDRESS diff --git a/files/config/named/keys/managed-keys.bind b/files/config/named/keys/managed-keys.bind new file mode 100644 index 0000000..87b5422 --- /dev/null +++ b/files/config/named/keys/managed-keys.bind @@ -0,0 +1,33 @@ +$ORIGIN . +$TTL 0 ; 0 seconds +@ IN SOA . . ( + 1930 ; serial + 0 ; refresh (0 seconds) + 0 ; retry (0 seconds) + 0 ; expire (0 seconds) + 0 ; minimum (0 seconds) + ) + KEYDATA 20201227202202 20180303084353 19700101000000 257 3 8 ( + AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQ + bSEW0O8gcCjFFVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh + /RStIoO8g0NfnfL2MTJRkxoXbfDaUeVPQuYEhg37NZWA + JQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaDX6RS6CXp + oY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3 + LQpzW5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGO + Yl7OyQdXfZ57relSQageu+ipAdTTJ25AsRTAoub8ONGc + LmqrAmRLKBP1dfwhYB4N7knNnulqQxA+Uk1ihz0= + ) ; KSK; alg = RSASHA256; key id = 19036 + ; next refresh: Sun, 27 Dec 2020 20:22:02 GMT + ; trusted since: Sat, 03 Mar 2018 08:43:53 GMT + KEYDATA 20201227202202 20180303084353 19700101000000 257 3 8 ( + AwEAAaz/tAm8yTn4Mfeh5eyI96WSVexTBAvkMgJzkKTO + iW1vkIbzxeF3+/4RgWOq7HrxRixHlFlExOLAJr5emLvN + 7SWXgnLh4+B5xQlNVz8Og8kvArMtNROxVQuCaSnIDdD5 + LKyWbRd2n9WGe2R8PzgCmr3EgVLrjyBxWezF0jLHwVN8 + efS3rCj/EWgvIWgb9tarpVUDK/b58Da+sqqls3eNbuv7 + pr+eoZG+SrDK6nWeL3c6H5Apxz7LjVc1uTIdsIXxuOLY + A4/ilBmSVIzuDWfdRUfhHdY6+cn8HFRm+2hM8AnXGXws + 9555KrUB5qihylGa8subX2Nn6UwNR1AkUTV74bU= + ) ; KSK; alg = RSASHA256; key id = 20326 + ; next refresh: Sun, 27 Dec 2020 20:22:02 GMT + ; trusted since: Sat, 03 Mar 2018 08:43:53 GMT diff --git a/files/config/named/zones/000-hint.conf b/files/config/named/zones/000-hint.conf new file mode 100644 index 0000000..5300504 --- /dev/null +++ b/files/config/named/zones/000-hint.conf @@ -0,0 +1,4 @@ +zone "." in { + type hint; + file "data/hint"; +}; diff --git a/files/config/named/zones/000-localdomain.zone b/files/config/named/zones/000-localdomain.zone new file mode 100644 index 0000000..8496304 --- /dev/null +++ b/files/config/named/zones/000-localdomain.zone @@ -0,0 +1,6 @@ +zone "local" { + type master; + file "data/localdomain.conf"; + allow-update { trusted; }; + allow-transfer { trusted; }; +}; diff --git a/files/config/named/zones/000-localhost.zone b/files/config/named/zones/000-localhost.zone new file mode 100644 index 0000000..2c123e9 --- /dev/null +++ b/files/config/named/zones/000-localhost.zone @@ -0,0 +1,14 @@ +zone "localhost" { + type master; + file "data/localhost.zone"; +}; + +zone "0.0.127.in-addr.arpa" { + type master; + file "data/localhost4.rev"; +}; + +zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" { + type master; + file "data/localhost6.rev"; +}; diff --git a/files/config/named/zones/000-tor.zone b/files/config/named/zones/000-tor.zone new file mode 100644 index 0000000..2bbd40e --- /dev/null +++ b/files/config/named/zones/000-tor.zone @@ -0,0 +1,10 @@ +zone "onion" { + type forward; + forward only; + forwarders { 127.0.0.1 port 8053; }; +}; +zone "exit" { + type forward; + forward only; + forwarders { 127.0.0.1 port 8053; }; +}; diff --git a/files/config/named/zones/001-ddns.zone b/files/config/named/zones/001-ddns.zone new file mode 100644 index 0000000..2b2c945 --- /dev/null +++ b/files/config/named/zones/001-ddns.zone @@ -0,0 +1,21 @@ +zone "REPLACE_DOMAIN" { + type master; + file "dynamic/ddns.zone"; + allow-update { trusted; }; + allow-transfer { trusted; }; +}; + +zone "in-addr.arpa" { + type master; + file "reverse/in-addr.arpa.rev"; + allow-update { trusted; }; + allow-transfer { trusted; }; + +}; + +zone "ip6.arpa" { + type master; + file "reverse/ip6.arpa.rev"; + allow-update { trusted; }; + allow-transfer { trusted; }; +}; diff --git a/files/config/radvd.conf b/files/config/radvd.conf new file mode 100644 index 0000000..6c118f2 --- /dev/null +++ b/files/config/radvd.conf @@ -0,0 +1,10 @@ +# RADVD with DHCPd6 configuration +# /etc/radvd.conf +interface eth0 { + AdvManagedFlag on; + AdvSendAdvert on; +# AdvAutonomous off; + AdvOtherConfigFlag on; + MinRtrAdvInterval 3; + MaxRtrAdvInterval 60; +}; diff --git a/files/config/tor/torrc b/files/config/tor/torrc new file mode 100644 index 0000000..45488ec --- /dev/null +++ b/files/config/tor/torrc @@ -0,0 +1,49 @@ +## https://github.com/torproject/tor/blob/main/src/config/torrc.sample.in +############### Configuration file for a typical Tor user +ControlSocket /run/tor/control +ControlSocketsGroupWritable 1 +CookieAuthentication 1 +CookieAuthFile /run/tor/control.authcookie +CookieAuthFileGroupReadable 1 +SOCKSPort 9050 +SOCKSPolicy accept * +RunAsDaemon 0 +DataDirectory /var/lib/tor +ControlPort 9051 +Log notice stderr +#HashedControlPassword 16:kfhkajdsfhkjadhfiuhfhdjcahsf + +############### dnsforwarder +DNSPort 8053 +AutomapHostsOnResolve 1 +AutomapHostsSuffixes .exit,.onion + +############### This section is just for location-hidden services ### +#HiddenServiceDir /data/tor/hidden/default +#HiddenServicePort 22 127.0.0.2:22 + +################ This section is just for relays ##################### +#ORPort 9001 +#ORPort 443 NoListen +#ORPort 127.0.0.1:9090 NoAdvertise +#Address noname.example.com +# OutboundBindAddress 10.0.0.5 +#Nickname ididnteditheconfig +#RelayBandwidthRate 100 KBytes # Throttle traffic to 100KB/s (800Kbps) +#RelayBandwidthBurst 200 KBytes # But allow bursts up to 200KB (1600Kb) +#AccountingMax 40 GBytes +#AccountingStart day 00:00 +#AccountingStart month 3 15:00 +#ContactInfo Random Person +#DirPort 9030 # what port to advertise for directory connections +#DirPort 80 NoListen +#DirPort 127.0.0.1:9091 NoAdvertise +#DirPortFrontPage /etc/tor/tor-exit-notice.html +#MyFamily $keyid,$keyid,... +#ExitPolicy accept *:6660-6667,reject *:* # allow irc ports on IPv4 and IPv6 but no more +#ExitPolicy accept *:119 # accept nntp ports on IPv4 and IPv6 as well as default exit policy +#ExitPolicy accept *4:119 # accept nntp ports on IPv4 only as well as default exit policy +#ExitPolicy accept6 *6:119 # accept nntp ports on IPv6 only as well as default exit policy +#ExitPolicy reject *:* # no exits allowed +#BridgeRelay 1 +#PublishServerDescriptor 0 diff --git a/files/data/named/data/hint b/files/data/named/data/hint new file mode 100644 index 0000000..eedc9a2 --- /dev/null +++ b/files/data/named/data/hint @@ -0,0 +1,77 @@ +; +. 3600000 NS A.ROOT-SERVERS.NET. +A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 +A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:ba3e::2:30 +; +; FORMERLY NS1.ISI.EDU +; +. 3600000 NS B.ROOT-SERVERS.NET. +B.ROOT-SERVERS.NET. 3600000 A 199.9.14.201 +B.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:200::b +; +; FORMERLY C.PSI.NET +; +. 3600000 NS C.ROOT-SERVERS.NET. +C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 +C.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2::c +; +; FORMERLY TERP.UMD.EDU +; +. 3600000 NS D.ROOT-SERVERS.NET. +D.ROOT-SERVERS.NET. 3600000 A 199.7.91.13 +D.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2d::d +; +; FORMERLY NS.NASA.GOV +; +. 3600000 NS E.ROOT-SERVERS.NET. +E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10 +E.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:a8::e +; +; FORMERLY NS.ISC.ORG +; +. 3600000 NS F.ROOT-SERVERS.NET. +F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241 +F.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2f::f +; +; FORMERLY NS.NIC.DDN.MIL +; +. 3600000 NS G.ROOT-SERVERS.NET. +G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4 +G.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:12::d0d +; +; FORMERLY AOS.ARL.ARMY.MIL +; +. 3600000 NS H.ROOT-SERVERS.NET. +H.ROOT-SERVERS.NET. 3600000 A 198.97.190.53 +H.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:1::53 +; +; FORMERLY NIC.NORDU.NET +; +. 3600000 NS I.ROOT-SERVERS.NET. +I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17 +I.ROOT-SERVERS.NET. 3600000 AAAA 2001:7fe::53 +; +; OPERATED BY VERISIGN, INC. +; +. 3600000 NS J.ROOT-SERVERS.NET. +J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30 +J.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:c27::2:30 +; +; OPERATED BY RIPE NCC +; +. 3600000 NS K.ROOT-SERVERS.NET. +K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129 +K.ROOT-SERVERS.NET. 3600000 AAAA 2001:7fd::1 +; +; OPERATED BY ICANN +; +. 3600000 NS L.ROOT-SERVERS.NET. +L.ROOT-SERVERS.NET. 3600000 A 199.7.83.42 +L.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:9f::42 +; +; OPERATED BY WIDE +; +. 3600000 NS M.ROOT-SERVERS.NET. +M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33 +M.ROOT-SERVERS.NET. 3600000 AAAA 2001:dc3::35 +; End of file diff --git a/files/data/named/data/localdomain.conf b/files/data/named/data/localdomain.conf new file mode 100644 index 0000000..f533abf --- /dev/null +++ b/files/data/named/data/localdomain.conf @@ -0,0 +1,13 @@ +; Default zone +$ORIGIN local. +$TTL 38400 +; ***********CHANGE THESE TO MATCH PROVIDER*************** +$INCLUDE /etc/named/hosted/host.ddns.conf +$INCLUDE /etc/named/hosted/ip.ddns.conf +; **********Common Files********** +$INCLUDE /etc/named/common/001-soa.inc +$INCLUDE /etc/named/common/002-nameservers.inc +$INCLUDE /etc/named/common/003-dns.inc + +$INCLUDE /var/named/dynamic/inc/static.ipv4.ddns.zone +$INCLUDE /var/named/dynamic/inc/static.ipv6.ddns.zone diff --git a/files/data/named/data/localhost.zone b/files/data/named/data/localhost.zone new file mode 100644 index 0000000..316e42b --- /dev/null +++ b/files/data/named/data/localhost.zone @@ -0,0 +1,11 @@ +$ttl 38400 +localhost. IN SOA localhost. admin.localhost. ( + 2018020901 10800 3600 1209600 38400 + ) + +localhost. IN NS localhost. +localhost. IN A 127.0.0.1 +localhost. IN AAAA ::1 +localhost. IN MX 0 localhost. +localhost. IN TXT "v=spf1 a mx ptr all" +localhost. IN SPF "v=spf1 a mx ptr all" diff --git a/files/data/named/data/localhost4.rev b/files/data/named/data/localhost4.rev new file mode 100644 index 0000000..ad40dde --- /dev/null +++ b/files/data/named/data/localhost4.rev @@ -0,0 +1,7 @@ +$ttl 38400 +0.0.127.in-addr.arpa. IN SOA 127.0.0.1. admin.localhost. ( + 2018020901 10800 3600 1209600 38400 + ) + +0.0.127.in-addr.arpa. IN NS localhost. +1.0.0.127.in-addr.arpa. IN PTR localhost. diff --git a/files/data/named/data/localhost6.rev b/files/data/named/data/localhost6.rev new file mode 100644 index 0000000..ae2e7cb --- /dev/null +++ b/files/data/named/data/localhost6.rev @@ -0,0 +1,7 @@ +$ttl 38400 +0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa. IN SOA 127.0.0.1. admin.localhost. ( + 2018020901 10800 3600 1209600 38400 +) + +0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa. IN NS localhost. +1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa. IN PTR localhost. diff --git a/files/data/named/dynamic/ddns.zone b/files/data/named/dynamic/ddns.zone new file mode 100644 index 0000000..dad8d07 --- /dev/null +++ b/files/data/named/dynamic/ddns.zone @@ -0,0 +1,23 @@ +; REPLACE_DOMAIN +$ORIGIN REPLACE_DOMAIN. +$TTL 38400 ; 10 hours 40 minutes +@ IN SOA dns.REPLACE_DOMAIN. dns-admin.REPLACE_DOMAIN. ( + 2020083021 ; serial + 10800 ; refresh (3 hours) + 3600 ; retry (1 hour) + 1209600 ; expire (2 weeks) + 38400 ; minimum (10 hours 40 minutes) + ) + +; **********Common Files********** +$INCLUDE /etc/named/common/002-nameservers.inc +$INCLUDE /etc/named/common/003-dns.inc + +; ***********CHANGE THESE TO MATCH PROVIDER*************** +$INCLUDE /etc/named/hosted/host.ddns.conf +$INCLUDE /etc/named/hosted/ip.ddns.conf + +; **********Address Files********** +$INCLUDE /var/named/dynamic/inc/static.ipv4.ddns.zone +$INCLUDE /var/named/dynamic/inc/static.ipv6.ddns.zone +$INCLUDE /var/named/dynamic/inc/cnames.ddns.zone diff --git a/files/data/named/dynamic/inc/cnames.ddns.zone b/files/data/named/dynamic/inc/cnames.ddns.zone new file mode 100644 index 0000000..40aebff --- /dev/null +++ b/files/data/named/dynamic/inc/cnames.ddns.zone @@ -0,0 +1,7 @@ +; cname mappings +smtp CNAME mail +pop3 CNAME mail +imap CNAME mail + +@ MX 1 mail +* MX 1 mail diff --git a/files/data/named/dynamic/inc/static.ipv4.arpa.rev b/files/data/named/dynamic/inc/static.ipv4.arpa.rev new file mode 100644 index 0000000..19967b8 --- /dev/null +++ b/files/data/named/dynamic/inc/static.ipv4.arpa.rev @@ -0,0 +1,14 @@ +; static ipv4 reverse mappings +$ORIGIN . +$TTL 38400 ; 10 hours 40 minutes +in-addr.arpa IN SOA dns.REPLACE_DOMAIN. admin.REPLACE_DOMAIN. ( + 2018013087 ; serial + 10800 ; refresh (3 hours) + 3600 ; retry (1 hour) + 1209600 ; expire (2 weeks) + 38400 ; minimum (10 hours 40 minutes) + ) + NS dns1.REPLACE_DOMAIN. + NS dns2.REPLACE_DOMAIN. + +$ORIGIN in-addr.arpa. diff --git a/files/data/named/dynamic/inc/static.ipv4.ddns.zone b/files/data/named/dynamic/inc/static.ipv4.ddns.zone new file mode 100644 index 0000000..4de3d56 --- /dev/null +++ b/files/data/named/dynamic/inc/static.ipv4.ddns.zone @@ -0,0 +1,5 @@ +; static ipv4 mappings +localhost A 127.0.0.1 +gateway A 192.168.1.254 + +* A REPLACE_IPV4_ADDRESS diff --git a/files/data/named/dynamic/inc/static.ipv6.arpa.rev b/files/data/named/dynamic/inc/static.ipv6.arpa.rev new file mode 100644 index 0000000..a1c8e06 --- /dev/null +++ b/files/data/named/dynamic/inc/static.ipv6.arpa.rev @@ -0,0 +1 @@ +; static ipv6 reverse mappings diff --git a/files/data/named/dynamic/inc/static.ipv6.ddns.zone b/files/data/named/dynamic/inc/static.ipv6.ddns.zone new file mode 100644 index 0000000..5a60320 --- /dev/null +++ b/files/data/named/dynamic/inc/static.ipv6.ddns.zone @@ -0,0 +1 @@ +; static ipv6 mappings diff --git a/files/data/named/dynamic/inc/static.sso.ddns.zone b/files/data/named/dynamic/inc/static.sso.ddns.zone new file mode 100644 index 0000000..244da40 --- /dev/null +++ b/files/data/named/dynamic/inc/static.sso.ddns.zone @@ -0,0 +1,12 @@ +; static srv mappings +; _kerberos-master._tcp.REPLACE_DOMAIN. 86400 IN SRV 0 100 88 sso.REPLACE_DOMAIN. +; _kerberos-master._udp.REPLACE_DOMAIN. 86400 IN SRV 0 100 88 sso.REPLACE_DOMAIN. +; _kerberos._tcp.REPLACE_DOMAIN. 86400 IN SRV 0 100 88 sso.REPLACE_DOMAIN. +; _kerberos._udp.REPLACE_DOMAIN. 86400 IN SRV 0 100 88 sso.REPLACE_DOMAIN. +; _kerberos.REPLACE_DOMAIN. 86400 IN TXT "REPLACE_DOMAIN" +; _kpasswd._tcp.REPLACE_DOMAIN. 86400 IN SRV 0 100 464 sso.REPLACE_DOMAIN. +; _kpasswd._udp.REPLACE_DOMAIN. 86400 IN SRV 0 100 464 sso.REPLACE_DOMAIN. +; _ldap._tcp.REPLACE_DOMAIN. 86400 IN SRV 0 100 389 sso.REPLACE_DOMAIN. +; _ntp._udp.REPLACE_DOMAIN. 86400 IN SRV 0 100 123 sso.REPLACE_DOMAIN. +; ipa-ca.REPLACE_DOMAIN. 86400 IN A REPLACE_IPV4_ADDRESS +; ipa-ca.REPLACE_DOMAIN. 86400 IN AAAA 2001:db8:edfa:1234:5678::ff1f diff --git a/files/data/named/master/.gitkeep b/files/data/named/master/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/files/data/named/reverse/in-addr.arpa.rev b/files/data/named/reverse/in-addr.arpa.rev new file mode 100644 index 0000000..3c44105 --- /dev/null +++ b/files/data/named/reverse/in-addr.arpa.rev @@ -0,0 +1,12 @@ +$ORIGIN . +$TTL 38400 ; 10 hours 40 minutes +in-addr.arpa IN SOA dns.REPLACE_DOMAIN. admin.REPLACE_DOMAIN. ( + 2018013087 ; serial + 10800 ; refresh (3 hours) + 3600 ; retry (1 hour) + 1209600 ; expire (2 weeks) + 38400 ; minimum (10 hours 40 minutes) + ) + NS dns.REPLACE_DOMAIN. + +$INCLUDE /var/named/dynamic/inc/static.ipv4.arpa.rev diff --git a/files/data/named/reverse/ip6.arpa.rev b/files/data/named/reverse/ip6.arpa.rev new file mode 100644 index 0000000..793f65d --- /dev/null +++ b/files/data/named/reverse/ip6.arpa.rev @@ -0,0 +1,13 @@ +$ORIGIN . +$TTL 38400 ; 10 hours 40 minutes +ip6.arpa. IN SOA dns.REPLACE_DOMAIN. admin.REPLACE_DOMAIN. ( + 2018013087 ; serial + 10800 ; refresh (3 hours) + 3600 ; retry (1 hour) + 1209600 ; expire (2 weeks) + 38400 ; minimum (10 hours 40 minutes) + ) + NS dns.REPLACE_DOMAIN. + +$ORIGIN ip6.arpa. +$INCLUDE /var/named/dynamic/inc/static.ipv6.arpa.rev diff --git a/files/data/named/slaves/.gitkeep b/files/data/named/slaves/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/files/data/named/slaves/.gitkeep @@ -0,0 +1 @@ + diff --git a/files/data/web/css/.gitkeep b/files/data/web/css/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/files/data/web/images/.gitkeep b/files/data/web/images/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/files/data/web/index.php b/files/data/web/index.php new file mode 100644 index 0000000..a2843f9 --- /dev/null +++ b/files/data/web/index.php @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Dynamic DNS Server + + + + + + + +
+

Welcome

+ Your dynamic dns server has been setup
+ Your config files can be found in the /config directory.
+ Your data files can be found in the /data directory.
+ Your web files can be found in the /data/web directory.
+and your log files can be found in /data/logs
+
+ + + +
+ +