freeradius是一个可控流量及时间的连接验证系统,常用于vpn验证、pppoe小区验证、无线网络验证。
本文主要记录使用其做为vpn验证服务器的搭建方式及注意事项。
下载及安装
下载页面 2012.4.17最新版本为2.1.12.
wget ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-2.1.12.tar.gz
tar xvf freeradius-server-2.1.12.tar.gz
cd freeradius-server-2.1.12
./configure
make
make install
配置radius.conf
cd /usr/local/etc/raddb/
vim radiusd.conf
找到proxy节,关闭proxy
proxy_requests = no
#$INCLUDE proxy.conf
由于我们准备采用sql配置,注释掉
#$INCLUDE clients.conf
找到module节,注释掉
#$INCLUDE eap.conf
打开
$INCLUDE sql.conf
$INCLUDE sql/mysql/counter.conf
$INCLUDE sqlippool.conf
配置sql.conf
设定数据库
database="mysql"
server = "localhost"
port = 3306
login = "radius"
password = "radpass"
radius_db = "radius"
打开从nas表中读取nas客户端列表
readclients = yes
更改ippool的使用的数据库sql语句
$INCLUDE sql/mysql/ippool.conf
更改sql/mysql/count.conf
在最后添加计数器
sqlcounter trafficcounter {
counter-name = Traffic
check-name = Max-Traffic
reply-name = Traffic-Limit
sqlmod-inst = sql
key = User-Name
reset = never
query = "SELECT floor(SUM(acctinputoctets + acctoutputoctets)/1048576) FROM radacct WHERE UserName='%{%k}'"
}
更改默认设置
cd sites-enabled
vim default
找到authorize小节
打开auth log
auth_log
关闭后缀
#suffix
关闭eap
# eap {
# ok = return
# }
关闭从文件读取用户
# files
从数据库读取用户
sql
增加流量记录
trafficcounter
找到authenticate节
注释掉#digest
注释掉unix
注释掉eap
找到preacct节
打开
update request {
FreeRADIUS-Acct-Session-Start-Time = "%{expr: %l - %{%{Acct-Session-Time}:-0 } - %{%{Acct-Delay-Time}:-0}}"
}
注释掉
suffix
files
找到accounting节
注释掉unix
注释掉radutmp
注释掉main_pool
增加sqlippool
打开sql
找到session节
注释掉
radutmp
打开
sql
找到post-auth节
增加sqlippool
打开sql
找到Post-Auth-Type REJECT节
打开sql
找到post-proxy节
注释掉eap
对inner-tunel做同样配置
增加属性
vim dictionary
在最后添加
ATTRIBUTE Max-Traffic 3003 integer
ATTRIBUTE Traffic-Limit 3004 integer
运行radiusd -X进行调试