freeradius简介
freeradius一般用来进行账户认证管理,记账管理,常见的电信运营商的宽带账户,上网账户管理,记账,都是使用的radius服务器进行鉴权记账的。
常见的radius服务器种类不多,比较强大的当属开源的freeradius,世界上大部分的radius服务器都是基于freeradius开发而来的。
Freeradius包含一个radius服务器和radius-client,可以对支持radius协议的网络设备进行鉴权记账,常见的开源路由器操作系统:如Openwrt,DD-wrt等,都支持radius协议,对PPPOE,热点,VPN等服务器进行账户管理认证,记账。
freeradius功能十分强大,支持众多的数据库。
Freeradius操作稍显麻烦,内置diaup_admin简单web管理,需要更简单易用的管理功能可以使用第三方的管理程序对Freeradius进行账户管理,系统配置等。
如何编译安装freeradius
下载需要的组件和工具
环境:centos7
freeradius版本:3.0.17
安装gcc:yum install gcc -y
安装freeradius数据库支持组件:yum install -y mysql-devel
安装libtalloc:yum install libtalloc -y
安装:yum install libtalloc-devel -y
安装openssl:yum install openssl openssl-devel -y
安装wget:yum install wget -y
安装解压工具:yum install unzip -y
编译安装freeradius
下载freeradius安装包,以下两种方法
1.执行命令 wget https://github.com/FreeRADIUS/freeradius-server/archive/release_3_0_17.zip
2.直接把我给的freeradius-server-release_3_0_17.zip文件上传到服务器
unzip v3.0.17.zip
解压完后把我给的rlm_sqlippool.c文件去替换解压出来的这个文件,文件地址是/media/freeradius-server-release_3_0_17/src/modules/rlm_sqlippool
cd freeradius-server-3.0.17/
./configure
make
make install
安装完后freeradius的目录在 /usr/local/etc/raddb
freeradius编译安装完后需要的一些操作
编辑/etc/group文件,添加radiusd组
vi /etc/group
在末尾加上一行 radiusd:x:95:
编辑/etc/passwd文件,添加radiusd用户
vi /etc/passwd
在文件末尾加上一行 radiusd:x:95:95:radiusd user:/var/lib/radiusd:/sbin/nologin
创建radius日志文件夹
cd /var/log
mkdir radius
给radiusd用户freeradius文件夹和日志文件夹的权限
chown -R radiusd:radiusd /usr/local/etc/raddb
chown -R radiusd:radiusd /var/log/radius
给需要用到的模块做软连接
cd /usr/local/etc/raddb/mods-enabled
ln -s /usr/local/etc/raddb/mods-available/sql ./
ln -s /usr/local/etc/raddb/mods-available/sqlippool ./
防火墙允许freeradius用到的端口通过
添加radius端口到防火墙 注意,是添加udp协议
1812是认证授权端口,1813是计费端口
firewall-cmd --zone=public --add-port=1812/udp --permanent
firewall-cmd --zone=public --add-port=1813/udp --permanent
添加mysql端口到防火墙 注意,是添加tcp协议
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙生效
firewall-cmd --reload
如果需要更改默认端口
vi /etc/services
找到radius的1812、1813那几行,把1812和1813改成你想用的端口
防火墙允许这两个端口通过
创建数据库并附件给的sql文件导入
mysql -uroot -p密码 数据库名 </数据库文件路径
把sql里面的数据库连接信息改成你数据库的
vi /usr/local/etc/raddb/mods-enabled/sql
把里面的连接地址端口数据库账号密码改成你数据库的
把附件的文件放到freeradius的目录里全部替换原有的
users、radiusd.conf、clients.conf 这三个文件替换到/usr/local/etc/raddb目录下
inner-tunnel、default 这两个文件替换到/usr/local/etc/raddb/sites-enabled目录下
filter 替换到/usr/local/etc/raddb/policy.d目录下
sqlippool模块替换到/usr/local/etc/raddb/mods-enabled
sql模块替换到/usr/local/etc/raddb/mods-enabled 替换前先编辑sql模块把数据库连接信息改成你的数据库的连接信息
sqlippool模块里的queries.conf文件替换到/usr/local/etc/raddb/mods-config/sql/ippool/mysql目录下
sql模块里的queries.conf文件替换到/usr/local/etc/raddb/mods-config/sql/main/mysql目录下
使radius服务开机启动并成为系统服务
1把配置文件里的radiusd.service文件放到/usr/lib/systemd/system目录,然后运行下面2个命令添加服务。
2#systemctl enable radiusd.service
3#service radiusd start
(#后是命令)
运行radius服务
radius开启调试模式
radiusd -X
开启关闭重启radiusd服务
service radiusd start #开启radiusd服务
service radiusd stop #停止radiusd服务
service radiusd restart #重启radiusd服务
service radiusd status #查看radiusd服务当前状态