简介和原理
上个月跟某神秘部门一小哥吃饭时听说有人将wifi热点伪装成公共wifi(也叫Wlan,例如移动联通电信的CMCC、China-Unicom、China-Net等)来盗取用户数据,很好奇其实现方式。Google一番后发现,Wlan是基于Web认证实现的。简单说就是通过在路由器上一番设置,让未登录用户无论访问什么网址都显示登录页面,只有登录成功后才能正常上网。然而家庭用的路由器通常不具有那些复杂的功能,似乎只有上千块的路由器才有这些功能。但本文给出了一种使用家用路由器实现web认证的简单方法。
原理的话还比较简单,无线路由器A(下简称路由器A)连接互联网,笔记本(下简称PC)通过wifi连接路由器A,无线路由器B(下简称路由器B)通过网线连接PC(如图1-1)。将路由器B的工作模式设成“无线AP”(如图1-2)。由PC合路由器B组成一个内网,在该内网中PC充当Router,路由器B只是一个无线交换机,因此PC便可完全控制该子网。
图1-1
图1-2
准备工作
本文介绍的方法是在Ubuntu12.04下实现的,需要用到以下设备和工具:
0、一台笔记本(或台式)电脑,要求电脑有一个无线网卡和一个有线网卡。
1、两个普通无线路由器,网线两三根。
2、iptables
3、dhcp3-server
4、Apache
5、python2.7
6、webpy(一个python库,django也可以)
7、一只闲的蛋疼的程序猿
其中电脑用于充当路由器,一个无线路由器用于提供互联网接入,另一个用于伪装热点,iptables用于实现转发功能,dhcp3-server是DHCP服务器,Apache用于充当web服务器,python2.7和webpy用于实现一些简单的登录网页,一只闲的蛋疼的程序猿用于完成这些工作。各位看官自行准备这些东西。
配置DHCP服务器
就是将你的笔记本配置成DHCP服务器,在网络中充当Router。
1、固定有线端口IP地址
在PC上运行
sudogedit/etc/network/interfaces
sudo gedit /etc/network/interfaces
插入以下内容
autoeth0ifaceeth