我在 wifi 网关上运行以下脚本。网关的 WAN 端有ppp0
接口,而 LAN 端已打开wlan0
。
- 任何局域网用户都不应被允许浏览互联网
- 网关上的某些服务需要访问互联网,应允许
- 应允许 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 服务器