linux – iptables captive portal删除用户

前端之家收集整理的这篇文章主要介绍了linux – iptables captive portal删除用户前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我按照本指南: 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

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

/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\"); }"

哪个应该删除它们的“重定向”连接轨道,因为它是编写的,但是当我执行该脚本时,没有任何反应 – 用户仍然可以访问该页面.

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

更新:

为了避免潜在的误解 – 上面的命令是我在我的机器上执行的原始命令,因此PHP的exec()和类似的不是这种行为的原因.所有命令都执行良好 – 因为删除用户无法访问除他正在浏览的最后一个站点之外的任何其他网站.

解决方法

为了回答你的问题,我会检查shell_exec和exec调用是否按预期运行,并且它们不会因安全性而被禁用,而这种情况经常发生.

警告你

$_POST [‘ip’]和$_POST [‘mac’]输入未经过清理,并被直接传递到process.PHP中的exec()函数中;

攻击者可以启动curl下载一个PHP shell并后门访问该站点;在正在运行的用户权限范围内运行任何命令;垃圾整个目录和网络等;请确保您完全审核您在系统上放置的任何代码;在启用exec / shell_exec函数之前.

原文链接:https://www.f2er.com/linux/397526.html

猜你在找的Linux相关文章