当互联网被阻止其他流量时,如何通过 iptables 允许 google-analytics

当互联网被阻止其他流量时,如何通过 iptables 允许 google-analytics

我在 wifi 网关上运行以下脚本。网关的 WAN 端有ppp0接口,而 LAN 端已打开wlan0

  1. 任何局域网用户都不应被允许浏览互联网
  2. 网关上的某些服务需要访问互联网,应允许
  3. 应允许 LAN 用户从网关 LAN 接口访问内容(来自 80 和 90 端口的流量 - 一些本地内容而不是互联网)在同一本地内容上安装了 google-analytics,并且应将其更新到 google-analytics.com 服务器。我的 iptables 防火墙如下,但在访问 google-analytics 服务器时我不断看到问题。任何帮助都值得感激。

WAN_INTERFACE="ppp0" 
LAN_INTERFACE="wlan0" 
LAN_NETWORK="192.168.184.0/24"

WAN_IP=ifconfig ppp0 | grep addr | cut -d':' -f2 | cut -d' ' -f1

iptables -F iptables -F -t nat

iptables -P INPUT DROP 
iptables -P OUTPUT DROP 
iptables -P FORWARD DROP

仅允许发往网关端口 80 和 443 的数据包传输网关本身的内容

iptables -A OUTPUT -o $WAN_INTERFACE -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i $WAN_INTERFACE -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o $WAN_INTERFACE -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A INPUT -i $WAN_INTERFACE -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

Accept packets on LAN network for port 80,90

iptables -A INPUT -i $LAN_INTERFACE -p tcp -d 192.168.184.1 --dport 80 -s $LAN_NETWORK -j ACCEPT 
iptables -A OUTPUT -o $LAN_INTERFACE -p tcp -s 192.168.184.1 -j ACCEPT
iptables -A INPUT -i $LAN_INTERFACE -p tcp -d 192.168.184.1 --dport 90 -s $LAN_NETWORK -j ACCEPT 
iptables -A OUTPUT -o $LAN_INTERFACE -p tcp -s 192.168.184.1 -j ACCEPT

接受回送

iptables -A INPUT -i lo -j ACCEPT 
iptables -A OUTPUT -o lo -j ACCEPT

允许传出 ping 请求

iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

允许传出 DNS 请求

iptables -A OUTPUT -p udp -o $WAN_INTERFACE --dport 53 -j ACCEPT 
iptables -A INPUT -p udp -i $WAN_INTERFACE --sport 53 -j ACCEPT
iptables -A OUTPUT -p tcp -o $WAN_INTERFACE --dport 53 -j ACCEPT
iptables -A INPUT -p tcp -i $WAN_INTERFACE --sport 53 -j ACCEPT

允许 google-analytics 流量出入

iptables -A INPUT -s www.google-analytics.com -p tcp --sport 80 -j ACCEPT 
iptables -A INPUT -s ssl.google-analytics.com -p tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -d google-analytics.com -j ACCEPT 
iptables -A OUTPUT -d ssl.google-analytics.com -j ACCEPT
iptables -A FORWARD -d google-analytics.com -s 192.168.184.0/24 -j ACCEPT 
iptables -A FORWARD -d ssl.google-analytics.com -s 192.168.184.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -o $WAN_INTERFACE -p tcp -d google-analytics.com -j SNAT --to-source $WAN_IP 
iptables -t nat -A POSTROUTING -o $WAN_INTERFACE -p tcp -d ssl.google-analytics.com -j SNAT --to-source $WAN_IP
iptables -A INPUT -s google-analytics.com -m state --state RELATED,ESTABLISHED -j ACCEPT 
iptables -A INPUT -s ssl.google-analytics.com -m state --state RELATED,ESTABLISHED -j ACCEPT

答案1

添加规则以允许您的网关使用 INPUT 和 OUTPUT 链从互联网访问

然后使用 --sport 参数添加规则,将 HTTP 或 HTTPS 流量重定向到你的 Web 服务器

相关内容