利用Webmin架设OpenVPN服务器
企业规模随着发展,越来越多人员需要在出差与不在公司的时候进行远程办公,而传统VPN设备以其价格与平台依赖,无法很好的满足包括WindowsLinuxMAC OSX甚至Andriod等最新智能手机系统的VPN使用需求。当前流行的SSL VPN中,免费、开源并广泛使用的一个VPN项目便是OpenVPN,本文将介绍如何使用Webmin架设一个基本的VPN服务器,用于中小企业远程远程接入使用(Remote Access)。
OpenVPN是一个用于创建虚拟专用网络加密通道的软件包,最早由James Yonan编写。OpenVPN允许参与建立VPN的单点使用共享金钥,电子证书,或者用户名/密码来进行身份验证。它大量使用了OpenSSL加密库中的SSLv3/TLSv1协议函式库。目前OpenVPN能在SolarisLinuxOpenBSDFreeBSDNetBSDMac OS XWindows 2000XPVista上运行,并包含了许多安全性的功能。它并不是一个基于WebVPN软件,也不与IPsec及其他VPN软件包兼容。
OpenVPN使用OpenSSL库加密数据与控制信息:它使用了OpenSSL的加密以及验证功能,意味着,它能够使用任何OpenSSL支持的算法。它提供了可选的数据包HMAC功能以提高连接
的安全性。此外,OpenSSL的硬件加速也能提高它的性能。
OpenVPN提供了多种身份验证方式,用以确认参与连接双方的身份,包括:预享私钥,第三方证书以及用户名/密码组合。预享密钥最为简单,但同时它只能用于建立点对点的VPN;基于PKI的第三方证书提供了最完善的功能,但是需要额外的精力去维护一个PKI证书体系。OpenVPN2.0后引入了用户名/口令组合的身份验证方式,它可以省略客户端证书,但是仍有一份服务器证书需要被用作加密。
OpenVPN所有的通信都基于一个单一的IP端口,默认且推荐使用UDP协议通讯,同时TCP也被支持。OpenVPN连接能通过大多数的代理服务器,并且能够在NAT的环境中很好地工作。服务端具有向客户端"推送"某些网络配置信息的功能,这些信息包括:IP地址、路由设置等。OpenVPN提供了两种虚拟网络接口:通用Tun/Tap驱动,通过它们,可以建立三层IP隧道,或者虚拟二层以太网,后者可以传送任何类型的二层以太网络数据。传送的数据可通过LZO算法压缩。IANAInternet Assigned Numbers Authority)指定给OpenVPN的官方端口为1194OpenVPN 2.0以后版本每个进程可以同时管理数个并发的隧道。
OpenVPN使用通用网络协议(TCPUDP)的特点使它成为IPsec等协议的理想替代,尤其
是在ISPInternet service provider)过滤某些特定VPN协议的情况下。在选择协议时候,需要注意2个加密隧道之间的网络状况,如有高延迟或者丢包较多的情况下,请选择TCP协议作为底层协议,UDP协议由于存在无连接和重传机制,导致要隧道上层的协议进行重传,效率非常低下。
OpenVPN与生俱来便具备了许多安全特性:它在用户空间运行,无须对内核及网络协议栈作修改;初始完毕后以chroot方式运行,放弃root权限;使用mlockall以防止敏感数据交换到磁盘。OpenVPN通过PKCS#11支持硬件加密标识,如智能卡。
Webmin是个基于webunixlinux管理台,可以通过其丰富组件来实现对系统的可视化管理。在VPN环境的架设中,我们使用到OpenVPN组件,实现快捷准确的VPN架设及管理。
网络结构
示意图
LAN
局域网一共分为三个网段
10.2.100.*/24 VPN服务器所在网段
10.2.200.*/24 为核心交换机与防火墙网关连接网段
10.2.300.*/24 为服务器所在网段
WAN
假设218.139.*.*为联通线路,59.57.*.*为电信线路
VPN
10.2.400.*/24 VPN加密后分配的IP
系统设置
硬件环境
Server
VMware Esxi 4 中虚拟机
OS
Centos 5.4 x86
IP
10.2.100.100
MEM
256M
Disk Space
8G
1.安装系统
通过Vsphere client分配虚拟机资源并安装系统,系统安装方法就不在此详细说明了。待系统安装后通过命令升级补丁并关闭SELinux,待更新完毕后重启服务器:
root@vpnbox#yum update
root@vpnbox#vim /etc/sysconfig/selinux 确保SELIUNUX=disabled
root@vpnbox#reboot
2.安装EPEL
由于OpenVPN默认没有包含在Centos的软件仓库中,需要安装EPEL仓库扩展,才可以通过yum工具安装OpenVPN,具体方式如下:
root@vpnbox#wget dhat/pub/epel/5/arch.rpm
root@vpnbox#rpm -arch.rpm
root@vpnbox#yum update
root@vpnbox#yum install OpenVPN
root@vpnbox#chkconfig OpenVPN on
3.安装Webmin核心软件包
通过Webmin的下载最新的软件包保本,然后通过第三方库,搜索关键字“OpenVP
N”,可以获得一个OpenVPN+CA的扩展组件,点击安装确认。安装完成后,可以看到如下图示:
4.清空防火墙规则并开启IP转发
通过Webmin,点击Networking->Linux Firewall,删除所有防火墙配置,记得点击Apply Configuration应用配置。此点仅适用于测试环境,实际生产用请根据自身应用需求调整VPN的防火墙权限。
访问控制iptables策略范例:
#Access policy for client_username
-A FORWARD -i tun0 -p udp -m udp -s 10.2.400.41 -d dns_server_ip --dport 53 -j ACCEPT
-A FORWARD -i tun0 -p tcp -m tcp -s 10.2.400.41 -d www_server_ip --dport 80 -j ACCEPT
点击Networking->Network Configuration->Routing and Gateways,将“Act as router”选项至为Yes,点击Save保存设置。
重启服务器
5.配置网关端口映射与内部静态路由
将网关上的固定IP端口映射至OpenVPN服务器的端口,具体映射设置方法根据不同型号的网关而定,就不在此说明了,关键点为将两路的IP端口都映射至LANVPNIP地址,以10.2.100.100为例,协议与端口分别为UDP1194
配置核心交路由条目,将发往10.2.400.0/24网段的包转发给10.2.100.100,注意上文的IP分配
至此,前期准备已经完成,接着便开始进行OpenVPN的详细配置。
架设OPENVPN
1. 建立CA
企业使用,需要建立一个证书颁发机构,用于生成VPN服务器与客户端密钥。建立CA的方法很简单:
点击Webmin->Servers->OpenVPN+CA
填写内容:
CA名称
自定义
openssl配置文件
默认不变
CA密钥有效期
自定义
国家
自定义
自定义
自定义
组织
自定义
邮箱
自定义
示意图
点击root的初始密码Save进行保存,系统会自动生成CA密钥。
注意:
Key size如果采用2048,生成时间会比较长,可以改成1024,提高速度
CA配置文件生成后,在Certification Authority List中可以查看,不要随意删除CA密钥配置

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。