FreeRadius 2.1.6的安装

hansel@163.com

2008-9-7

Linux: RedHat Enterprise Linux AS 5

红帽子企业版安装了freeradius-1.1.3-1.2.el5,先卸载:

# rpm -ev freeradius

 

1.       下载
http://freeradius.org/download.html
目前的版本是2.1.6,文件名是freeradius-server-2.1.6.tar.bz2

编译
#cd /opt
#mkdir host
#tar xjvf /opt/download/freeradius-server-2.1.6.tar.bz2
#cd freeradius-server-2.1.6
#./configure
#make
#make install

 

安装的文件所在的系统目录:

1)        /usr/local/sbin checkrad  radiusd  radmin  radwatch  rc.radiusd

2)         /usr/local/binradlast      radtest   randpkt      rlm_dbm_parser  radclient       radsniff     radwho  radeapclient    radsqlrelay  radzap   rlm_dbm_cat

3)         /usr/local/etc/raddb 配置文件

4)         /usr/local/share/manman手册

5)         /usr/local/var/run/radiusd:运行时生成的文件存放目录

6)         /usr/local/var/log/radius:日志文件存放目录

7)         /usr/local/var/log/radius/radacct

8)         /usr/local/share/freeradius:存放各个属性定义

9)         /usr/local/lib freeradius使用的库文件

测试是否安装成功:

1)        #radiusd –Xf
…………..

2)        在另外一个终端上运行:
# radtest test test localhost 0 testing123
Sending Access-Request of id 18 to 127.0.0.1 port 1812
        User-Name = "test"
        User-Password = "test"
        NAS-IP-Address = 127.0.0.1
        NAS-Port = 0
rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=18, length=20

说明可以正常和radiusd进行通信。

 

2.       配置radius

1)        修改radius.conf

去掉$INCLUDE sql.conf的注释;

auth_badpass = yes

        auth_goodpass = yes

2)        修改sql.conf

server = "localhost"

        #port = 3306

        login = "radius"

        password = "radpass"

3)        修改clients.conf:增加
client 192.168.0.0/16 {
        secret          = testing123
        shortname       = private-network
        nastype         = other
}

4)        修改eap.conf

default_eap_type = peap

 

5)        修改sites-enable/ defaultsite-enable/ inner-tunnel

authorize authenticateaccountingsession中去掉sql前面的注释。

去掉auth_log的注释,注释掉unix

6)         

这样192.168.x.xAP都可以访问Radius服务器。

3.       生成证书 (如果使用外部证书可以跳过这步)
生成随机数:

# cd /usr/local/etc/raddb/certs
# make dh
# make random

编辑ca.cnfserver.cnfclient.cnf文件中的"input_password" "output_password"字段,设置密码,分别编辑[certificate_authority] [server] [client]字段为证书的信息, default_days字段为证书有效期。

修改Makefile

a)       不知道为什么对于ca.cnf日期的修改不生效,生成的根证书有效期总是一个月,所以只好在生成根证书的命令行加上一个-days 3650
修改后如下:

#more Makefile

ca.key ca.pem: ca.cnf

openssl req -new -x509 -days 3650 -keyout ca.key -out ca.pem -config ./ca.cnf

 

b)      由于客户端证书是用server证书签名,增加导出server证书的Make目标:
server.der: server.pem
        openssl x509 -inform PEM -outform DER -in server.pem -out server.der
同时修改:
server: server.der

c)      还可以增加一个删除所有证书的Make 目标:

allclean:

        rm -f *.pem *.der *.csr *.crt *.key *.p12 serial* index.txt*

 

# make ca server client

验证根证书:

# openssl x509 -in ca.pem -text –noout

 

安装客户端证书:

d)      导入根证书:生成的ca.der为根证书,需要先导入到客户端,注意存放的位置要选受信任的根证书颁发机构。

e)       导入客户端证书:生成的user@example.com.pem是客户端证书(如果更改了client.cnf中的commonName,则不是这个名字),不过使用client.p12文件更容易导入Windows系统。

 

 

服务器端配置:

注意,如果修改了server.cnfinput_password,则需要修改eap.conf文件中的tls字段的private_key_password信息。

 

