路由器: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,需要配置的主要有以下幾點:
#這個需要與服務器中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選項在作怪!!!。