最近實驗室在作一個項目,其中須要wifi的接入認證,本身寫一個認證系統比較麻煩,先用wifidog進行實驗測試。在此我將這幾天作的事作個整理總結。
搭建wifidog系統主要就三大步,一是在OpenWrt的路由器上安裝Wifidog應用程序,二是在服務器上安裝authpuppy認證服務,三是配置網絡結點和路由器認證php
工做環境: 服務器:ubuntu 16.04 + authpuppyhtml
路由器:NetGear WNDR3800 + wifidognode
安裝Wifidog程序有兩種方式,一種是在刷了OpenWrt的路由器上直接安裝Wifidog;或者是把Wifidog直接編譯進OpenWrt中。因爲項目還須要安裝其餘程序,這裏我選擇第二種方式。mysql
1. 在OpenWrt系統的源碼文件下,編輯feeds.conf.default文件linux
vim feeds.conf.default
在其中增長一行:git
src-git wifidog https://github.com/wifidog/wifidog-gateway.git
2. 而後更新,再安裝:github
./scripts/feeds update -a ./scripts/feeds install -a
3. 終端執行編譯命令web
make menuconfig
4. 在Network/captive portals/下選擇wifidog 就有選擇 WiFiDog 這一項了sql
1. 安裝php開發環境:shell
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,就會出現以下頁面,不須要從新配置了:
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