利用radiusmanager實戰搭建認證服務器(rm)

radius簡介

RADIUS:Remote Authentication Dial In User Service,遠程用戶撥號認證系統由RFC2865,RFC2866定義,是目前應用最廣泛的AAA協議。

RADIUS是一種C/S結構的協議,它的客戶端最初就是NAS(Net Access Server)服務器,現在任何運行RADIUS客戶端軟件的計算機都可以成爲RADIUS的客戶端。RADIUS協議認證機制靈活,可以採用PAP、 CHAP或者Unix登錄認證等多種方式。RADIUS是一種可擴展的協議,它進行的全部工作都是基於Attribute-Length-Value的向量進行的。RADIUS也支持廠商擴充廠家專有屬性。

由於RADIUS協議簡單明確,可擴充,因此得到了廣泛應用,包括普通電話上網、ADSL上網、小區寬帶上網、IP電話、VPDN(Virtual Private Dialup Networks,基於撥號用戶的虛擬專用撥號網業務)、移動電話預付費等業務。最近IEEE提出了802.1x標準,這是一種基於端口的標準,用於對無線網絡的接入認證,在認證時也採用RADIUS協議。

具體介紹請打開該鏈接http://hi.baidu.com/anyidea/blog/item/89239202987f11dd267fb526.html

radius搭建服務

我使用的radiusmanager3.9這個開源軟件,需要註冊花錢的一個軟件軟件,當然也有破解的。我利用的是破解的rm。

我的實驗環境是centos 5.7 ,搭建認證服務,我們需要個web管理頁面,所以請大家事先搭建好LNMP或者LAMP環境。我環境已經搭建好了。

好的,下面我們開始搭建rm認證!

1.安裝centos 5.6,搭建lnmp環境。

 

2.改MAC、IP、GATEWAY、nameserver,關閉SELINUX,重啓系統。

改MAC地址

/etc/rc.d/rc.sysinit

ifconfig eth0 down

ifconfig eth0 hw ether 00:D0:09:B8:B7:34

ifconfig eth0 up

配置IP地址,因爲上面改了MAC地址,所以需要重啓網絡

重啓網絡

/etc/init.d/network restart

關閉SELINUX

/etc/sysconfig/selinux

SELINUX=disabled

重啓系統

reboot

 

3.lnmp環境搭建完成,但是我們還是需要點環境

yum install compat-libstdc++-33 libtool-ltdl-devel -y

 

4.安裝ionCUBE

安裝ionCUBE

tar zxvf ioncube_loaders_lin_x86.tar.gz

cp -rf ioncube /usr/local/

顯示php版本,記下版本爲5.2

php  -v

PHP 5.2.17 (cli) (built: Sep 28 2011 22:08:39) 

修改php.ini,其中5.2和上步顯示php版本一致。

vim  /usr/local/php/etc/php.ini  

zend_extension=/usr/local/ioncube/ioncube_loader_lin_5.2.so

php -m

重啓nginx服務。

service nginx restart

 

5.FreeRadius安裝及配置

FreeRadius安裝

tar xvf freeradius-server-2.1.8-dmamod-1.tar.gz

cd freeradius-server-2.1.8

./configure

cp libltdl/ltdl.h src/include/

make

make install

ldconfig

文件所有者和權限配置

chmod 644 /usr/local/etc/raddb/dictionary

chown www /usr/local/etc/raddb

chown www /usr/local/etc/raddb/clients.conf

 

測試FreeRadius,顯示Ready to process requests.

radiusd  -X

Listening on authentication address * port 1812

Listening on accounting address * port 1813

Listening on command file /usr/local/var/run/radiusd/radiusd.sock

Listening on proxy address * port 1814

Ready to process requests.

 

6.建立MySql相關的數據庫並作設置。

修改mysql配置文件sql.conf(可使用默認值)

vim /usr/local/etc/raddb/sql.conf                                    

# Connection info:

server = "localhost"

#port = 3306

login = "radius"

password = "radius123"

重啓mysqld服務

/etc/init.d/mysql restart

