CentOS6.2搭建使用Radius认证的OpenVPN
来源:互联网 发布:极光推送 php接口实例 编辑:程序博客网 时间:2024/06/04 22:28
第一阶段:
安装OpenVPN
(1)安装所需依赖包。
sudo yum -y install gcc gcc-c++sudo yum -y install openssl openssl-develsudo yum -y install lzo lzo-devel(2)安装OpenVPN2.2.2
wget http://swupdate.openvpn.org/community/releases/openvpn-2.2.2.tar.gztar -zxvf openvpn-2.2.2.tar.gzcd openvpn-2.2.2./configure makemake install
(3)生成keys
mkdir /etc/openvpncp -R /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn/cd /etc/openvpn/easy-rsa/2.0/ 改变所有文件可执行状态 chmod +rwx *source vars./clean-all./build-ca./build-dh./build-key-server server./build-key client1./build-key client2./build-key client3 //创建3个key供3个用户上网./openvpn --genkey --secret ta.key //生成ta.key防止遭到DDoS攻击
(4)创建openvpn启动快捷键
下载地址:http://download.csdn.net/detail/xiaoxinghehe/4842515
这两个文件我是从ubuntu里面的openvpn提取的
添加init-functions到库文件
/lib/openvpn/init-functions创建快捷方式(直接拷贝openvpn过去)
/etc/rc.d/init.d/openvpn注意加上执行权限,否则会permission deny
(5)开启NAT
sudo sysctl -w net.ipv4.ip_forward=1sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j SNAT \--to-source 11.22.33.44
第二阶段:
安装raidus,并配置mysql验证
(1)安装radius
yum install -y freeradius freeradius-mysql freeradius-utils
配置本地用户测试radius
vim /etc/raddb/users
在文件最后一行把前面的注释去掉
testuser Cleartext-Password := "testpassword"
然后执行
chkconfig radiusd onservice radiusd restart
radtest testuser testpassword localhost 1812 testing123如果看到
Sending Access-Request of id 86 to 127.0.0.1 port 1812User-Name = "testuser"User-Password = "testpassword"NAS-IP-Address = 127.0.0.1NAS-Port = 1812rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=86, length=20
则表示radius服务器配置成功。
(2)为radius配置mysql验证
如果没有安装mysql,先安装之
sudo yum install mysql mysql-server
cp /etc/raddb/clients.conf /etc/raddb/clients.conf.bak
修改mysql密码,初始密码为空
格式:mysqladmin -u用户名 -p旧密码 password 新密码
1、例1:给root加个密码123。首先在DOS下进入目录C:/mysql/bin,然后键入以下命令:
mysqladmin -uroot -password 123
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2、例2:再将root的密码改为456
mysqladmin -uroot -pab12 password 456
编辑client文件
vim /etc/raddb/clients.confclient 0.0.0.0 { ipaddr=127.0.0.1 secret = testing123 shortname = localhost}
编辑用户文件,注释掉测试用户
vim /etc/raddb/users#testuser Cleartext-Password := "testpassword"
备份并导入数据库
cp /etc/raddb/sql/mysql/admin.sql /etc/raddb/sql/mysql/admin.sql.bak
vim /etc/raddb/sql/mysql/admin.sqlCREATE USER 'radius'@'localhost';SET PASSWORD FOR 'radius'@'localhost' = PASSWORD('hehe123');GRANT All ON radius.* TO 'radius'@'localhost';
数据库为radius,密码为hehe123,默认密码原来是radpass我这里改为自己设置的hehe123,所以设置完成后还要修改sql.conf
vim /etc/raddb/sql.confchange the password 'radpass' to 'hehe123'
mysql -u root -pcreate database radius;exitmysql -u root -p radius < /etc/raddb/sql/mysql/admin.sqlmysql -u root -p radius < /etc/raddb/sql/mysql/schema.sqlmysql -u root -p radius < /etc/raddb/sql/mysql/nas.sqlmysql -u root -p radius < /etc/raddb/sql/mysql/ippool.sql
注意:后三个导入时可能会出错,在sql前面加上use radius;就好了。
vim /etc/raddb/radiusd.conf$INCLUDE sql.conf
修改sql.conf
vim /etc/raddb/sql.confserver = "localhost"port = 3306login = "radius"password = "hehe123"radius_db = "radius"readclients = yes
修改认证的方式
vim /etc/raddb/sites-enabled/default
authorize { preprocess chap mschap suffix eap pap sql}accounting { detail sql} session { radutmp sql}
插入测试数据
mysql -u root -puse radius;INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('angel', 'Password','123456');exit重启radius服务器
service radiusd restart测试radius服务器执行
radtest angel 123456 localhost 1812 testing123如果看到如下信息,表示radius服务器工作正常
Sending Access-Request of id 129 to 127.0.0.1 port 1812User-Name = "angel"User-Password = "hehe123"NAS-IP-Address = 127.0.0.1NAS-Port = 1812rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=129, length=20
如果看到以上信息,表示radius服务器可以用mysql验证了。
(3)安装radiusplugin
radiusplugin是radius的一个插件,可以让openvpn使用radius服务器来验证
yum install -y libgcrypt libgpg-error libgcrypt-develwget http://www.nongnu.org/radiusplugin/radiusplugin_v2.1.tar.gztar -zxvf radiusplugin_v2.1.tar.gzcd radiuspluginmakecp radiusplugin.so /etc/openvpncp radiusplugin.cnf /etc/openvpn
编辑radiusplugin.cnf
vim /etc/openvpn/radiusplugin.cnf
server{# The UDP port for radius accounting.acctport=1813# The UDP port for radius authentication.authport=1812# The name or ip address of the radius server.name=127.0.0.1# How many times should the plugin send the if there is no response?retry=1# How long should the plugin wait for a response?wait=1# The shared secret.sharedsecret=testing123
第三阶段:
编写openvpn服务端配置文件
port 53 #连接端口proto udp #连接方式dev tunca /etc/openvpn/keys/ca.crtcert /etc/openvpn/keys/server.crtkey /etc/openvpn/keys/server.key #This file should be kept secretdh /etc/openvpn/keys/dh1024.pemtls-auth ta.key 0server 10.8.0.0 255.255.255.0 #ip分配,不能跟本地冲突ifconfig-pool-persist ipp.txtpush "redirect-gateway"push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4"duplicate-cn #如果你要多人共用一个证书的话,请开启本项。keepalive 10 120 #连接测试,意思是10秒ping一次,120秒没有返回就断开重连comp-lzo #开启压缩传输persist-keypersist-tun#这里是指定radiusplugin.so这个插件plugin /etc/openvpn/radiusplugin.so /etc/openvpn/radiusplugin.cnfclient-cert-not-requiredusername-as-common-name#log日志存放目录log /var/log/openvpn.logstatus /var/log/openvpn-status.logverb 3
之后重启OpenVPN服务端
service openvpn restart
将OpenVPN服务加到开机启动
vim /etc/rc.d/rc.local末尾添加一句sudo service openvpn start
附:客户端配置文件
clientdev tunproto udpremote www.yourserver.com 53resolv-retry infinitenobindpersist-keypersist-tunca ca.crt;cert client.crt;key client.keytls-auth ta.key 1auth-user-passns-cert-type servercomp-lzoverb 3
查看占用端口
##根据端口查看进程信息
lsof -i:53
kill 进程号
- CentOS6.2搭建使用Radius认证的OpenVPN
- Ubuntu搭建Radius认证的OpenVPN
- centos6.8系统radius认证服务器的搭建流程
- Centos6.2 Openvpn,Routeros Radius Mysql daloRADIUS
- 使用WinRadius服务器软件 搭建 radius 认证
- centOS6.5搭建openvpn
- windows下,搭建使用Radius做身份认证及记账的VPN服务器
- CentOS6下搭建OpenVPN服务器
- CentOS6下搭建OpenVPN服务器
- CentOS6下搭建OpenVPN服务器
- CentOS 6.6 x64搭建基于用户密码认证的openvpn
- Etherpad-Lite 使用 Radius 认证
- 使用OpenVPN搭建VPN
- CentOS6.6下搭建OpenVPN服务器
- CentOS6.6下搭建OpenVPN服务器
- CentOS6.6下搭建OpenVPN服务器
- CentOS6.6下搭建OpenVPN服务器
- Centos搭建openvpn+mysql数据库认证
- 在vb里谁知道shift,ctrl和alt,F1怎么表示?
- 使用Tomcat7自带的数据库连接池
- 内存映射
- 海量存储之一
- jbpm5 介绍
- CentOS6.2搭建使用Radius认证的OpenVPN
- 计算机专业就业分析
- Wireshark学习总结
- 多线程共享MySQL连接时,使用事务的危险!
- 嵌入式Linux系统下I2C设备驱动程序的开发
- 最长公共子串
- Servlet过滤器
- VB中怎么模拟键盘按Shift+1键???
- 安装“浪潮睿捷服务器”操作系统的收获