Ubuntu 12.04 Freeradius 安装实际过程

10560阅读 1评论2014-08-02 forgaoqiang
分类:服务器与存储

    
    这里介绍下详细的Freeradius2.0在Ubuntu 12.04 x64 操作系统上的安装过程,包括使用MySQL数据作为用户名、密码来源的配置操作,经过下面的步骤可以直接将Ubuntu系统变成AAA认证的生产服务器,比官方指导更具有操作实用性哦。

安装 vim gcc make subversion 工具

调整服务器时区 sudo cp /usr/share/zoneinfo/Asia/ShangHai /etc/localtime

下载 freeradius 2.2.0 

apt-get install dpkg-dev
apt-get build-dep freeeradius
apt-get install fakeroot
fakeroot dpkg-buildpackage -b -uc

编译freeradius2.2.0

安装 phpmyadmin 安装 php-pear 

pear install db


导入数据库
/etc/freeradius/sql/mysql  下面 schema.sql nas.sql 都导入到数据库中

svn checkout svn://svn.code.sf.net/p/daloradius/code/trunk daloradius-code

cp daloradius-code /var/www/daloradius -r 
chown www-data:www-data ./daloradius -R

需要安装的内容:

调整服务器时区 sudo cp /usr/share/zoneinfo/Asia/ShangHai /etc/localtime

tasksel 安装 LAMP后

apt-get install freeradius freeradius-mysql freeradius-utils 

apt-get install php-pear php5-gd php5-mysql 

pear install db

修改 sql.conf 的内容 使用覆盖文件也需要修改数据库连接密码

daloradius 修改内容
配置文件 daloradius.conf 
$configValues['CONFIG_LOG_FILE'] = '/var/log/daloradius.log';


1. radiusd.conf




注释掉了 561 行的 clients.conf

同时反注释掉 $INCLUDE sql.conf 否则不会调用数据库模块

2. sql.conf


配置对应的数据库,用户名称,及其密码

反注释掉 readclients = yes 保证从数据库中读取NAS信息等
# 注意SQL并不是动态的读入NAS,而是在一开始的时候载入的,因此不重新加载配置文件的话是不能进行NAS变更的
# 同时注意Virtual Host 不要瞎写,不然会验证不通过的
# NAS是最精确匹配的原则,将会匹配最精准的位置


3. sites-avaiable/default 中的文件

authorize 部分
  1. 注释掉用户来源 user
  2. 启用来源数据库,反注释掉sql

 authentication部分
  1. 注释掉采用unix模块完成认证
  2.    
preacct 部分
  1. 注释掉files模块,不从acct_users 中读取数据

accounting部分
  1. 注释掉 detail 模块,不进行详细的记账文件写入
  2. 注释掉unix模块,不尝试写入 radwtmp文件
  3. 注释掉 radutmp文件,不进行当前在线用户写入,这些信息都交给数据库来完成,检验同时在线用户在 /sql/mysql/dialup.sql 中有定义
  4. 启用sql模块,保证记账信息写入数据库

session部分
  1. 注释掉radutmp模块
  2. 反注释掉 sql 模块,会话检验依靠数据库radacct表中信息完成

post-auth部分
  1. 反注释掉sql模块,这样认证后会把信息写到对应的数据库中radpostauth数据库
  2. 反注释 Post-Auth-Type REJECT 模块中的 sql,这样可以将认证失败的也记录到数据库

注意 MSCHAP CHAP以及 EAP-MD5认证方式都需要明文密码支持,PAP模式可以不使用明文的


编译安装最新的1.3版本的chilli 之后

第一启动需要使用 /etc/init.d/chilli start 进行启动
然后随便都可以了


rc.local 
部署 /etc/init.d/chilli start
/etc/chilli/watchchilli&
/etc/init.d/freeradius start

/etc/chilli/watchchilli
#!/bin/sh

# 本脚本是监视Chilli动作的 如果chilli不存在了则尝试进行启动 始终在后台运行 间隔10s

while test 1; do

chilli_pid=$(pidof chilli)
#echo $chilli_pid

        if [ "$chilli_pid" = "" ];then
                /etc/init.d/chilli start&
        fi

        sleep 10
done

上一篇:总结几个LUA实用的函数
下一篇:《重构大数据统计》 试读

文章评论