Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 操作系统 > Linux > freeradius+mysql为华为防火墙做vpn用户验证
【标  题】:freeradius+mysql为华为防火墙做vpn用户验证
【关键字】:freeradius+mysql,vpn
【来  源】:http://www.cublog.cn/u/12207/showart.php?id=163495

freeradius+mysql为华为防火墙做vpn用户验证

Your Ad Here

freeradius+mysql为华为防火墙做vpn用户验证

我们公司有VPN用户几百个,最初把用户名都设置在防火墙中,管理起来非常不方便,容易出错。上网找了些资料(在此对作者表示感谢),经过一番设置,把VPN用户认证转移到外部radius服务器上。这么做的好处有:

1、安全性高,不需要登陆防火墙就可以完成用户管理;

2、管理大量用户方便、可查询、添加、删除

3、可记录VPN用户的登录时间,传送字节数,从而对用户进行统计;

4、可在数据库中添加字段,记录VPN用户的相应中文名及其他信息。

5、节省防火墙的有限内存

   radius服务器除了可以对VPN用户进行认证外,还可以对FTPtelnet等用户认证,各位有兴趣可以研究一下。

简单网络结构: 防火墙-3层交换机-linux主机

防火墙内网接口IP192.168.80.2 ,经过一个3层交换机,linux主机连接在内网ip是:192.168.30.130

一、安装linux服务器

版本:RHAS3 U3

安装时选择定制安装,“服务”中选上“SQL”关于mysql的部分,“开发工具”全选上,其他任选。

二、安装freeradius服务

版本:freeradius-1.1.1

下载:

1、 安装

freeradius需要openssl 库,所以如果系统里没安装的话,请先安装

# tar zxvf freeradius-1.1.1.tar.gz
# cd freeradius-1.1.1
# ./configure    
# make
# make install

默认装完后freeradius各相关目录:

配置文件:/usr/local/etc/raddb

执行文件:/sbin/radiusd

dictionary/usr/local/share/freeradius/dictionary.
mysql中导入radius表所需sql语句目录:/usr/local/share/doc/freeradius/examples/mysql.sql

2、 配置

1)  修改 clients.conf

# vi /usr/local/etc/raddb/clients.conf

在最后增加如下几行:

client 127.0.0.1 {               ;增加本地帐户,测试radius是否工作正常

secret = 123456                ;本地连接radius的密码

shortname = localhost

nastype = other

}

 

client 192.168.80.2 {            ;增加防火墙连接radius的接口地址

secret = mymingya              ;防火墙连接radius的密码

shortname = sec100f

nastype = other

}

 

2)  修改naslist

 # vi /usr/local/etc/raddb/naslist
在最后加入一行:

  192.168.80.2       sec100f         other           ;加入防火墙nas

3)  编辑users

# vi /usr/local/etc/raddb/users
在文本最后加入用户rhh (这个用户是保存在文本文件里的,做测试用)

rhh Auth-Type:=local,User-Password==123456
    Service-Type = Framed-User,
    Framed-Protocol = PPP,
    Framed-IP-Address = 10.0.0.2,
    Framed-IP-Netmask = 255.255.255.0

4)  启动radiusd,测试radiusd服务:

# /sbin/radiusd –X &      (加上&在后台运行,便于下面测试命令执行) 
# /sbin/radtest rhh 123456 localhost 0 123456

如果有类似 Access-Accept的字样出现,则表示radius开始工作了。

三、安装配置mysql数据库

版本:mysql-server-3.23.58.1

1、 安装

RHA3U3默认不安装mysql-server,而且找遍disk14也没有找到这个安装包,只能在红旗4.1安装盘的disk2中找到mysql-server-3.23.58.1.i386.rpm

#rpm –ivh mysql-server-3.23.58.1.i386.rpm

自动创建mysqld服务。

启动:#service mysqld start

停止:#service mysqld stop

重启:#service mysqld restart

2、 配置:

启动mysql;更改mysqlroot用户密码为“tdrwx”;

#service mysqld start

更改密码的3种方法:

a、命令行更改:#mysqladmin –u root –password  “tdrwx”

   如果root已经有密码了:#mysqladmin –u root –p password “tdrwx”

bset password修改口令:

#mysql –u root –p

   mysql> set password for root@localhost=password('tdrwxt');

c、直接修改user表的root用户口令:

#mysql –u root –p

mysql> use mysql;
mysql> update user set password=password('tdrwx') where user='root';
mysql> flush privileges;

四、建立radiusmysql的联系

1、 创建radius数据库

#mysqladmin –u root –p create radius         注意:磁盘空间不足回导致建库失败!!!

2、 导入radius数据表:

# cd  /usr/local/share/doc/freeradius/examples/
# mysql -u root -p radius < mysql.sql                
;(“< >”不要搞错了!)

radius数据库中有2个表需要注意:

radcheck:存放用户名和密码的表,以后在这儿添加VPN用户名和密码

radacct:计费信息,以后自动记录VPN登录的时间和收发数据的统计信息

                                          

3、 编辑 radius.conf 使其支持mysql认证

 # vi /usr/local/etc/raddb/radiusd.conf
authorize {
preprocess
chap
mschap
suffix
sql                   
将前面#号去掉
...
}

accounting {
...
sql                   
将前面#号去掉
...
}

 

4、 编辑 sql.conf ,使radius可以访问mysql

# vi /usr/local/etc/raddb/sqlconf
sql {
driver = "rlm_sql_mysql"
server = "localhost"
login = "root"
password = "mysql
的密码"     mysqlroot用户的密码
radius_db = "radius"          
;刚才创建的数据库名

 

5、 向数据库里增加一些数据;

# /usr/local/mysql/bin/mysql -u root -p radius
先加入一些组信息:
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-Netmask','=','255.255.255.255');
insert into radgroupcheck (groupname, attribute, op, value) values ("user", "Auth-Type", ":=", "Local");

然后加入第一个用户信息:
insert into radcheck (username,attribute,op,value) values ('rhh','User-Password','==','123456');

然后把用户加到组里:
insert into usergroup(username,groupname) values('rhh','user');

 

6、 测试radiusmysql的连接:

重启mysql#service mysqld restart

启动radius

# /sbin/radiusd –x &                        ;以debug模式运行radius

# /sbin/radtest rhh 123456 localhost 0 123456    ;用mysql中的帐号测试

出现 Access-Accept 之类的字样就表示radiusmysql之间的连接正常。

这时可以正式启动radiusd

# ps –aux |grep radiusd     ;查询radius进程号

# kill -9 xxxxx               ;根据进程号,杀掉radius进程

# /sbin/radiusd &            ;正式启动

 

五、配置华为防火墙

以下按照最简单配置来实现,更多选项请参考防火墙操作手册。

前提:关于L2TP的基础配置不详细说了。我们新建一个L2TP group,用radius来认证和计费。

1、 配置AAA认证方案

 [MY] radius scheme vpnuser                          ;创建AAA方案名“vpnuser

[MY-radius-vpnuser] primary authentication 192.168.30.130  ;认证主服务器IP

[MY-radius-vpnuser] primary accounting 192.168.30.130     ;计费主服务器IP

 [MY-radius-vpnuser] accounting optional   ;允许计费,即使计费失败也不会挂断用户

 [MY-radius-vpnuser] key authentication mymingya      ;与radius服务器连接密码,即前面在“/usr/local/etc/raddb/clients.conf”文件中设置的“secret”字段值

 [MY-radius-vpnuser] key accounting mymingya      ;与上行一样

 [MY-radius-vpnuser] user-name-format without-domain 

最后一行表示用户名不带域名后缀发送给radius服务器:

例如vpn用户名为rhh,则发送给radius服务器的用户名也是rhh。在mysql中设置用户名时,也只需要输入rhh即可。

如果不配置最后一行,则发送给radius服务器的用户名将是rhh@domain格式的。在mysql中设置用户名时,需要输入rhhrhh@domain

2、 创建ISP

 [MY] domain test                           ;创建一个域“test

 [MY-isp-test] scheme radius-scheme vpnuser     ;关联到AAA认证方案“vpnuser

 [MY-isp-test] ip pool 98 10.0.98.2 10.0.98.250    ;为vpn用户分配ip地址

3、 新建一个虚模版

 [MY] interface Virtual-Template 98                             ;创建虚模版98

 [MY-Virtual-Template98] ppp authentication-mode chap domain test  ;关联到域“test

 [MY-Virtual-Template98] ip address 10.0.98.1 255.255.255.0       

 [MY-Virtual-Template98] remote address pool 98                  vpn用户地址

4、 虚模版加入firewall zone

 [MY] firewall zone untrust

 [MY-zone-untrust] add interface  Virtual-Template 98

5、 增加一个L2TP

 [MY]l2tp-group 98

 [MY-l2tp98]allow l2tp virtual-template 98 remote group98     ;关联到虚模版98

 

六、测试VPN用户登录

1、  mysqlradius数据库的radcheck表中加入用户名和密码

2、  vpn客户端软件登录

3、  radius认证成功后将开始计费,用户挂断后计费停止

登录成功的关键:

防火墙中各项配置正确;

linux主机和防火墙通讯正常;

linuxradius服务已启动;

linuxmysql服务已启动;

mysqlradius数据库中radcheck表中已添加用户名和密码;

上面各项都没有问题的话,认证计费将没有问题。

 

附加功能:

每次添加用户都要登录到mysql中会很麻烦,而且也不利于查询等操作。我们可以充分利用数据库的有利条件,用PHPasp开发前台页面用来管理VPN用户,同时可以扩充数据库内容,加入更多的VPN用户的信息:例如“姓名”、“开通时间”、“关闭时间”等,使我们管理用户更方便。

其他主机要连接mysql数据库,需要创建连接用户:

1、配置mysql,允许运行其他的主机连接数据库

例如:允许192.168.30.0/24网段的主机用用户名“rhh”,密码“tdrwx”访问mysql

#mysql –u root –p

    mysql> grant all privileges on *.* to rhh@'192.168.30.0/255.255.255.0' identified by 'tdrwx' with grant option;

2mysql数据库的备份

a、   mysql默认将数据文件放在/var/lib/mysql/目录下,我们只要将整个目录复制保存既可。

b、  正规操作:

备份:

mysqldump-制作整个数据库的一个备份:
# mysqldump -u root -p --opt radius > radius-back.sql
恢复:
mysqldump
导出的是完整的SQL语句,用mysql客户程序很容易就能把数据导入了:
# mysqladmin -u root -p create radius        
;建库
# mysql -u root -p radius < radius-back.sql   
;从备份的sql语句导入

3ASP连接mysql

a、安装mysql-connector-odbc-3.51.12-win32.zip

bset conn = server.createobject("adodb.connection")

strconnection="driver={mysql odbc 3.51 driver};database="radius";server="192.168.30.130";uid="rhh";password="tdrwx"

conn.open strconnection

sql="select * from radcheck "

Set rs=Server.CreateObject("ADODB.Recordset")

rs.Open sql,conn,2,3

 

深入讨论Linux系统日志管理:【上一篇】
linux的网络怎么配置啊?:【下一篇】
【相关文章】
  • SoftEther使用全攻略-XP下实现高效安全的VPN的连接
  • Netscreen VPN问题汇总
  • 嵌入式移植的第一个成果:带有openvpn的httpd服务器
  • cisco PIX防火墙 动态VPN配置
  • 想做一个SSL VPN
  • vpn创新安装步骤
  • openvpn移植成功
  • M-Howto 安装VPN服务器【OpenVPN版本】
  • 武汉Qno侠诺 VPN,组建企业异地互连网络
  • VPN设置(2)
  • 【随机文章】
  • Linux内核编程(中断处理程序)
  • 主流显卡Linux驱动安装-Intel、ATi篇(图)
  • unix系统当中 软连接与硬连接的区别
  • 利用手机和Q友谈天说地,妙趣横生
  • 主板相关的技术名词解释
  • EJB3.0 (序)
  • The Twenty Most Critical Internet Security Vulnera
  • 病毒 Backdoor/Agobot.akz“高波变种”akz
  • 在DirectX下弹出对话框[转载]
  • 基于qmail的完整WEBMAIL解决方案安装详解 
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.