CentOS安装配置OpenVPN并结合freeradius验证
分类:运维技术日期:2012-12-02 - 10:32:04作者:老谢
配置OpenVPN服务器端
wget http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm rpm -Uvh epel-release-5-4.noarch.rpm yum install openvpn cp -R /usr/share/openvpn/easy-rsa /etc/openvpn/ cd /etc/openvpn/easy-rsa/2.0 vim vars |
根据自己实际情况修改下面的信息:
export KEY_COUNTRY=”CN” export KEY_PROVINCE=”TJ” export KEY_CITY=”TJ” export KEY_ORG=”liukangxu.info” export KEY_EMAIL=”admin@liukangxu.info” |
source ./vars ./clean-all #全部回车 ./build-ca server #前面全回车,最后两步y ./build-key-server server #前面全回车,最后两步y ./build-key vpn1 #vpn1是客户端名称 ./build-dh #生成Diffie Hellman参数 |
编辑/etc/openvpn/server.conf放入下面的内容:
port 443 proto tcp dev tun ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt cert /etc/openvpn/easy-rsa/2.0/keys/server.crt key /etc/openvpn/easy-rsa/2.0/keys/server.key dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem server 192.168.20.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway" push "dhcp-option DNS 8.8.8.8" keepalive 10 120 comp-lzo persist-key persist-tun |
启用ip包转发
sed -i "s/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g" /etc/sysctl.conf sysctl -p |
然后配置iptables规则,很重要,不然会导致连接后无法访问外网
iptables -t nat -A POSTROUTING -s 192.168.20.0/24 -j SNAT –to-source 你的服务器IP地址 /etc/init.d/iptables save /etc/init.d/iptables restart |
最后启动openvpn以及加入开机启动
service openvpn start chkconfig openvpn on |
配置OpenVPN客户端
下载OpenVPN的windows客户端:http://swupdate.openvpn.org/community/releases/openvpn-2.2.1-install.exe
下载安装完成以后,把OpenVPN服务器/etc/openvpn/easy-rsa/2.0/keys目录下的vpn1.crt、vpn1.csr、vpn1.key、ca.crt、ca.key五个文件复制到OpenVPN客户端安装目录下的config目录下
然后再config目录下新建vpn1.ovpn文件,编辑内容如下:
client dev tun proto tcp remote OpenVPN服务器ip 443 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert vpn1.crt key vpn1.key ns-cert-type server comp-lzo verb 3 |
至此全部操作完成,打开OpenVPN客户端连接试试看吧!
以上内容主要参考以下文章:
OpenVZ VPS 下 CentOS 安装 OpenVPN 详细教程
CentOS 安装和配置OpenVPN感谢以上所有文章的原作者!
结合freeradius验证
上面全部操作没有问题以后,请再继续下面的步骤:
上面是使用个人证书验证,由于要结合freeradius,所以要修改使用用户名、密码验证,请保证/etc/openvpn/server.conf配置文件如下:
port 443 proto tcp dev tun ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt cert /etc/openvpn/easy-rsa/2.0/keys/server.crt key /etc/openvpn/easy-rsa/2.0/keys/server.key dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem server 192.168.20.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway" push "dhcp-option DNS 8.8.8.8" keepalive 10 120 comp-lzo persist-key persist-tun status 1194.log verb 3 client-cert-not-required username-as-common-name |
安装必要的包
yum install libgcrypt libgcrypt-devel gcc-c++ |
安装radius的插件
wget http://www.nongnu.org/radiusplugin/radiusplugin_v2.1a_beta1.tar.gz tar xvfz radiusplugin_v2.1a_beta1.tar.gz cd radiusplugin_v2.1a_beta1/ make cp radiusplugin.so /etc/openvpn/ cp radiusplugin.cnf /etc/openvpn/ |
编辑/etc/openvpn/radiusplugin.cnf,保证server部分信息如下,其他部分不动:
erver { # 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=YOUR RADIUS SERVER IP # 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=YOUR RADIUS SERVER SECRET } |
编辑/etc/openvpn/server.conf在最下面加入:
plugin /etc/openvpn/radiusplugin.so /etc/openvpn/radiusplugin.cnf service openvpn restart |
至此,openvpn服务器端配置完成,下面是客户端,配置文件如下即可:
client dev tun proto tcp remote OpenVPN-Server-IP PORT resolv-retry infinite nobind tun-mtu 1500 tun-mtu-extra 32 mssfix 1450 persist-key persist-tun ca ca.crt auth-user-pass comp-lzo verb 3 |
很好的教程!
正好有限制VPS,试验下!
我之前折腾过 不过没折腾好!
现在需要利用freeRADIUS搭建一个AAA服务器,不知道users之类的文件怎么配置……
SIGUSR1[soft,connection-reset] received, client-instance restarting
TCP/UDP: Closing socket
报错了,不用radius验证就能过
@不语 需要在/etc/openvpn/server.conf里面添加配置使radius插件生效的
已经添加 就是添加了才验证不过 不添加直接用证书即可通过
@不语 那就说明radius验证是失败的,可以用radius的debug模式,判断下是哪边的问题
radius 这块的配置有链接吗
@ch.gvim@gmail.com 我的博客写过,也可以网上搜,这方面的教程很多
昨天我弄了一天,都没有弄好!气死我了!