Radius服务器搭建---基于CentOS-7.9
1. 关闭防火墙
systemctl stop firewalld //关闭防火墙
systemctl disable firewalld //关闭防火墙自启
注:firewalld有必要时,可以重新开启,这里关闭
2. 关闭selinux
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config //永久关闭Selinux,重启生效
setenforce 0 //临时关闭Selinux,立即生效
注:selinux这里关闭,开启需要修改很多配置和权限,有需要时再开启。
3. 安装基础软件和库
yum install -y net-tools bash-completion lrzsz wget unzip epel-release
也可以分步安装:
1 yum install -y net-tools //安装Ifconfig工具
2 yum install bash-completion -y //安装命令补全工具
3 yum -y install lrzsz //安装文件管理工具
4 yum install -y wget unzip //安装unzip
5 yum install -y epel-release //安装EPEL软件库
yum makecache fast //重置软件库缓存信息
yum -y update && yum -y upgrade //升级系统和软件,可以不升级,有需要时再升
4. 安装和配置MySQL
yum install -y mariadb-server mariadb
systemctl start mariadb && systemctl enable mariadb
mysql_secure_installation //SQL自动配置(除设置密码,其余都回车)
mysql -u root -p //登录数据库
MariaDB [(none)]> create database radius; 创建数据库radius
MariaDB [(none)]> grant all on radius.* to radius@'%' identified by 'radpass'; //设置radius用户名密码及权限
MariaDB [(none)]> flush privileges; //刷新权限
MariaDB [(none)]> exit //退出
5. 安装web相关软件和服务
yum install -y httpd //安装httpd服务
systemctl enable httpd && systemctl start httpd && systemctl status httpd
yum install -y php php-mysql php-pear php-devel php-common php-gd php-mbstring php-mcrypt php-xml php-pear-DB //安装PHP及软件包
systemctl restart httpd //安装完成后重启Apache Web服务以使PHP生效
6. radius安装和数据库相关配置
yum install -y freeradius freeradius-utils freeradius-mysql //安装FreeRadius及组件
systemctl start radiusd && systemctl enable radiusd && systemctl status radiusd
## firewall-cmd --permanent --add-service=radius //设置防火墙允许radius服务(本文前面已禁止防火墙自启动,可不运行此命令)
## firewall-cmd --reload //重启防火墙
mysql -u root -p radius < /etc/raddb/mods-config/sql/main/mysql/schema.sql //创建FreeRadius在数据库中的数据表
#配置SQL模块,更改数据库连接参数,以适合环境
vi /etc/raddb/mods-available/sql //使用VI编辑器修改配置文件
driver = “rlm_sql_mysql”
dialect = “mysql”
server = “localhost”
port = 3306
login = “radius”
password = “radpass”
radius_db = “radius”
#创建软连接,使能SQL模块
ln -s /etc/raddb/mods-available/sql /etc/raddb/mods-enabled/
chgrp -h radiusd /etc/raddb/mods-enabled/sql //配置sql文件权限
systemctl restart radiusd.service //重启radius服务
7. 安装和配置daloradius(用于管理radius的前端平台)
wget https://github.com/lirantal/daloradius/archive/master.zip //从Github上获取并下载源代码
unzip master.zip //解压
rm -f master.zip
mv daloradius-master/ /var/www/html/daloradius //移动文件夹
#修改所属用户和权限
cp /var/www/html/daloradius/library/daloradius.conf.php.sample /var/www/html/daloradius/library/daloradius.conf.php
chmod -R 664 /var/www/html/daloradius/library/daloradius.conf.php
chown -R apache:apache /var/www/html/daloradius
## firewall-cmd --permanent --add-service=http //打开防火墙http服务(本文中已关闭防火墙,不必运行此命令)
## firewall-cmd --reload //重启防火墙
mysql -u root -p radius < /var/www/html/daloradius/contrib/db/fr2-mysql-daloradius-and-freeradius.sql //导入SQL脚本
mysql -u root -p radius < /var/www/html/daloradius/contrib/db/mysql-daloradius.sql //导入SQL脚本
vi /var/www/html/daloradius/library/daloradius.conf.php //使用VI编辑器修改DaloRadius配置文件
(28-33行)
configValues['CONFIG_DB_ENGINE'] = 'mysqli';
configValues[‘CONFIG_DB_HOST’] = 'localhost';
configValues['CONFIG_DB_PORT'] = '3306'; #连接mysql数据库的端口
configValues[‘CONFIG_DB_USER’] = ‘radius’; #连接mysql数据库的账户
configValues['CONFIG_DB_PASS'] = 'radpass'; #连接mysql数据库账号的密码
configValues[‘CONFIG_DB_NAME’] = 'radius'; #连接mysql的radius数据库
$configValues['CONFIG_FILE_RADIUS_PROXY'] = '/etc/raddb/proxy.conf';
$configValues[‘CONFIG_MAINT_TEST_USER_RADIUSSECRET’] = ‘testing123’; (88行) #注意这条,要和 /etc/raddb/clients.conf 文件设置的secret = xxxxxxxxxx 值一样。
配置完成后保存退出
8. 重启Radius和MySQL等服务
添加启动服务,调整FreeRadius与MariaDB的启动顺序,FreeRadius必须在MariaDB启动之后启动,在[Unit]部分,增加After=mariadb.service,如下所示:
vi /etc/systemd/system/multi-user.target.wants/radiusd.service
[Unit]
Description=FreeRADIUS high performance RADIUS server.
After=syslog.target network.target ipa.service dirsrv.target krb5kdc.service
After=mariadb.service
systemctl daemon-reload #重新加载守护进程
systemctl restart radiusd.service
systemctl restart mariadb.service
systemctl restart httpd
9. 访问daloradius平台
http://192.168.0.238/daloradius
添加中文语言选项
vi /var/www/html/daloradius/config-lang.php
添加
10. 测试,验证是否搭建成功
【本地文件认证测试】
测试前,先去掉 /etc/raddb/users 文件中bob用户的注释,其他用户也可以
说明:实际应用时,需要修改/etc/raddb/clients.conf配置文件的IP限制,将自己radius客户端的IP加到白名单。
1)radiusd.service服务开启时,systemctl restart radiusd 重启服务,
然后,使用 radtest bob hello 127.0.0.1 0 testing123 测试。
2)使用 radiusd -X 测试,前提是先把radiusd.service服务停掉,
systemctl stop radiusd , 因为radiusd.service会占用1812端口。
然后输入 radtest bob hello 127.0.0.1 0 testing123
测试完,systemctl start radiusd,把radiusd.service服务重新开起来。
【数据库认证测试】
登录mysql
mysql -uradius -p
使用radius数据库
use radius;
建立radgroupreply组信息(仅作测试用,对应回复信息)
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');
建立用户信息:(在此新建用户名为test,密码为testpwd)
insert into radcheck (username,attribute,op,value) values ('test','Cleartext-Password',':=','testpwd');
将用户加入组中
insert into radusergroup (username,groupname) values ('test','user');
重启radius测试
systemctl restart radiusd
测试
radtest test testpwd 127.0.0.1 0 testing123
尾注:freeradius可以本地文件配置认证,也可以数据库配置认证,还可以对接第三方web,这三点都是独立的。
文章出处: https://www.cnblogs.com/jianmuzi/p/17350823.html
版权声明: 本博客为学习时整理的笔记,文章 [大部分为原创] 作品,转载请 [注明文章出处] ,您的支持是我创作的动力!
转载文章,请遵守《中华人民共和国著作权法》相关规定或遵守《署名CC BY-ND 4.0国际》禁止演绎规范,携带原创出处转载。