網上有很多的文章,但總是遇到各類問題,有的也沒有明確的說明,在此總結了一下自己的實戰記錄,分享出來:(分享者:qin)
第一種freeradius-server安裝方法:
1.安裝依賴庫
yum -y install libtalloc-devel
yum -y install openssl openssl-devel
yum -y install mysql-devel
2.獲取源碼
wget https://github.com/FreeRADIUS/freeradius-server/archive/freeradius-server-3.0.13.tar.gz
tar -zxvf freeradius-server-3.0.13.tar.gz
cd freeradius-server-3.0.13/
3.編譯
./configure
make
sudo make install
也可參考官方安裝指導文檔:
https://wiki.freeradius.org/building/RHEL%20and%20Centos
第二種freeradius-server安裝方法:
1. 安裝依賴庫:libtalloc
yum -y install libtalloc-devel
2.安裝依賴庫:openssl
yum -y install openssl openssl-devel
3.安裝依賴庫和radius-server:
yum install -y freeradius freeradius-utils freeradius-mysql
4.查看安裝結果:rpm -qa |grep freeradius
freeradius-mysql-3.0.13-15.el7.x86_64
freeradius-3.0.13-15.el7.x86_64
freeradius-devel-3.0.13-15.el7.x86_64
freeradius-utils-3.0.13-15.el7.x86_64
有以上4項說明本次安裝成功
5. 裝完成后,去修改配置文件/etc/raddb/users
(修改文件前記得備份一下原文件),在此文件的最后添加下面一行內容:
test Cleartext-Password := “123456” -----》注意不要有任何中文字符存在
6. 如果啟動了防火牆,需要修改防火牆配置,
允許freeradius所使用的端口1812,1813通過。命令如下:
iptables -A INPUT -p udp --dport 1812 -j ACCEPT
iptables -A INPUT -p udp --dport 1813 -j ACCEPT
7.啟動debug驗證模式
radiusd -X
重新開啟一個終端輸入命令
radtest test 123456 localhost 1812 testing123
能收到如下報文說明認證成功:
Received Access-Accept Id 32 from 127.0.0.1:1812 to 0.0.0.0:0 length 20
8.配置允許接入的客戶端所在IP段:
/etc/raddb/clients.conf 中修改允許客戶端接入的IP段:
例如添加一下允許訪問的IP段:
client 10.2.18.8/16 {
secret = testing123
}
9. 申請RDS數據庫
(1)創建庫名:radius
(2)在radius庫中創建各類數據表:
將機器上 /etc/raddb/mods-config/sql/main/mysql/schema.sql 數據表創建和結構倒入radius庫中即可
共創建了7個表,分別是:
radcheck 用戶檢查信息表
radreply 用戶回復信息表
radgroupcheck 用戶組檢查信息表
radgroupreply 用戶組檢查信息表
radusergroup 用戶和組關系表
radacct 計費情況表
radpostauth 認證后處理信息,可以包括認證請求成功和拒絕的記錄
10.建立組信息和用戶信息
(1)連接數據庫,進入radius庫
(2)建立組信息:(在此新建組名稱為user)
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-IP-Address',':=','255.255.255.255');
insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Netmask',':=','255.255.255.0');
(3)建立用戶信息:(在此新建用戶名為test,密碼為testpwd)
insert into radcheck (username,attribute,op,value) values ('test','Cleartext-Password',':=','testpwd');
(4)將用戶加入組中
insert into radusergroup (username,groupname) values ('test','user');
11.修改 FreeRADIUS中的mysql 認證配置
(1) 執行如下命令:
cd /etc/raddb/mods-enabled
ln -s ../mods-available/sql
(2) 修改 FreeRADIUS中的mysql 配置文件
該配置文件位於/etc/raddb/mods-available目錄,名稱為sql
將32行的內容修改為如下:
driver = "rlm_sql_mysql"
vim /etc/raddb/mods-available/sql (第98行)修改如下配置
dialect = "sqlite" -> dialect = "mysql"
//下列配置前的注釋去掉
server = "localhost" #//mysql服務器地址
port = 3306 #//mysql 端口號
login = "radius" #//myqsl 登錄用戶名
password = "radpass" #//mysql 登錄密碼
read_clients = yes
(3)debug模式重啟frreRADIUS (為了能在終端看到詳細日志輸出)
radiusd -X
(4)再次驗證用戶認證
重新開啟一個終端輸入命令
radtest test testpwd localhost 1812 testing123
能收到如下報文說明認證成功:
Received Access-Accept Id 32 from 127.0.0.1:1812 to 0.0.0.0:0 length 20
(5)正式操作radius-server時的
啟動命令:service radiusd start
停止命令:service radiusd stop
安裝radius客戶端:
1.獲取客戶端源碼:
wget -c ftp://ftp.freeradius.org/pub/freeradius/freeradius-client-1.1.7.tar.gz
tar zxvf freeradius-client-1.1.7.tar.gz
cd freeradius-client-1.1.7
2.編譯安裝:
./configure
make && make install
3.安裝成功后的可執行文件放至路徑:
/usr/local/sbin/
|-- sbin
|-- radacct 發送計費包
|-- radembedded 生成配置文件(未使用過)
|-- radexample 發送鑒權包
|-- radiusclient 發送鑒權包
|-- radlogin 發送鑒權包
`-- radstatus 查看服務器狀態
4.客戶端配置文件位置:
(1) /usr/local/etc/radiusclient/radiusclient.conf
注意一下配置內容即可:
auth_order radius
authserver localhost
(2) /usr/local/etc/radiusclient/servers
密鑰字段要和服務器端配置的一樣,否則認證不通過
localhost/localhost testing123
出現的問題和解決方法:
1.無法加載libfreeradius-client.so.2:
[root@server2618 ~]# radlogin
radlogin: error while loading shared libraries: libfreeradius-client.so.2: cannot open shared object file: No such file or directory
[root@server2618 ~]#
解決:
[root@server2618 ~]# cp /usr/local/lib/libfreeradius-client.so.2 /usr/lib64/
[root@server2618 ~]# radlogin
($Id: radlogin.c,v 1.9 2008/01/09 07:04:18 sobomax Exp $)
-----------------------------------------------------
Linux 3.10.0-1062.9.1.el7.x86_64 (server2618) (port 0)
-----------------------------------------------------
login: test
Password: