freeradius+openvpn

更新时间:2024-06-24 10:22:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

gcc gcc-c++ lzo-2.04.tar.gz openssl openssl-devel crypt* libgcrypt*

freeradius-server-2.1.10.tar.gz freeradius-mysql openvpn-2.1.4.tar.gz daloradius-0.9-8.tar.gz

radiusplugin_v2.1a_beta1.tar.gz

xampp-linux-1.7.1.tar.gz(php版本需要为5.2XXX版本,daloradius对php5.3版本支持不好)

可以使用单独安装php,mysql,apache来支持。 安装过程 1、首先使用yum命令安装以上没有具体版本的软件或者各种库

2、为了方便,本文使用xampp1.7.1,这个版本不是xampp的最新版,因 为最新版的php是5.3版本,daloradius对其支持不好,所以使用了这个版本。把这个软件移动到opt并解压到当前目录lampp,执 行./lampp start 启动lampp,关闭防火墙,从客户端输入ip地址进行访问看lampp是否正常,如正常则可以看到lampp的默认页面。

3、解压freeradius到当前目录tar -zxvf freeradius-server-2.1.10.tar.gz,切换到freeradius目录,

执行./configure编译

执行cp libltdl/ltdl.h src/include/(如果不靠边make的时候可能会出错), 接着执行make,make install

4、 打开[root@linux85 /]# vim /usr/local/etc/raddb/users 找下面这段,把前面的注释去掉 steve Cleartext-Password := “testing” Service-Type = Framed-User, Framed-Protocol = PPP,

Framed-IP-Address = 172.16.3.33, Framed-IP-Netmask = 255.255.255.0, Framed-Routing = Broadcast-Listen, Framed-Filter-Id = “std.ppp”, Framed-MTU = 1500,

Framed-Compression = Van-Jacobsen-TCP-IP

这样你就有了一个测试的用户,用户名:steve 密码:testing 启动freeraidus的debug模式 [root@linux85 /]# radiusd -X 看到如下类似信息表示freeradius运行成功

Listening on authentication address * port 1812 Listening on accounting address * port 1813 Listening on command file /usr/local/var/run/radiusd/radiusd.sock Listening on authentication address 127.0.0.1 port 18120 as server inner-tunnel Listening on proxy address * port 1814 Ready to process requests.

另外再开一个界面执行测试语句[root@linux85 ~]# radtest steve testing localhost 1812 testing123 ,返回以下结果,表示freeradius正常运行

rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=119, length=71 Service-Type = Framed-User Framed-Protocol = PPP Framed-IP-Address = 172.16.3.33 Framed-IP-Netmask = 255.255.255.0 Framed-Routing = Broadcast-Listen Filter-Id = “std.ppp” Framed-MTU = 1500 Framed-Compression = Van-Jacobson-TCP-IP

5、为mysql的root账户添加密码/opt/lampp/bin/mysqladmin -uroot password 123,上述命令行为root账号添加密码为123

创建radius数据库 /opt/lampp/bin/mysqladmin -uroot -p123 create radius 添加一个新表

CREATE TABLE usergroup ( UserName varchar(64) NOT NULL default ”, GroupName varchar(64) NOT NULL default ”, priority int(11) NOT NULL default ?1′, KEY UserName (UserName(32)) ) ;

执行如下代码导入数据库表并为数据库赋予访问权限

# mysql -u root -p radius < /usr/local/etc/raddb/sql/mysql/schema.sql # mysql -u root -p radius < /usr/local/etc/raddb/sql/mysql/nas.sql # mysql -u root -p radius < /usr/local/etc/raddb/sql/mysql/ippool.sql # mysql -u root -p radius <

/usr/local/etc/raddb/sql/mysql/wimax.sql # mysql -u root -p GRANT SELECT ON radius.* TO ?radius?@'localhost? IDENTIFIED BY ?radpass?; GRANT ALL on radius.radacct TO ?radius?@'localhost?; GRANT ALL on radius.radpostauth TO ?radius?@'localhost?; 6、此步骤和第5步中的导入数据库表是重复的,如下是另外一种导入数据库表的方法,也可以正常使用freeradius

导入数据库表 /opt/lampp/bin/mysql -uroot -p123 radius < /mysql.sql ,这里的mysql.sql是freeradius1.1.7xx版本中的mysql数据库文件,具体位置freeradius- 1.1.7/freeradius-1.1.7/doc/examples

登录mysql,再创建另外一个新表radusergroup

CREATE TABLE radusergroup ( username varchar(64) NOT NULL default ”, groupname varchar(64) NOT NULL default ”, priority int(11) NOT NULL default ?1′, KEY username (username(32)) ) ;

7、向数据库radius中导入一些组和用户信息,登录mysql执行以下命令行 use 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 radgroupreply (groupname,attribute,op,value) values (?user?,'Framed-IP-Netmask?,':=?,?255.255.255.0′); 添加用户

INSERT INTO radcheck (UserName, Attribute, Value) VALUES (?test?, ?Password?, ?test?); 把用户添加到组中

insert into radusergroup(username,groupname) values(?test?,'user?); 测试

select * from radcheck where UserName=?test?; 8、下面配置freeradius的配置文件

[root@linux85 bin]# vim /usr/local/etc/raddb/sql.conf下面添加mysql的用户名和密码(大约在36行) # Connection info:

server = “127.0.0.1″ //这里原来为localhost,要修改成127.0.0.1,否则freeradius会出错 #port = 3306 login = “root” 用户名 password = “123″ 密码

[root@linux85 bin]# vim /usr/local/etc/raddb/sites-enabled/default 在152行的files前加#注释 在159行去掉sql前的#注释 在354行的files前加#注释 在388行去掉sql前的#注释

[root@linux85 bin]# vim /usr/local/etc/raddb/radiusd.conf 去掉683行的# $INCLUDE eap.conf前的#

执行 radiusd -X(大写的X)调试运行freeradius,如果不报错误,即表示freeradius运行成功

修改clients.conf文件

[root@linux85 ~]# vim /usr/local/etc/raddb/clients.conf 添加如下信息 client 192.168.0.0/24 {

secret = testing123(认证的密钥) {color:#000000}}

在本机另外开一个窗口,输入

[root@linux85 ~]# radtest test test localhost 0 testing123 如果返回如下信息表示freeradius和数据库交互成功啦

rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=85, length=20 9、 安装lzo-2.04.tar.gz tar -zxvf lzo-2.04.tar.gz ./configure make make install

10、安装openvpn-2.1.4 tar -zxvf openvon-2.1.4.tar.gz

./configure –prefix=/usr/local/openvpn –with-lzo-headers=/usr/local/include/lzo

–with-lzo-lib=/usr/local/lib –with-ssl-headers=/usr/include/openssl –with-ssl-lib=/usr/lib (需要几分钟的等待) make make install

11、生成openvpn的key等相关文件

拷贝生成key的文件[root@linux85 openvpn-2.1.4]# cp -rf ./easy-rsa/ /usr/local/openvpn/ [root@linux85 openvpn-2.1.4]# cd /usr/local/openvpn/easy-rsa/2.0 vim vars

修改底部的如下内容,并保存

export KEY_COUNTRY=”CN” export KEY_PROVINCE=”AH” export KEY_CITY=”HF” export KEY_ORG=”Lighten” export KEY_EMAIL=”306981145@qq.com” [root@linux85 2.0]# source ./vars ./clean-all ./build-ca

./build-key-server server ./build-dh cd keys

/usr/local/openvpn/sbin/openvpn –genkey –secret ta.key cd /usr/local/openvpn mkdir ssl

cp -a ./easy-rsa/2.0/keys/ca.crt ./ssl/ cp -a ./easy-rsa/2.0/keys/dh1024.pem ./ssl/

cp -a ./easy-rsa/2.0/keys/ta.key ./ssl/ cp -a ./easy-rsa/2.0/keys/server.crt ./ssl/ cp -a ./easy-rsa/2.0/keys/server.key ./ssl/ 12、openvpn的配置 拷贝server.conf文件

[root@linux85 openvpn]# cp /openvpn-2.1.4/sample-config-files/server.conf /usr/local/openvpn/

vim /usr/local/openvpn/server.conf,请参考附件中的server.conf文件进行配置 创建两个文件夹

mkdir /usr/local/openvpn/ccd mkdir /usr/local/var/log/openvpn 配置启动文件

[root@linux85 openvpn]# cp /openvpn-2.1.4/sample-scripts/openvpn.init /etc/init.d/ [root@linux85 openvpn]# ln -s /usr/local/openvpn/sbin/openvpn /usr/sbin/openvpn vi /etc/init.d/openvpn.init 修改:work=/usr/local/openvpn 启动openvpn

/etc/init.d/openvpn.init start

这个时候要看一下 ifconfig 有没有 tun0设备,如果有的话,openvpn启动成功 13、安装配置radiusplugin

[root@linux85 /]# tar -zxvf radiusplugin_v2.1a_beta1.tar.gz cd radiusplugin_v2.1a_beta1 make

[root@linux85 radiusplugin_v2.1a_beta1]# cp radiusplugin.so /usr/local/openvpn/ [root@linux85 radiusplugin_v2.1a_beta1]# cp radiusplugin.cnf /usr/local/openvpn/ vim /usr/local/openvpn/radiusplugin.cnf

第22行处修改openvpn的server.conf文件位置 OpenVPNConfig=/usr/local/openvpn/server.conf 第74行处修改name为本机地址 name=127.0.0.1 第80行处修改sharedsecret sharedsecret=testing123 14、安装配置Daloradius

Daloradius是管理freeradius的web管理界面 [root@linux85 /]# tar -zxvf daloradius-0.9-8.tar.gz mkdir /opt/lampp/htdocs/radius

[root@linux85 /]# cp -rf daloradius-0.9-8/* /opt/lampp/htdocs/radius/ [root@linux85 /]# vim /opt/lampp/htdocs/radius/library/daloradius.conf.php 配置如下

$configValues['DALORADIUS_VERSION'] = ?0.9-8′; $configValues['FREERADIUS_VERSION'] = ?1′; $configValues['CONFIG_DB_ENGINE'] = ?mysql?; $configValues['FREERADIUS_VERSION'] = ?1′; $configValues['CONFIG_DB_ENGINE'] = ?mysql?; $configValues['CONFIG_DB_HOST'] = ?127.0.0.1′; $configValues['CONFIG_DB_USER'] = ?root?; $configValues['CONFIG_DB_PASS'] = ?123′; 导入daloradius数据库

[root@linux85 /]# /opt/lampp/bin/mysql -uroot -p123 radius < /opt/lampp/htdocs/radius/contrib/db/mysql-daloradius.sql

创建log文件

touch /tmp/daloradius.log 更改freeradius的log文件位置

[root@linux85 tmp]# vim /opt/lampp/htdocs/radius/library/exten-radius_log.php 修改$logfile_loc1 = ?/usr/local/var/log/radius/radius.log?; 如何使用 1、使用浏览器登录到daloradius,地址为http://192.168.0.85/radius, 默认用户名administrator,默认密码为radius

2、新建一个用户,用户名admin,密码admin

3、从centos中拷贝ca.key ca.crt ta.key三个文件,并配置client.ovpn,client.ovpn文件可从附件中下载,需要配置的地方remote XX.XX.XX.XX 1194

4、从官方下载openvpn客户端并安装,把上述四个文件拷贝到D:\\Program Files\\OpenVPN\\config文件夹中 5、按照如上配置之后即可连接vpn

6、如果有什么错误可查看usr/local/var/log/openvpn/openvpn.log 和 usr/local/var/log/radius/radius.log 和/tmp/daloradius.log

本文来源:https://www.bwwdw.com/article/5at3.html

Top