fix: scope iptables NAT rule to loopback only to avoid breaking internet
The broad OUTPUT 443→8443 redirect caught all HTTPS traffic system-wide. Scoping to -d 127.0.0.1 means only EA domains (resolved to 127.0.0.1 via /etc/hosts) are redirected; all real internet traffic is unaffected. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -158,8 +158,8 @@ cmd_status() {
|
||||
warn "Hosts entries are NOT configured (run: ./setup.sh hosts)"
|
||||
fi
|
||||
|
||||
if sudo iptables -t nat -L OUTPUT -n 2>/dev/null | grep -q "redir ports $BRIDGE_PORT"; then
|
||||
ok "NAT redirect 443→$BRIDGE_PORT is ACTIVE"
|
||||
if sudo iptables -t nat -L OUTPUT -n -v 2>/dev/null | grep -q "redir ports $BRIDGE_PORT"; then
|
||||
ok "NAT redirect 127.0.0.1:443→$BRIDGE_PORT is ACTIVE"
|
||||
else
|
||||
warn "NAT redirect is NOT active (run: ./setup.sh nat)"
|
||||
fi
|
||||
@@ -205,14 +205,17 @@ cmd_nat() {
|
||||
ok "NAT rule already active"
|
||||
return
|
||||
fi
|
||||
sudo iptables -t nat -A OUTPUT -p tcp --dport 443 -j REDIRECT --to-port "$BRIDGE_PORT"
|
||||
ok "iptables: OUTPUT 443 → $BRIDGE_PORT"
|
||||
# Scope to 127.0.0.1 only — /etc/hosts resolves EA domains to loopback, so
|
||||
# only those connections match. All real internet traffic goes to non-loopback
|
||||
# IPs and is never redirected.
|
||||
sudo iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 443 -j REDIRECT --to-port "$BRIDGE_PORT"
|
||||
ok "iptables: OUTPUT 127.0.0.1:443 → $BRIDGE_PORT"
|
||||
warn "This rule is NOT persistent across reboots. Re-run './setup.sh nat' after reboot or use iptables-save."
|
||||
}
|
||||
|
||||
cmd_unnat() {
|
||||
if sudo iptables -t nat -L OUTPUT -n 2>/dev/null | grep -q "redir ports $BRIDGE_PORT"; then
|
||||
sudo iptables -t nat -D OUTPUT -p tcp --dport 443 -j REDIRECT --to-port "$BRIDGE_PORT"
|
||||
sudo iptables -t nat -D OUTPUT -p tcp -d 127.0.0.1 --dport 443 -j REDIRECT --to-port "$BRIDGE_PORT"
|
||||
ok "Removed iptables NAT rule"
|
||||
fi
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user