創建相關數據庫和連接數據庫的用戶

mysql -uroot -pmysql                                           

CREATE DATABASE radius;                                         

CREATE DATABASE conntrack;                                      

CREATE USER 'radius’@'localhost' IDENTIFIED BY 'radius123′;     

CREATE USER 'conntrack’@'localhost' IDENTIFIED BY 'conn123′;    

GRANT ALL ON radius.* TO radius@localhost;                      

GRANT ALL ON conntrack.* TO conntrack@localhost;                

exit                                                            

 

————————————————————————————

 

7.安裝Radius Manager,在交互式安裝模式下可全部使用默認選項,只有最後一步按y回車確認安裝。

注意,我使用的是LNMP環境,我的web服務器是nginx,我的網頁目錄

是/home/wwwroot 在下面選項時,切忌這兩點需要修改。

tar zxvf radiusmanager-3.9.0.tgz

cd radiusmanager-3.9.0-rel/

vim etc/radiusmanager.cfg

修改如下兩行信息,如下顯示。(可根據自己環境情況而定來修改)

db_sock                 /tmp/mysql.sock ; mysql main socket location

radman_path             /home/wwwroot/radiusmanager     ; Radius Manager full path

 

chmod  755  install.sh

./install.sh

如果報錯,請查看具體錯誤信息,進行修改。

vim /home/wwwroot/radiusmanager/config/system_cfg.php

找到如下這行

define("radman_dir", "/var/www/html/radiusmanager"); 

修改爲

define("radman_dir", "/home/wwwroot/radiusmanager"); 

vim  /usr/local/etc/raddb/sites-enabled/default

找到349行 將files註釋掉

chmod 755 -R /home/wwwroot/radiusmanager/

 

————————————————————————————

 

8.註冊radius manager

 

把註冊相關文件複製到radiusmanager目錄下,否則radius manager的rmpoller和rmconntrack服務不能啓動。

cp mod.txt /home/wwwroot/radiusmanager/

cp lic.txt /home/wwwroot/radiusmanager/

cp mac.txt /home/wwwroot/radiusmanager/

9.配置radius manager

使rmscheduler.php每到午夜執行。

/etc/crontab

02 0 * * * root /usr/bin/php /home/wwwroot/radiusmanager/rmscheduler.php 12345     #使用12345

注意下面的12345是默認密碼,可在system_cfg.php修改)

 

10.設置相關服務開機自動啓動

通過rc.local腳本使用相關服務自動運行。

vim /etc/rc.local

/usr/local/sbin/radiusd

/usr/local/sbin/rmpoller

/sbin/service rmpoller start

/sbin/service rmconntrack start

這邊爲了方便,我就沒有重啓機器了,直接在命令行下,讓以上服務啓動。

 

11.測試

修改下admin用戶的密碼,因爲3.8和3.9不一樣,用戶名和密碼都發生了變化,我提供下3.8admin的md5加密密碼,

b59c67bf196a4758191e42f76670ceba,請進入數據庫radius修改表rm_managers的數據,將這段密碼覆蓋即可。

查看管理面板,默認用戶名密碼admin/1111

http://ip/radiusmanager/admin.php

添加新用戶(測試用戶user密碼我並未修改),test/test

查看用戶面板,使用用戶名密碼test/test

http://ip/radiusmanager/user.php

測試用戶利用數據庫驗證

一個終端窗口啓動FreeRadius Debug模式

radiusd  -X

Listening on authentication address * port 1812

Listening on accounting address * port 1813

Listening on command file /usr/local/var/run/radiusd/radiusd.sock

Listening on proxy address * port 1814

Ready to process requests.

 

另一個終端窗口發請求認證報文,會得到

radtest user 1111 localhost 1812 testing123

能得到以下報文,則用戶驗證成功。

rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=28, length=53

如上,rm認證服務器搭建完成。

 

修改myql數據庫密碼,需要修改以下三個文件。

/etc/radiusmanager.cfg

/var/www/html/radiusmanager/config/system_cfg.php

/usr/local/etc/raddb/sql.conf

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章