Wifidog+Authpuppy认证页面的配置

路由器上用的是wifidog client,服务器后端管理用的是authpuppy。
首先,选择自己的操作系统,在http://www.authpuppy.org/doc/Main_Page网站里面,我的操作系统是Linux。然后到这个网站http://www.authpuppy.org/doc/Getting_Started去下载check_configuration.php 这个文件是检测你的电脑安装authpuppy需要哪些环境,下面是我配置好的环境。
1.jpg

然后到这个http://launchpad.net/authpuppy 下载authpuppy的源码,然后把解压后的authpuppy目录放到apache2的站点目录,我的是ubuntu12.10,安装后的apache2目录是/etc/apache2/sites-available/default,
打开的内容是

<VirtualHost *:80>
   ServerAdmin webmaster@localhost

   DocumentRoot /var/www/
   <Directory />
           Options FollowSymLinks
           AllowOverride All
   </Directory>
   <Directory /var/www/authpuppy/web/>
           Options Indexes FollowSymLinks MultiViews
           AllowOverride All
           Order allow,deny
           allow from all
   </Directory>

   ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
   <Directory “/usr/lib/cgi-bin”>
           AllowOverride None
           Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
           Order allow,deny
           Allow from all
   </Directory>
   ErrorLog ${APACHE_LOG_DIR}/error.log

   # Possible values include: Debug, info, notice, warn, error, crit,
   # alert, emerg.
   LogLevel warn

   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

由于刚开始什么都不懂,都不知道里面目录是什么意思,所以就挑几个来说明下

DocumentRoot /var/www 这个目录是apache2服务器的根目录,也就是说当你打开浏览器在地址栏输入127.0.0.1时,就是进入/var/www/这个目录里面

<Directory /var/www/>
           Options Indexes FollowSymLinks MultiViews
           AllowOverride All
           Order allow,deny
           allow from all
   </Directory>

这个是你在apache里面架设服务器的根目录,比如我架设的是authpuppy,当我一进入authpuppy是/var/www /authpuppy/web/这个目录下的文件,其他的也没什么好讲的。所以我们应该把authpuppy目录放在/var/www/这个目录下面。

接下来就是配置这个apache这个,这个是让我最头疼的地方,配置了好几天,才搞明白是怎么回事。
首先咱们来看下http://www.authpuppy.org/doc/Getting_Started这个里面的配置内容。

2.jpg

我一开始也没多想就直接复制和粘帖,结果安装到第三步就出错了。哦,忘了说怎么安装了,在浏览器的地址栏上输入127.0.0.1查看authpuppy的目录在哪,然后进入authpuppy里面web的目录,就会在网页上跳出安装页面。

再回过来说说apache怎么配置吧,先给大家看看我的配置文件

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  ServerName authpuppy.localhost
  ServerAlias authpuppy.test

  DocumentRoot /var/www/
  DirectoryIndex index.php

   <Directory /var/www/authpuppy/web/>
          Options Indexes FollowSymLinks MultiViews
          AllowOverride All
          Order allow,deny
          allow from all
  </Directory>

  Alias /sf /var/www/authpuppy/lib/vendor/symfony/data/web/sf
  <Directory “/var/www/authpuppy/lib/vendor/symfony/data/web/sf”>
          AllowOverride All
          Allow from All
  </Directory>

  ErrorLog ${APACHE_LOG_DIR}/error.log
  # Possible values include: Debug, info, notice, warn, error, crit,
  # alert, emerg.
  LogLevel warn

  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

不知道大家有没发现这两个目录不一样
ErrorLog /var/log/apache2/authpuppy/error.log
CustomLog /var/log/apache2/authpuppy/access.log

我在我的电脑里面发现/var/log/apache2/里面没有authpuppy这个目录,后来我就把这两个目录改了,最后安装成功。当你见到如下图片的时候就说明你已经安装成功,接下来尽管next就行了。
3.jpg

现在authpuppy已经安装完了,先松一口气吧。

接下来我们就来配置wifidog.conf文件以实现和authpuppy相链接。
这是wifidog.conf文件

http://dev.wifidog.org/browser/trunk/wifidog/wifidog.conf

由于第一次接触路由,所以有几个地方先说明下,自己老是搞乱,给以后的新手留给经验。

最最重要的一点是,在这个配置文件里面第一格不能是空格,否则就会出错。

ExternalInterface br-lan 这个是lan口,这样才能连上路由,比如手机

GatewayInterface eth0.2 这个是wan口,通过这个与authpuppy server通信。所以主机的网卡要和wan同一网络,
我的wan口ip是192.168.2.200,要和Hostname同一网段,才能通信。

