iptables俘虏门户移除用户

我遵循这个指南: http : //aryo.info/labs/captive-portal-using-php-and-iptables.html

我正在使用iptables实施俘虏门户。 我已经在linux路由器上设置了web服务器和iptables,而且一切正常。

我可以让用户访问互联网

sudo iptables -I internet -t mangle -m mac --mac-source USER_MAC_ADDRESS -j RETURN 

我可以删除访问

 sudo iptables -D internet -t mangle -m mac --mac-source USER_MAC_ADDRESS -j RETURN 

但是,在删除时,用户仍然可以打开上次查看的页面(如果他重新启动以太网适配器,将来的连接将被closures)。 在博客页面上,我find了一个脚本

 /usr/sbin/conntrack -L \ |grep $1 \ |grep ESTAB \ |grep 'dport=80' \ |awk \ "{ system(\"conntrack -D --orig-src $1 --orig-dst \" \ substr(\$6,5) \" -p tcp --orig-port-src \" substr(\$7,7) \" \ --orig-port-dst 80\"); }" 

这应该删除他们的“redirect”连接跟踪,因为它被写入,但是当我执行该脚本,没有任何反应 – 用户仍然可以访问该页面。

当我执行/usr/sbin/conntrack -L | grep USER_IP 执行脚本后/usr/sbin/conntrack -L | grep USER_IP我没有任何返回,所以我的问题:还有什么可以帮助我清理这些轨道? 显然 – 我不能重置也不是我的,也不是用户networking适配器。

更新:

为了避免潜在的误解 – 上面的命令是我在机器上执行的原始命令,所以PHP的exec()和类似的东西并不是这种行为的原因。 所有的命令都执行得很好 – 因为在删除时,用户不能访问他浏览的最后一个站点以外的任何其他网站。

要回答你的问题,我会检查shell_exec和exec调用正在按预期方式运行,并且他们没有被禁用的安全性往往是这样的。

警告你。

$_POST['ip']$_POST['mac']input没有被清理,并且直接传入process.php中的exec()函数;

攻击者可以启动curl来下载一个php shell和后门的网站; 在正在运行的用户权限内运行任何命令; 垃圾整个目录和webroots等; 请确保您完全审核您的系统上的任何代码; 在启用exec / shell_exec函数之前。