平臺:Centos 7 x86_64mysql
1,安裝源並更新c++
yum install -y epel-releaseredis
rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpmsql
yum update -y數據庫
2,安裝基本庫服務器
yum install -y install gcc gcc-c++ openssl openssl-devel pcre pcre-devel libtalloc-devel hiredis* ykclient libpcap libpcap-devel libnl-devel libnl net-snmp net-snmp-utils 數據結構
3,安裝mysqlide
yum install -y mysql-community-server mysql-devel mysql-connector-odbc libdbi-dbd-mysql測試
4,啓動mysql服務server
systemctl enable mysqld.service
systemctl start mysqld.service
mysql_secure_installation
5,安裝freeradius
wget ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-3.0.12.tar.gz
tar zxvf freeradius-server-3.0.12.tar.gz
cd freeradius-server-3.0.12
./configure --with-modules=rlm_sql_mysql
make && make install
6.測試
vi /usr/local/etc/raddb/users
找到這一行
#steve Cleartext-Password:="testing"
將前面的#去掉
steve Cleartext-Password := "testing"
Service-Type = Framed-User,
Framed-Protocol = PPP,
Framed-IP-Address = 172.16.3.33,
Framed-IP-Netmask = 255.255.255.0,
Framed-Routing = Broadcast-Listen,
Framed-Filter-Id = "std.ppp",
Framed-MTU = 1500,
Framed-Compression = Van-Jacobsen-TCP-IP
radiusd -X
提示Refusing to start with libssl version OpenSSL 1.0.1e
vi /usr/local/etc/raddb/radiusd.conf
找到allow_vulnerable_openssl = no,修改爲allow_vulnerable_openssl = yes
再次輸入
radiusd -X
新打開一個終端
radtest steve testing localhost 0 testing123
結果:
Sent Access-Request Id 41 from 0.0.0.0:46471 to 127.0.0.1:1812 length 75
User-Name = "steve"
User-Password = "testing"
NAS-IP-Address = 127.0.0.1
NAS-Port = 0
Message-Authenticator = 0x00
Cleartext-Password = "testing"
Received Access-Accept Id 41 from 127.0.0.1:1812 to 0.0.0.0:0 length 71
Service-Type = Framed-User
Framed-Protocol = PPP
Framed-IP-Address = 172.16.3.33
Framed-IP-Netmask = 255.255.255.0
Framed-Routing = Broadcast-Listen
Filter-Id = "std.ppp"
Framed-MTU = 1500
Framed-Compression = Van-Jacobson-TCP-IP
accept即成了 ^_^
7,將radius和mysql融合
cd /usr/local/etc/raddb/mods-enabled
ln -s ../mods-available/sql sql
vi /usr/local/etc/raddb/mods-available/sql
找到driver = 「rlm_sql_null」修改成driver = 「rlm_sql_mysql」
將這幾行的註釋去掉
server = "localhost"
port = 3306
login = "radius"
password = "radpass"
保存後退出。
輸入mysql -u root -p,輸入密碼
1)創建數據庫並導入radius數據結構
mysql>create database radius;
mysql>grant all on radius.* to 'radius'@'localhost' identified by 'radpass';
mysql>flush privileges;
#mysql -u root -p radius < /usr/local/etc/raddb/mods-config/sql/main/mysql/schema.sql
2)創建組(在此新建組名稱爲user)
use 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-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');
exit
測試:radiusd -X,在另外一終端執行radtest test testpwd localhost 1812 testing123
得到結果
Sending Access-Request of id 247 to 127.0.0.1 port 1812
User-Name = "test"
User-Password = "testpwd"
NAS-IP-Address = 127.0.0.1
NAS-Port = 1812
Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=247, length=38
Service-Type = Framed-User
Framed-IP-Address = 255.255.255.255
Framed-IP-Netmask = 255.255.255.0
Accept!成了!!
接下來加須要認證的服務器,好比
vi /usr/local/etc/raddb/clients.conf
追加
client 192.168.10.8{
secret = testing123(認證的密鑰)
shortname = jp01
}
認證試試。。。^_^
簡單安裝:
yum install -y freeradius freeradius-utils freeradius-mysql