diff --git a/src/templates/containers/alm-ci/alm-ci.sh b/src/scripts/containers/alm-ci.sh similarity index 100% rename from src/templates/containers/alm-ci/alm-ci.sh rename to src/scripts/containers/alm-ci.sh diff --git a/src/templates/containers/alm/alm.sh b/src/scripts/containers/alm.sh similarity index 100% rename from src/templates/containers/alm/alm.sh rename to src/scripts/containers/alm.sh diff --git a/src/templates/containers/bot/bot.sh b/src/scripts/containers/bot.sh similarity index 100% rename from src/templates/containers/bot/bot.sh rename to src/scripts/containers/bot.sh diff --git a/src/templates/containers/desktop/desktop.sh b/src/scripts/containers/desktop.sh similarity index 100% rename from src/templates/containers/desktop/desktop.sh rename to src/scripts/containers/desktop.sh diff --git a/src/templates/containers/directory/directory.sh b/src/scripts/containers/directory.sh similarity index 100% rename from src/templates/containers/directory/directory.sh rename to src/scripts/containers/directory.sh diff --git a/src/scripts/containers/dns.sh b/src/scripts/containers/dns.sh new file mode 100644 index 0000000..d711416 --- /dev/null +++ b/src/scripts/containers/dns.sh @@ -0,0 +1,82 @@ +#!/bin/bash +HOST_BASE="/opt/gbo/tenants/$PARAM_TENANT/dns" +HOST_CONF="$HOST_BASE/conf" +HOST_DATA="$HOST_BASE/data" +HOST_LOGS="$HOST_BASE/logs" +mkdir -p "$HOST_BASE" "$HOST_CONF" "$HOST_DATA" "$HOST_LOGS" +chmod -R 750 "$HOST_BASE" + +# Clear existing rules +sudo iptables -F + +# Allow DNS traffic +sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT +sudo iptables -A INPUT -p tcp --dport 53 -j ACCEPT +sudo iptables -A FORWARD -p udp --dport 53 -j ACCEPT +sudo iptables -A FORWARD -p tcp --dport 53 -j ACCEPT + +# Enable NAT +sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE + +# Save rules (if using iptables-persistent) +sudo netfilter-persistent save + +lxc launch images:debian/12 "${PARAM_TENANT}-dns" -c security.privileged=true +until lxc exec "${PARAM_TENANT}-dns" -- true; do sleep 3; done + +# Remove existing proxy devices +lxc config device remove "${PARAM_TENANT}-dns" dns-udp +lxc config device remove "${PARAM_TENANT}-dns" dns-tcp + +# Add correct proxy configuration +lxc config device add "${PARAM_TENANT}-dns" dns-udp proxy listen=udp:0.0.0.0:53 connect=udp:127.0.0.1:53 +lxc config device add "${PARAM_TENANT}-dns" dns-tcp proxy listen=tcp:0.0.0.0:53 connect=tcp:127.0.0.1:53 + +lxc exec "${PARAM_TENANT}-dns" -- bash -c " +mkdir /opt/gbo +mkdir /opt/gbo/{bin,conf,data,logs} + +echo 'nameserver 8.8.8.8' > /etc/resolv.conf + + +apt-get upgrade -y && apt-get install -y wget +wget -qO /opt/gbo/bin/coredns https://github.com/coredns/coredns/releases/download/v1.11.1/coredns_1.11.1_linux_amd64.tgz +tar -xzf /opt/gbo/bin/coredns -C /opt/gbo/bin/ +useradd --system --no-create-home --shell /bin/false gbuser +setcap cap_net_bind_service=+ep /opt/gbo/bin/coredns + + +cat > /etc/systemd/system/dns.service <