Skip to content

Commit 5b29ea0

Browse files
Mossakaclaude
andcommitted
fix: add UDP DROP rule to prevent DNS exfiltration
The OUTPUT filter chain only dropped TCP traffic, leaving UDP unfiltered. This allowed direct DNS queries to external servers (e.g., dig @8.8.8.8) to succeed, defeating the DNS exfiltration prevention. Add iptables -A OUTPUT -p udp -j DROP alongside the existing TCP DROP rule. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 51da036 commit 5b29ea0

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

containers/agent/setup-iptables.sh

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -247,10 +247,13 @@ if [ -n "$AWF_API_PROXY_IP" ]; then
247247
iptables -A OUTPUT -p tcp -d "$AWF_API_PROXY_IP" -j ACCEPT
248248
fi
249249

250-
# Drop all other TCP traffic (default deny policy)
251-
# This ensures that only explicitly allowed ports can be accessed
252-
echo "[iptables] Drop all non-redirected TCP traffic (default deny)..."
250+
# Drop all other TCP and UDP traffic (default deny policy)
251+
# TCP: ensures only explicitly allowed ports can be accessed
252+
# UDP: prevents DNS exfiltration by blocking direct queries to external DNS servers
253+
# (only Docker embedded DNS at 127.0.0.11 via localhost is allowed)
254+
echo "[iptables] Drop all non-allowed TCP and UDP traffic (default deny)..."
253255
iptables -A OUTPUT -p tcp -j DROP
256+
iptables -A OUTPUT -p udp -j DROP
254257

255258
echo "[iptables] NAT rules applied successfully"
256259
echo "[iptables] Current IPv4 NAT OUTPUT rules:"

0 commit comments

Comments
 (0)