公共場所wifi認證解決方案wifidog+authpuppy

服務器:linux mint 17.3 + authpuppy

路由器:DB120 + wifidog

手機一部


一、在OpenWrt的路由器上安裝Wifidog應用程序


安裝Wifidog程序有兩種方式,一種是在刷了OpenWrt的路由器上直接安裝Wifidog;或者是把Wifidog直接編譯進OpenWrt中

1. 在OpenWrt根目錄下

執行

make menuconfig,按 / ,查找wifidog,如果找不到,退出來安裝。
執行
./scripts/feeds install wifidog

make menuconfig

4. 在Network/captive portals/下選擇wifidog ,保存退出。

執行

make V=s

把編譯好的wifidog拷貝到路由器/sbin下

./build_dir/target-mips_34kc_uClibc-0.9.33.2/wifidog-normal/wifidog-1.2.1/ipkg-ar71xx/wifidog/usr/bin/wifidog

當然還需要一個依賴庫,拷貝到/lib下

./build_dir/target-mips_34kc_uClibc-0.9.33.2/wifidog-normal/wifidog-1.2.1/ipkg-ar71xx/wifidog/usr/lib/libhttpd.so.0.0.0

然後軟連接一下 ln -s libhttpd.so.0.0.0 libhttpd.so.0

一個配置文件,拷貝到/etc 下

./build_dir/target-mips_34kc_uClibc-0.9.33.2/wifidog-normal/wifidog-1.2.1/wifidog.conf

如果嫌麻煩就直接刷固件吧



二、在服務器上安裝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/html/authpuppy/web
       DirectoryIndex index.php
       <Directory /var/www/html/authpuppy/web/>
               Options Indexes FollowSymLinks MultiViews
               AllowOverride All
               Order allow,deny
               allow from all
       </Directory>

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

       #ErrorLog /var/log/apache2/authpuppy/error.log
複製代碼

 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. 一直點擊下一步,直到出現管理員用戶配置頁面,配置用戶信息:

Username 和Password 是以後你登錄服務器的用戶和密碼。

12. 最後配置成功,出現如下頁面,此時authpuppy的基本配置完成:

13. 以後再次訪問http://localhost,就會出現如下頁面,不需要重新配置了:

 

2、配置服務器和插件管理

1. 訪問http://localhost ,通過管理員賬戶登錄,配置authserver

Logo 選擇你喜歡的圖片

Main url 就是點擊點擊Logo後跳轉的界面


2. 配置完成後再次訪問http://localhost 就會出現如下界面


3. 點擊Manageplugins,點擊View all available plugins and updates添加插件,
安裝apAuthLocalUserPlugin這個插件,並啓用,就可以對登錄賬號進行管理了,更多插件的使用可以自己慢慢摸索

三、配置網絡結點和路由器認證


1. 訪問http://localhost 以管理員身份登錄,點擊Managenodes進行結點的管理,服務器默認爲我們創建了一個叫My first node的結點,我們對其進行編輯,修改Name :mint,gw id:123456789,deployment status 選擇Deployed

2. 登錄到路由器(linux直接使用ssh命令,windows下可以使用putty、xshell等工具),編輯/etc/wifidog.conf,需要配置的主要有以下幾點:

GatewayAddress  192.168.100.2 (路由器地址)
#這個需要與服務器中gw id相對應
GatewayID 123456789
#查看自己的路由器進行配置,外網接口
ExternalInterface  br-wan
#路由器內網接口
GatewayInterface br-lan
#服務器配置
AuthServer {
#服務器的ip地址
Hostname192.168.2.69 (服務器地址)
SSLAvailable no
Path /
}

3. 啓動wifidog

wifidog -c /etc/wifidog.conf

4. 連接該無線網絡,開始驗證,沒什麼問題服務器上可以看到



四、總結幾容易犯錯的地方


1、權限問題,確定你的authpuppy 和 安裝的插件都具有 777 權限,且要 -R,否則會出現,手機連接ap但是彈不出認證界面 的問題

2、Auth server did NOT say Pong,犯這個錯誤。一般是 路由器和authpuppy 路徑沒有對應上,導致ping服務器沒有迴應 HTTP/1.0 404 Not Found

#服務器配置
AuthServer 選項裏的Path 和 /etc/apache2/sites-enabled/000-default.conf 裏的 
/var/www/html/authpuppy/web (不止一個這2個路徑合起來 是你的authpuppy裏web的路徑。 
如果 000-default.conf 裏寫/var/www/html 那麼Path 應該是 /authpuppy/web/
3、

容易出現Authpuppy does not connect to postgresql,這是因爲你的Db name 或者usename password不對。
填寫在第7步創建的數據庫名字,並填寫你的數據庫賬號和密碼等信息。
4、failed to connect to server。 檢測路由器wan口和服務器之間是否在同一網段,是否能ping通。
5、如果你認證之後無法上網,那要看看你的firewall配置文件了,我就是因爲這個原因卡了2天,後來修改Firewalls之後才成功上網。
就是圖中的option input選項在作怪!!!。

發佈了58 篇原創文章 · 獲贊 66 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章