AuthServer {
Hostname 192.168.2.2
SSLAvailable yes
Path /authpuppy/web/
}
还有这个Path,一开始我是设置成 / 根目录,结果不行,出现了这个问题:
HTTP Response from Server: [HTTP/1.1 404 Not Found

后来设置成这个目录才可以。还有一点要注意的是Path的目录两边都要加/,不然也会出错。

本文章由 http://www.wifidog.pro/2014/12/24/wifidog-authpuppy%E8%AE%A4%E8%AF%81%E9%A1%B5%E9%9D%A2.html 整理编辑,转载请注明出处

刷好ddwrt系统的无线路由器如何设置,以支持无线管理功能?

首先进入路由器访问 http://192.168.11.1
账号:admin
密码:admin
注: 以上是路由器的默认访问地址,账号和密码. (具体根据您的设置而定)

1.网络基本设置界面,需要让用户根据其实际网络情况设置
如果就1个网关,DHCP需要开启
如果有多个网关,只允许其中一个网关开启DHCP,并且,保证地址池分配时不会和其他的路由冲突
举例说明:(现有网关A、网关B和网关C, IP地址分别为192.168.1.1、192.168.1.2和192.168.1.3,那么可以将路由器A的DHCP开启,路由器B和C的关闭,并且起始IP地址填写4或以后,不能小于4)

1.jpg

2.无线基本设置
SSID:也就是用户在手机内看到的信号的名称
2.jpg

3.jpg

3.无线安全设置

需要将加密方式设置为禁用。一般默认未开启

4.jpg

4.设置WIFI认证
登陆无线管理后台,生成网关ID,填写到如图位置

Wifidog守护进程: 选择“启用”
网关ID: 填写后台生成的网关ID
Web服务器名: 填写“u7pk”
端口: 使用默认值
最大用户数: 填写50
检查间隔 (秒) : 使用默认值
客户端超时: 使用默认值
鉴权服务器主机名: 填写“wifi.u7pk.com”
鉴权服务器SSL启用: 选择“禁用”
鉴权服务器HTTP端口: 使用默认值
鉴权服务器路径: 填写“/au/”
5.jpg

5.管理页面设置
管理->管理->web访问->登录前显示系统信息页-> 设为禁用

路由器密码 需要让用户改掉,并且牢记
如果忘记,需要重新设置一遍。
6.jpg

本文章由 http://www.wifidog.pro/2014/12/24/ddwrt-wifidog%E8%AE%BE%E7%BD%AE.html 整理编辑,转载请注明出处

Wifi web认证钓鱼

Wifi有一种web方式认证方案,当连接到某些不加密的热点之后,会跳转到一个网页来认证登陆,大家熟悉的CMCC就采用了这种web的验证方式。它的原理是在得到正确的认证之前,会把所有的流量重定向到认证服务器上,通过认证后,便可以正常使用。如果说仅仅想获取web验证时其他用户的用户名和密码,arp欺骗然后嗅探足够了。因为此时攻击者已经分配到了ip,且同一网关下产生的流量是不会重定向的。但是目前的情况是,认证服务器用的https加密传输,无法嗅探到明文密码。于是萌生了伪造热点及web认证服务器,然后记录密码的想法。

客户端在接受WiFi信号的时候有一个特点,在ssid相同的时候,会只保留信号强的那一个无线路由的ssid。这样,只要伪造热点的ssid与原热点的相同,会有部分人搜到伪造的热点,从而登陆,记录密码。本无线路由用的ddwrt的系统,装了wifidog来进行辅助web认证。至于如何搭建web认证系统,百度一大把,但主要是用了wiwiz和wifiap这两个成熟的网站提供的方案。但是,利用第三方的网站无法拦截到用户名和密码,而且无法控制认证的过程。最好的解决方法是自己搭建一个简单的系统。

Wifidog的认证流程如下:
1、客户端发出一个http请求(http://www.xxx.com)
2、网关将该请求信息以及网关本身的一些信息作为参数,将原始的请求重定向到web认证服务器(http://auth_server/login/)
3、Web认证服务器通过客户端的认证之后,返回一个一次性的token,客户端带着这个token去网关上的wifidog开放的端口去做验证(http://GatewayIP:GatewayPort/wifidog/auth?token=[auth token])
4、Wifidog拿到token后,到web认证服务器检测token是否有效,如果有效则通过客户端的验证,开放访问权限,并将客户端重定向到web认证服务器的欢迎界面(http://auth_server/portal/);如果token无效,则需要继续验证

Wifidog官方推荐的web认证服务软件为authpuppy (http://www.authpuppy.org),不过其代码比较复杂,可以参考wifidog之前的web认证服务软件。获取方式为:
svn checkout https://dev.wifidog.org/svn/trunk/wifidog-auth,然后按着www.authpuppy.org,
web认证服务软件用php写成,重点文件为wifidog-auth\wifidog\login\index.php(客户端web认证、产生token以及重定向到wifidog的开放端口)、wifidog-auth\wifidog\auth\index.php(wifidog验证token)、wifidog-auth\wifidog\portal\index.php(认证成功后页面重定向)。宏定义在wifidog-auth\wifidog\include\common.php文件中。
了解了基本流程就可以DIY出一个简单的web认证服务器了。在认证的过程中可以顺便记录下客户端的密码。
路由器上Wifidog配置如下图。重点配置的地方为端口号(port),认证服务器(AuthServer Hostname), 认证服务器web端口(AuthServer HTTP Port),路径(AuthServer Path)。

1.png

web认证服务器端代码大家自己发挥吧。我个人只是实现了记录用户名密码这样一个简单的功能,如果要做的好的话可以用用户提交的密码到真正的认证服务器做一次认证来返回合适的结果,以及自己搭建dns服务器伪装的更加逼真,但是对于那些比较敏感的用户,还是不容易进行欺骗的,比如ssl加密没了。

考虑到功耗和实用问题,我的web认证服务器是搭建在树莓派上的。配置好无线路由的WLAN确保能联网之后,设置路由器的ip为10.1.1.1,手工配置树莓派静态ip为10.1.1.2。树莓派上安装nginx和php,配置好webserver的环境,上传自己的代码。开启无线路由的wifidog就可以守株待兔了。

当用户连接到自己搭建的无线路由器之后,可以说所有的网络流量都在控制之中了。不过怎么拿到这些流量成了一个问题。在此有三种拿到流量的方法。

  1. ARP欺骗
    这个不多说,大家都懂。不过有种偏离正题的感觉。
  2. 网线嗅探
    当所处的环境通过网线来连到互联网时可用这个方法。将网线接入自制的硬件并将另一端插到无线路由的WLAN口,做好相应的配置。所需硬件参见我之前的一个帖子。原理类似于Throwing star lan tap,直接监听网线上的数据。(无线路由的WLAN口)
  3. 通过笔记本做中介
    当所处的环境只有无线网连到Internet时,可用笔记本来搭建一个中介。
    其连接关系为:
    AP—无线网卡—有线网卡—自己的无线路由—受害者
    这时用笔记本就可以直接嗅探到所有的数据。
    在这里就不细说如何在windows 上开启无线热点的方法了。
    对于流经网卡的数据包,可以收集的信息主要有两种:密码和session。
    windows下的cain用来嗅探并提取得到的用户名密码,改下规则也能得到特定的cookie。
    linux下的ettercap设置好规则能获取到几乎所有想要的信息,还能用来更改返回的web页面、挂马、添加cookie等等,可谓神器。
    至于开启了ssl加密的服务器,可以用ssltrip来得到明文传送的数据。
    如果不怕麻烦的话,还可以自己搭设dns服务器来钓鱼,不过这样就有些杀鸡牛刀了。

本文章由 http://www.wifidog.pro/2014/12/23/wifidog-%E8%AE%A4%E8%AF%81%E9%92%93%E9%B1%BC.html 整理编辑,转载请注明出处

ddwrt wifidog配置

启用认证: 启用,这个不解释
热点帐号: 一般是路由LAN口MAC
热点服务器地址:此处填认证服务器地址:auth.cnrouter.com
热点服务器路径:此处填认证服务器路径:/wifidog/
检查周期: 是路由器检查认证服务器是否在线的时间间隔。如果认证服务器因为需要维护或者其他故障无法访问,路由器将暂停热点认证功能,连接路由器用户不需要认证直接可以上网。避免新的用户因为通不过认证而导致无法上网。当认证服务器恢复正常认证功能后,路由器的认证功能也将在一个检查周期内自动恢复认证跳转功能。

用户超时周期: 用户在超时周期内无任何互联网访问请求,路由器则认为该用户已经离开,同时将其认证信息删除,该用户再次连接路由器需要重新进行身份认证。超时周期不宜过长,影响路由器性能,以10分钟为宜。

免认证域名名单:该名单内的网站所有用户未经过认证可以访问,多个域名需用逗号(英文状态下的逗号)隔开。(比如:weixin.qq.com,cnrouter.com)

免认证mac名单:该名单内用未经认证也具有全部互联网访问权限的用户,将其终端的mac地址加入到名单即可。多个mac地址需用逗号(英文状态下的逗号)隔开。

是否开启ssl安全连接:根据热点服务器来设置是否开启,此处不开启。

本文章由 http://www.wifidog.pro/2014/12/23/ddwrt-wifidog%E9%85%8D%E7%BD%AE.html 整理编辑,转载请注明出处