最近實驗室在做一個項目,其中需要wifi的接入認證,自己寫一個認證系統比較麻煩,先用wifidog進行實驗測試。在此我將這幾天做的事做個整理總結。
搭建wifidog系統主要就三大步,一是在OpenWrt的路由器上安裝Wifidog應用程序,二是在服務器上安裝authpuppy認證服務,三是配置網絡結點和路由器認證
工作環境: 服務器:ubuntu 16.04 + authpuppy
路由器:NetGear WNDR3800 + wifidog
一、在OpenWrt的路由器上安裝Wifidog應用程序
安裝Wifidog程序有兩種方式,一種是在刷了OpenWrt的路由器上直接安裝Wifidog;或者是把Wifidog直接編譯進OpenWrt中。由於項目還需要安裝其他程序,這里我選擇第二種方式。
1. 在OpenWrt系統的源碼文件下,編輯feeds.conf.default文件
vim feeds.conf.default
在其中增加一行:
src-git wifidog https://github.com/wifidog/wifidog-gateway.git
2. 然后更新,再安裝:
./scripts/feeds update -a ./scripts/feeds install -a
3. 終端執行編譯命令
make menuconfig
4. 在Network/captive portals/下選擇wifidog 就有選擇 WiFiDog 這一項了
二、在服務器上安裝authpuppy認證服務
1、首先安裝authpuppy服務端驗證
1. 安裝php開發環境:
sudo apt-get install apache2 php-mysql libapache2-mod-php mysql mysql-server
2. 啟用apache rewrite,否則會出現(Therequested URL /install/3 was not found on this server.)錯誤
sudo a2enmod rewrite
3. 到https://launchpad.net/authpuppy 從http://launchpad.net/authpuppy下載authpuppy最新源碼,解壓並移動到/var/www/目錄下。
tar xvzf authpuppy-<version>-<stability>_<packaging>.tgz sudo mv authpuppy /var/www/
4. 為authpuppy賦予權限
chmod 777 /var/www/html/authpuppy/ -R
5. 修改/etc/apache2/sites-enabled/000-default.conf替換所有內容
sudo gedit /etc/apache2/sites-enabled/000-default.conf
修改如下:
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName authpuppy.localhost ServerAlias authpuppy.test DocumentRoot /var/www/authpuppy/web 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 /var/log/apache2/authpuppy/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/authpuppy/access.log combined </VirtualHost>
6. 重啟apache
sudo service apache2 restart
7. Mysql數據庫的創建
authpuppy需要使用數據庫進行用戶認證管理,可以使用mysql創建一個名為authpuppy的數據庫。
user@yourserver $> mysqladmin -uroot -p create authpuppy
8. 訪問http://localhost出現authpuppy配置頁面
9. 點擊下一步繼續,這一步會檢測系統的環境是否滿足authpuppy的要求,不滿足的會顯示紅色,按要求配置好就可以點擊下一步了。
10. wifidog數據庫的配置。填寫在低7步創建的數據庫名字,並填寫你的數據庫賬號和密碼等信息,此處為了方便,使用root登錄,讀者可以新建一個user用於訪問。
11. 一直點擊下一步,直到出現管理員用戶配置頁面,配置用戶信息:
12. 最后配置成功,出現如下頁面,此時authpuppy的基本配置完成:
13. 以后再次訪問http://localhost,就會出現如下頁面,不需要重新配置了:
2、配置服務器和插件管理
1. 訪問http://localhost ,通過管理員賬戶登錄,配置authserver
2. 配置完成后再次訪問http://localhost 就會出現如下界面
3. 點擊Manageplugins,點擊View all available plugins and updates添加插件,
安裝apAuthLocalUserPlugin這個插件,並啟用,就可以對登錄賬號進行管理了,更多插件的使用可以自己慢慢摸索。
三、配置網絡結點和路由器認證
1. 訪問http://localhost 以管理員身份登錄,點擊Managenodes進行結點的管理,服務器默認為我們創建了一個叫My first node的結點,我們對其進行編輯,修改Name :wifidog,gw id:123456,deployment status 選擇Deployed
2. 登錄到路由器(linux直接使用ssh命令,windows下可以使用putty、xshell等工具),編輯/etc/wifidog.conf,需要配置的主要有三項:
#這個需要與服務器中gw id相對應 GatewayID 123456 #查看自己的路由器進行配置,外網接口 ExternalInterfaceeth0.2 #路由器內網接口 GatewayInterface br-lan #服務器配置 AuthServer { #服務器的ip地址 Hostname192.168.0.224 SSLAvailable yes Path / }
3. 啟動wifidog
/etc/init.d/wifidog enable /etc/init.d/wifidog start
4. 連接該無線網絡,開始驗證。
本文有部分內容來自文章——公共場所wifi認證解決方案wifidog+authpuppy
over