4.       设置为开机自动启动

# cp freeradius-server-2.1.6/scripts/rc.radiusd /etc/init.d/radiusd

# vi /etc/init.d/radiusd

 

#!/bin/sh 一行后面加入:

# radiusd      This shell script takes care of starting and stopping

#             standalone radiusd.

#

# chkconfig: - 70 70

# description: free radius server.

# processname: /usr/local/sbin/radiusd

# config: /usr/local/etc/raddb

 

使用命令:

#chkconfig --add radiusd

#chkconfig radiusd on

 

5.       配置apache HTTP server

允许在没有index.html等文件时列出目录

# vi /etc/httpd/conf.d/welcome.conf

去掉Indexes前面的减号

<LocationMatch "^/+$">

    Options Indexes

    ErrorDocument 403 /error/noindex.html

</LocationMatch>

 

6.       配置mysql

a)       安装phpMyadmin (如果使用命令行方式配置,可以省略该步骤)

下载:phpMyAdmin-2.11.9.5-all-languages.tar.bz2  高版本的需要php-5.2以上版本,RHEL 5只带了php-5.1.6

解压:tar xjvf phpMyAdmin-2.11.9.5-all-languages.tar.bz2

      创建一个config目录 mkdir config ; chmod o+rw config

做符号链接到httpd目录: ln phpMyAdmin-2.11.9.5-all-languages /var/www/html/phpMyAdmin

 

设置:http://localhost/phpMyAdmin/ /scripts/setup.php

设置认证方式为cookie,配置完并保存后,移动config /config.in.php到上一级目录。

 

解决phpMyAdmin的警告:

i)安装mbstring

   rpm -Uvh php-mbstring-5.1.6-20.el5.i386.rpm

 

ii)使用phpMyAdmin管理mysql,如果出现以下提示

Cannot load mcrypt extension

 

rpmfind.net下载以下RPM包即可解决上述问题

php-mcrypt

php-mhash

libmcrypt

libmcrypt-devel

libmhash

libmhash-devel

 

修改/etc/php.ini

增加:

;;;;;;;;;;;;;;;;;;;;;;

; Dynamic Extensions ;

;;;;;;;;;;;;;;;;;;;;;;

extension=mbstring.so

extension=mcrypt.so

 

b)      创建并配置数据库radius (可以使用phpMyAdmin来配置,下同)

# mysqladmin -u root -p create radius

# cd /usr/local/etc/raddb/sql/mysql

# mysql -u root -p radius < admin.sql

# mysql -u radius -p radius < schema.sql

可选创建其他表,可以使用的SQL脚本:ippool.sql, nas.sql, wimax.sql

 

7.       配置freeradius的管理WEB页面dialup_admin

a)       复制dialup_admin/usr/local/opt/

# cp  freeradius-server-2.1.6/dialup_admin/ dialup_admin/ -a

b)      创建符号链接

# ln -s /usr/local/opt/dialup_admin/htdocs/   /var/www/html/dialup_admin

c)      创建mysql 数据表

#cd dialup_admin/sql

# mysql -u radius -p radius < badusers.sql

还有mtotacct.sql, totacct.sql, userinfo.sql

导入userinfo.sql出错:

ERROR 1067 (42000) at line 4: Invalid default value for 'id'

 

userinfo.sql文件中去掉DEFAULT ‘0’

 

d)      修改配置文件

修改admin.conf中以下设置:

general_base_dir: /usr/local/opt/dialup_admin

general_radius_server_auth_proto: chap   //pap改成chap

general_encryption_method: clear        //crypt改成clear

general_radiusd_base_dir: /usr/local

general_domain: xxxx

sql_username: xxxx

sql_password: xxxx

sql_usergroup_table: radusergroup

sql_debug: false

e)       修改apachephp.conf配置文件

# vi /etc/httpd/conf.d/php.conf

在未尾添加

AddType application/x-httpd-php .php .php3

重启httpd

# service httpd restart

 

8.       参考文档

a) 红帽RHEL5U3平台实现pppoe接入记账认证服务器http://linux.chinaunix.net/ebook/doc/2009/06/05/1116103.shtml

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