Skip to content
Open
Show file tree
Hide file tree
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
35 changes: 34 additions & 1 deletion scripts/block_internet_access.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,38 @@

echo "Blocking internet access..."

allow_dns_to_configured_resolvers() {
if [ ! -f /etc/resolv.conf ]; then
echo "No /etc/resolv.conf found; skipping DNS firewall allowances."
return
fi

echo "Allowing DNS traffic to configured resolvers..."
while read -r keyword resolver _; do
if [ "$keyword" != "nameserver" ] || [ -z "$resolver" ]; then
continue
fi

case "$resolver" in
*:*)
ip6tables -A OUTPUT -d "$resolver" -p udp --dport 53 -j ACCEPT
ip6tables -A INPUT -s "$resolver" -p udp --sport 53 -j ACCEPT
ip6tables -A OUTPUT -d "$resolver" -p tcp --dport 53 -j ACCEPT
ip6tables -A INPUT -s "$resolver" -p tcp --sport 53 -j ACCEPT
;;
*.*)
iptables -A OUTPUT -d "$resolver" -p udp --dport 53 -j ACCEPT
iptables -A INPUT -s "$resolver" -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -d "$resolver" -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -s "$resolver" -p tcp --sport 53 -j ACCEPT
;;
*)
echo "Skipping unrecognized resolver address: $resolver"
;;
esac
done < /etc/resolv.conf
}

# IPv4 Rules
echo "Configuring IPv4 rules..."

Expand Down Expand Up @@ -48,6 +80,8 @@ iptables -A OUTPUT -d 172.16.0.0/12 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/16 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.0/16 -j ACCEPT

allow_dns_to_configured_resolvers

# Allow NTP traffic - this allows us to synchronize the system time
iptables -I OUTPUT -p udp --dport 123 -j ACCEPT
iptables -I INPUT -p udp --sport 123 -j ACCEPT
Expand Down Expand Up @@ -95,4 +129,3 @@ ip6tables -A OUTPUT -j DROP
ip6tables-save > /etc/iptables/ip6tables.rules

echo "Blocked WAN internet access successfully!"

5 changes: 5 additions & 0 deletions scripts/unblock_internet_access.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,9 @@ iptables -X
iptables -t nat -F
iptables -t nat -X

ip6tables -F
ip6tables -X
ip6tables -t nat -F 2>/dev/null || true
ip6tables -t nat -X 2>/dev/null || true

echo "Unblocked internet access!"