我想在Ubuntu计算机上构建一个强制网络门户和一个接入点,并将每个传入流量重定向到localhost。 我首先将每个端口上的所有传入tcp流量重定向到通过Apache Web Server本地提供的简单登录页面。然后我删除了所有转发的数据包。所有这一切都通过iptables进行,如下所示。
$IPTABLES -t nat -A PREROUTING -p tcp --dport 0:65535 -j DNAT --to-destination 192.168.6.1:80
$IPTABLES -t filter -A FORWARD -p tcp --dport 0:65535 -j DROP
$IPTABLES -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
当iPhone等客户端连接到接入点时,打开safari浏览器并输入任何URL,它会成功重定向到登录页面(但不能从地址栏中进行任何谷歌搜索)
我被触及的地方是当iOS设备连接到我的接入点时强制从iOS设备弹出一个自动浏览器。我知道它会尝试ping apple.com和其他一些像www.apple.com/library/test/success.html
这样的人来获取连接上的成功响应,如果没有想要的响应则会打开一个微型弹出式浏览器。但我已经阻止了每个流量并重定向到登录页面(强制网络门户)。
我认为我出错的地方可能是我不应该阻止所有的tcp端口,只有80和443这样的端口,也许我应该阻止一些UDP流量。 我的登录页面是否还应该改变。我在某处读到,当iOS从重定向的URL中获得一个明智的XML响应时,它只会弹出一个浏览器。
这方面的任何帮助都是有益的。我保证一旦完成,我会写一篇详细的博客文章。