Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -152,14 +152,16 @@ if [ "${OPEN_TERMINAL_ALLOWED_DOMAINS+set}" = "set" ]; then
echo "nameserver 127.0.0.1" | sudo tee /etc/resolv.conf > /dev/null

# iptables: allow ONLY resolved IPs (via ipset) + block everything else
sudo iptables -A OUTPUT -p udp --dport 53 -j DROP # block external DNS
sudo iptables -A OUTPUT -p tcp --dport 53 -j DROP # block external DNS
sudo iptables -A OUTPUT -p udp -d "$UPSTREAM_DNS" --dport 53 -j ACCEPT # allow dnsmasq → upstream DNS
sudo iptables -A OUTPUT -p tcp -d "$UPSTREAM_DNS" --dport 53 -j ACCEPT # allow dnsmasq → upstream DNS (TCP)
sudo iptables -A OUTPUT -p udp --dport 53 -j DROP # block all other external DNS
sudo iptables -A OUTPUT -p tcp --dport 53 -j DROP # block all other external DNS
sudo iptables -A OUTPUT -m set --match-set allowed dst -j ACCEPT # allow resolved IPs
sudo iptables -A OUTPUT -j DROP # drop everything else
fi

echo "Egress firewall active — dropping CAP_NET_ADMIN permanently"
exec capsh --drop=cap_net_admin -- -c "exec open-terminal $*"
exec sudo capsh --drop=cap_net_admin --user=user -- -c "exec open-terminal $*"
fi

exec open-terminal "$@"