admin管理员组

文章数量:1606523

目前很多家庭的wifi被客人“万能钥匙”自动分享,导致家里wifi慢的可怜,这次回家就看到家里的wifi的dhcp服务器上挂满满的各种陌生的客户端,其实来了家里都是朋友肯定不会去主动分享密码的,于是我想wifi密码改来改去的还是被一些“小人软件”自动分享了,有没有什么方法来抵抗这个呢,当然一般路由器可以隐藏ssid和或者绑定mac的方式可以解决,但是这个对于客人来说太不友好了,主人家也麻烦。所以突发奇想能不能开放wifi,任何用户都可以连接,但是上不了网,要在弹出的网页中输入指定密码后才可以上网。后来在树莓派中写了一些简单的代码验证了一下,的确可行,原理是利用iptables和arp来实现。

  1. iptables先在filter中屏蔽所有从无线网卡中来的数据,除了目的地址的网关数据。iptables -A INPUT -i wlan0 ! -d 192.168.1.1 -j DROP
  2. 建立一个http服务器,并编写页面,获取客户端地址,通过arp解析出客户端mac地址。如果用户填入的信息正确,在规则1之前插入一条放行该mac地址的规则。iptables -I INPUT -i wlan0 -m mac –mac-source xxxxxxx -j ACCEPT
  3. 用户访问指定地址,填入信息便可以上网。
    改进思路:
  4. 上面的设计有个问题,需要用户主动去访问地址,这样子不友好,可以利用nat表做重定向来自动重定向未认证终端到认证页面,原理是利用nat表的redirect。

上面说了这么多,其实不用自己去编写代码,个人只是觉得好玩折腾而已,可以利用wifidog和免费的wifidog服务器软件来搭建就可以了,关于wifidog这里不介绍了。

本文标签: 思路httpwifi