用于桥接接口的强制网络门户

时间:2013-07-10 01:40:54

标签: iptables captivenetwork ebtables

我喜欢创建一个简单的强制网络门户,适用于作为网桥一部分的接口。

桥接接口br0(10.19.1.1/16)由两个接口eth0和eth1组成。 eth1背后是客户端计算机。 eth0后面是一个连接到互联网网关的交换机。

对于强制门户网站,所有来自eth1后面的客户端的端口80的tcp请求都需要指向本地Web服务器。

以下行似乎可以正常工作,因为网站请求被重定向到本地Web服务器。问题是,一旦使用下面的身份验证行,客户端就不能再加载任何常规网站了。

我已经搜索了互联网,但还没有找到解决方案。

PORTAL_INT="eth1"
PORTAL_IP="10.19.1.1"

#'drop' packets from being bridged
ebtables -t broute -A BROUTING  -i $PORTAL_INT -p IPv4 --ip-proto tcp --ip-dport 80 -j redirect --redirect-target DROP

iptables -N internet -t mangle
iptables -t mangle -A PREROUTING -j internet

#authenticated
#iptables -t mangle -I internet 1 -m mac --mac-source $CLIENT_MAC -j RETURN

#mark all traffic
iptables -t mangle -A internet -j MARK --set-mark 99

#redirect website access
iptables -t nat -A PREROUTING -m mark --mark 99 -p tcp --dport 80 -j DNAT --to-destination $PORTAL_IP
iptables -t filter -A FORWARD -m mark --mark 99 -j DROP
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -m mark --mark 99 -j DROP

0 个答案:

没有答案