您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何配置freeradius從mysql數(shù)據(jù)庫讀取用戶信息,內(nèi)容簡明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
配置freeradius從mysql數(shù)據(jù)庫讀取用戶信息
1) 首先更改/etc/raddb/radiusd.conf,首先將$INCLUDE ${confdir}/sql.conf字段這行原有的注釋去掉,然后編輯/etc/raddb/radiusd.conf 使其支持mysql認(rèn)證;
authorize {
preprocess
chap
mschap
suffix
sql
...
}
accounting {
...
#radutmp (因?yàn)槲乙褂肧imultaneous-Use:=1(同一用戶一次只能登陸一臺(tái)機(jī)器),用它在radiusd意外結(jié)束會(huì)有問題,所以禁用)
sql
...
}
session {
#radutmp (同上)
sql
}
2)需要更改sql.conf中的設(shè)置,主要是設(shè)置讀取的mysql服務(wù)器的相關(guān)信息,可更改如下一些字段:
driver = "rlm_sql_mysql"
server = "localhost" #數(shù)據(jù)庫服務(wù)器
login = "mysql_username" #數(shù)據(jù)庫用戶
password = "mysql_password" #數(shù)據(jù)庫密碼
radius_db = "radius" #數(shù)據(jù)庫名稱
3) 當(dāng)然前提是你要現(xiàn)把mysql服務(wù)設(shè)置好,設(shè)置方法是:
先處理一下mysql的庫,freeradius默認(rèn)查找libmysqlclient_r.so,可是mysql默認(rèn)為libmysqlclient.so,內(nèi)容完全一樣,做個(gè)鏈接即可:(至關(guān)重要,否則啟動(dòng)freeradius的時(shí)候會(huì)提示找不到rlm_sql_mysql.so:Could not link driver rlm_sql_mysql: file not found)
# echo "/usr/lib/mysql" >> /etc/ld.so.conf
# ldconfig
# cd /usr/lib/mysql/
# ln -s libmysqlclient.so.15.0.0 libmysqlclient_r.so
先啟動(dòng)你的mysqld:
service mysqld start
然后設(shè)置root帳戶密碼:
mysqladmin –uroot –p password 12345
創(chuàng)建radius數(shù)據(jù)庫
mysqladmin –uroot –p123456 create radius
建立mysql的數(shù)據(jù)庫raius的表,我們可以通過軟件已經(jīng)給出的sql腳本導(dǎo)入數(shù)據(jù)庫:
mysql -uroot –p123456 radius < /usr/share/doc/freeradius-1.1.3/examples/mysql.sql
這樣,所有radius需要的數(shù)據(jù)庫和表都已經(jīng)建立好了。
此時(shí)可以添加測是帳號(hào)來測試是否正常工作。具體方法就不在這說了。我們待會(huì)要使用freeradius源代碼自帶的dialup_admin來進(jìn)行數(shù)據(jù)庫的管理工作,那是一個(gè)基于web的管理界面,使用
php編寫,要比直接用sql語句方便的多。
這里要注意的是,如何在數(shù)據(jù)庫里添加限制沒用戶同時(shí)登錄個(gè)數(shù)的限制,比如,我先用sql語句添加一個(gè)測試用戶,然后來限制他的登錄個(gè)數(shù),語句是:
mysql -uroot –p123456 radius
insert into radgroupreply (groupname,attribute,op,value) values ('user','Auth-Type',':=','Local');
insert into radgroupreply (groupname,attribute,op,value) values ('user','Service-Type','=','Framed-User');
insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-Protocol','=','ppp');
insert into radgroupcheck (groupname, attribute, op, value) values ('user', 'Auth-Type', ':=', 'Local');
insert into radgroupcheck (groupname, attribute, op, value) values ('user', 'Simultaneous-Use', ':=', '1');
然后加入用戶信息:
insert into radcheck (username,attribute,op,value) values ('bbb','User-Password','==','bbb');
然后把用戶加到組里:
insert into usergroup(username,groupname) values('bbb','user');
這樣就給我們的數(shù)據(jù)庫中添加了一個(gè)帳戶測試帳戶bbb,并讓bbb帳戶屬于user組。
然后我們可以通過設(shè)置user組的檢查屬性來設(shè)置此組帳戶的登錄數(shù)限制,以后只要用戶加入這個(gè)組,登錄數(shù)都不能超過1次:
好了,限制完成。我們現(xiàn)在可以使用bbb帳戶登錄,并測試是否是通過mysql數(shù)據(jù)庫驗(yàn)證的。并且可以檢查是不是只能登錄一個(gè)。
第四部分:使用dialup_admin來管理radius服務(wù)器
服務(wù)器搭建成功后如果需要web管理,freeradius自帶了一個(gè)web管理程序dialup_admin。
首先測試Apache與
PHP安裝的正確性。Apache的WEB目錄在 /var/www/html 下首先測試Apache,在瀏覽器輸入 Http://127.0.0.1 下看到Apache界面表示正常。
編輯一個(gè)
PHP測試文件,內(nèi)容為 ,保存為
phpinfo.
php。在瀏覽器輸入Http://127.0.0.1/
phpinfo.
php 看到
php相關(guān)信息頁面,表示
php運(yùn)作正常。
直接將freeradius源代碼中的dialup_admin/文件夾全部拷貝到Apache網(wǎng)頁目錄下/etc/local下。
修改dialup_admin/conf/下的admin.conf文件中的如下參數(shù):
sql_type:mysql
sql_server:localhost //sql地址
sql_port:3306 //默認(rèn)端口
sql_username:root
sql_password:123456 //密碼
sql_database:radius //數(shù)據(jù)庫名
general_base_dir: /var/www/html/dialup_admin //dialup_admin主目錄
general_radiusd_base_dir: /usr/sbin/radiusd
general_domain: company.com //這個(gè)可改也可不改,沒什么影響,改了還看點(diǎn)而已
general_radius_server_auth_proto: chap //將pap改成chap
general_encryption_method: clear //將crypt改成clear
說明一下,general_encryption_method: clear是必須得改的,否則用web管理界面添加用戶后會(huì)出現(xiàn)密碼被加密后無法識(shí)別導(dǎo)致認(rèn)證失敗,clear方式是以明文存儲(chǔ)密碼,freeradius默認(rèn)是用明文存儲(chǔ)密碼,兩者要對(duì)應(yīng),所以這里要用clear方式。
修改dialup_admin/conf/下的naslist.conf文件如下
nas1_name: nas1.%{general_domain}
nas1_model: Computer //NAS服務(wù)器的類型
nas1_ip: 192.168.1.1 //NAS服務(wù)器的IP地址
nas1_port_num: 15
nas1_community: public
其他的通通刪掉或用#號(hào)注釋掉,這樣修改的目的是方便在web管理界面中直觀的看到每個(gè)NAS服務(wù)器連接用戶的情況。
導(dǎo)入相關(guān)數(shù)據(jù)庫表
cd /var/www/html/dialup_admin/sql
mysql -uroot –p123456 radius < userinfo.sql
mysql -uroot –p123456 radius < totacct.sql
mysql -uroot –p123456 radius < mtotacct.sql
mysql -uroot –p123456 radius < badusers.sql
dialup_admin用的是
php3格式的文件,需要web服務(wù)器支持這種格式,
修改/etc/httpd/conf/httpd.conf文件,在此文件最后添加
AddType application/x-httpd-
php .
php .html .htm .
php3
并在默認(rèn)的主頁目錄下建立一個(gè)指向/usr/local/dialup_admin/htdocs的符號(hào)連接htdocs
保存后重啟httpd服務(wù)
service httpd restart
訪問:http://localhost/htdocs/index.html
能正常打開各頁面就ok了。默認(rèn)是打開的sql調(diào)試模式。可以在admin.conf中找到sql_debug.把true改為false即可關(guān)閉。
第五部分:使用用戶認(rèn)證來管理radius服務(wù)器
Apache服務(wù)器已經(jīng)內(nèi)置用戶驗(yàn)證機(jī)制,大家只要適當(dāng)?shù)募右栽O(shè)置,便可以控制網(wǎng)站的某些部分要用戶驗(yàn)證。大家只要跟著我一步步做下來就應(yīng)該能輕松實(shí)現(xiàn)用戶驗(yàn)證。
第1步:
我們?cè)?var/www/html/dialup_admin/htdocs
然后我們編輯httpd.conf
添加
Alias /radiusadmin "/var/www/html/dialup_admin/htdocs"
<Directory "/var/www/html/dialup_admin/htdocs">
Options Indexes MultiViews
AllowOverride AuthConfig #表示進(jìn)行身份驗(yàn)證
Order allow,deny
Allow from all
</Directory>
#AllowOverride AuthConfig 表示進(jìn)行身份驗(yàn)證 這是關(guān)鍵的設(shè)置
第3步
在/var/www/html/dialup_admin/htdocs創(chuàng)建.htaccess文件
vi /var/www/html/dialup_admin/htdocs/.htaccess
AuthName "radius web"
AuthType Basic
AuthUserFile /var/www/html/dialup_admin/htdocs/.htpasswd
require valid-user
#AuthName 描述,隨便寫
#AuthUserFile /var/www/html/dialup_admin/htdocs/.htpasswd
#require valid-user 或者 require user admin 限制是所有合法用戶還是指定用戶
#密碼文件推薦使用.htpasswd,因?yàn)閍pache默認(rèn)系統(tǒng)對(duì)“.ht”開頭的文件默認(rèn)不允許外部讀取,安全系數(shù)會(huì)高一點(diǎn)哦。
第4步
就是創(chuàng)建apache的驗(yàn)證用戶
htpasswd -c /var/www/html/dialup_admin/htdocs/.htpasswd radiusadmin
#第一次創(chuàng)建用戶要用到-c 參數(shù) 第2次添加用戶,就不用-c參數(shù)
如果你們想修改密碼,可以如下
htpasswd -m .htpasswd radiusadmin
第5步:
ok,重啟apache服務(wù),然后訪問 http://10.0.0.64/radiusadmin就能看到一個(gè)用戶驗(yàn)證的彈出窗口,只要填入第4步創(chuàng)建的用戶名和密碼就行
上述內(nèi)容就是如何配置freeradius從mysql數(shù)據(jù)庫讀取用戶信息,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。