基于Linux校园安防远程监管平台VPN系统的架构实践
2015-12-28谢芳
谢 芳
(福建工程学院,福州 350108)
1 问题描述与分析
由于管理上的需求,学校管理人员经常需要调看安防中心现场监控(如管理多媒体教室、公共计算机房等)。笔者所在的高校目前有好几个校区,安防中心设置在其中一个校区,如果另外校区的管理人员需要调看现场监控,直接到安防中心势必造成工作不便以及效率低下。如果直接通过校园网调看现场监控,一方面学生使用网络的高峰期,网络负荷十分重,在网络带宽不保证的情况下,远程视频监控会产生监控图像回传缓慢、控制失灵;另一方面对校园安防专网的安全也会带来隐患。为了方便外网用户可以调用校园网内的监控录像,很有必要架设一个VPN远程拨入系统。本文研究在校园网与安防专网间架设一个基于LINUX的虚拟专用网(VPN)系统。
2 校园安防中心VPN方案选择
(1)VPN方案选择:目前大多数客户端为Windows用户,Windows自带PPTP的客户端,根据全面VPN方案的特点,因此VPN选择PPTP作为校园安防中心的使用协议。
(2)服务器操作系统选择:由于资金有限,因此选择开源的Linux作为服务器操作系统,该操作系统稳定性好,可以满足服务器高稳定的要求,而且是开源的免费产品。
(3)其他软件产品:在Linux有很多软件如freeradius和 mysql都是开源开发的成熟产品,因此VPN服务器将采用Linux+PPTP+MPPE+MPPC+Radius认证+Mysql数据库的方式搭建。
3 VPN实现的技术
3.1 PPTP 协议
PPTP(点到点隧道)协议是由PPTP论坛开发的点到点的安全隧道协议,是PPP协议的一种扩展,提供了在IP网上建立多协议的安全VPN的通信方式,远端用户能够通过任何支持PPTP的ISP访问企业的专用网络[1]。PPTP提供PPTP客户机和PPTP服务器之间的保密通信。PPTP的最大优势是Microsoft公司的支持。它支持流量控制,可保证客户机与服务器间不拥塞,改善通信性能,最大限度地减少包丢失和重发现象。
3.2 MPPE 协议
MPPE(Microsoft Point-To-Point Encryption,微软点对点加密)协议是由Microsoft设计的,它规定了如何在数据链路层对通信机密性保护的机制[2]。它通过对PPP链接中PPP分组的加密以及PPP封装处理,实现数据链路层的机密性保护。
3.3 MPPC 协议
MPPC(Microsoft Point-To-Point Compression,微软点对点压缩)协议可以把任何PPP包表示为压缩形式[3]。MPPC算法设计为通过优化处理器和带宽的利用,来支持大量并发连接。MPPC算法也用来优化典型的特定PPP,提高工作效率。
3.4 RADIUS 协议
RADIUS(Remote Authentication Dial In User Service,远程用户拨号认证服务)协议是一种C/S结构的协议,它的客户端最初就是NAS(Net Access Server)服务器,现在任何运行RADIUS客户端软件的计算机都可以成为RADIUS的客户端[4]。RADIUS协议认证机制灵活,可以采用PAP、CHAP或者Unix登录认证等多种方式。RADIUS是一种可扩展的协议,它进行的全部工作都是基于Attribute-Length-Value的向量进行的。
3.5 MySQL
MySQL是一个关系型数据库管理系统,它是开源的软件产品,并且为多种编程语言提供API,支持多线程,可充分利用CPU资源,高效的SQL查询算法,提供TCP/IP、ODBC、JDBC等多种数据库连接途径。这里配合radius使用。
4 技术架构与VPN系统实现
4.1 网络拓扑结构
VPN网络拓扑结构见图1。
图1 VPN网络拓扑结构图
在该结构中,VPN服务器架设在校园安防中心的出口上,配置2个网卡,一个接入校园网,另一个接入校园安防中心。客户端通过公共网络向VPN服务器发起隧道建立请求,VPN服务器在接到请求后确认客户端身份,确认后给客户机分配一个校园网的私有地址,客户机在得到地址后通过VPN服务器的路由转发就可以用校园网内部地址的身份访问安防系统。
4.2 VPN服务器的安装配置
硬件配置:CPU配 Inter PIII,内存 1G,硬盘80G,配置双网卡。
值得一提的是,在这一阶段,中国经历了起征点从800元到1600元,再到2000元的调整,而且补贴也多数惠及农村人口,城镇人口的补贴即少。“这说明,我们的减税和补贴政策,并没有起到缩小收入差距的作用,甚至有某些措施可能起了拉大这一差距的反向作用。”然而,这一现象似乎并没有引起当局重视,2011年,中国再次上调起征点到3500元。
操作系统:Red Hat Enterprise Linux Advanced Server 4.6-i386(32位),防火墙使用Linux自带防火墙。
(1)编译Linux内核。默认的内核版本为kernel 2.6.9-42EL,该内核不支持 mppe 加密和 mppc 压缩,重新编译Linux内核,以支持MPPE/MPPC。所以需要给内核打补丁。采用下列软件:linux-2.6.13.tar.gz、linux-2.6.13-mppe-mppc-1.3.patch.gz。这里以模块方式来安装补丁的,所以每次系统启动时都需要加载模块才行,因此要在/etc/rc.local里面写入一行:/sbin/modprobe ppp_mppe_mppcvi/etc/rc.local,修改/boot/grub/grub.conf将新内核改为默认启动项:改 default=1-->default=0,重起系统进入升级后的系统。检验内核是否支持MPPE/MPPE(显示以下内容为则可以支持 mppe/mppc)。
[root@niulinux ~]#dmesg|grep MPPE
MPPE/MPPC encryption/compression module registered
(2)安装PPTP套件。安装下列软件:ppp-2.4.3.tar.gz(ppp 支持软件)、ppp-2.4.3-mppemppc-1.1.patch.gz(ppp 支持 mppe、mppc 的补丁)、pptpd-1.3.4.tar.gz(基于 pptp 的 vpn 服务器软件poptop)。安装后检验内核和PPP支持MPPE/MPPE,修改配置文件 pptpd.conf和 options.pptpd,对这2个文件进行配置。
(3)安装 freeradius。采用软件:freeradius-1.1.7.tar.gz(配合 pptp使用的验证服务器),安装freeradius用指定安装目录的方法安装。配置pppd支其支持radius。所有的freeradius配置文件在usr/local/freeradius-1.1.7/etc/raddb 目录,进入该目录配置文件 clients.conf、users。
(4)配置 MySQL。由于使用默认安装的MySQL,所以就不用再安装MySQL了,库结构在freeradius源码目录下的/usr/local/freeradius-1.1.7/share/doc/freeradius/examples/mysql.sqll 建 立 一 个radius的数据库,配置/usr/local/freeradius-1.1.7/etc/raddb/sql.conf,使 radius 可以访问 mysql,配 置/usr/local/freeradius-1.1.7/etc/raddb/radiusd.conf使其支持MySQL认证。
5 基于LINUX的VPN软件访问控制规则的设计
5.1 VPN软件访问控制设计
在实际应用中,为保证VPN服务器和客户机的安全,对VPN服务器的端口和协议做适当限制,关闭不用的端口。并启用NAT转换,使原来可以通过网关上网,但连了VPN之后就不能上网的客户机能正常上网。
配置iptables文件,包括内容如下:
echo"1">/proc/sys/net/ipv4/ip_forward(打开路由转发功能)
执行这个 iptables文件,客户机就可以通过VPN进行访问,并能有效控制外网的攻击和入侵。可以将这条命令放到文件/etc/rc.d/rc.local里面,以实现每次开机时自动运行该命令。
5.2 配置/etc/rc.d/rc.local文件
将相应的服务放在该文件中,以实现每次开机时自动运行该命令。如:
到此为止一台基于Linux的VPN服务就配置完成了。
6 VPN客户端的连接
由于使用PPP协议配置,Windows XP等系统已自带VPN客户端,在windows下建立客户步骤较简单,配置 VPN连接属性“安全”选项时,应与 options.pptpd配置文件一致。
双击客户端桌面右下角的网络连接图标,可查看客户端的VPN状态信息(见图2)。
图2 连接成功后客户端信息
查看客户端的IP信息,可以看出多了个“PPP adapter test:”连接,其IP是由VPN服务器分配的。客户端IP测试如下:
在VPN服务器端查看VPN连接成功后的服务器的IP信息,从图中可看出多了PPP0连接,说明服务器把 IP地址192.168.0.100分配给了客户端。连接成功后服务器端信息如下:
客户端测试如下:
运行ping命令查看外网客户机能否连通内网安防中心的计算机,外网客户机已经正确的拨入VPN服务器,外网客户端拨入内网后,可以ping通服务器内网网卡,说明可以通过连接VPN进入学校安防中心。
外网客户机正确地拨入VPN服务器后,在客户端输入学校安防中心IP地址:192.168.1.10可登录学校安防中心网络视频监控系统,输入网络视频监控系统的用户名和密码,可查看网络视频监控,通过网络视频监控系统云台控制等操作实现对目的地实现实时监控的目的。
7 结语
通过VPN技术可在客户与服务器之间建立一条安全通道,保证信息的安全传输。实践结果表明通过在校园网与安防专网间架设一个基于LINUX的虚拟专用网(VPN)系统有效地解决了校园安防监控系统多校区、远程访问、远程管理等问题,较好地实现了校内相关管理人员可以在任何位置对目的地实现实时监管的目的。
[1]何宝宏,田辉.IP虚拟专用网技术:第2版[M].北京:人民邮电出版社,2008:7-10.
[2]金汉均,仲红,汪双顶.VPN虚拟专用网安全实践教程[M].北京:清华大学出版社,2010:1-5.
[3]汪海航,谭成翔,孙为清,等.VPN技术的研究与应用现状及发展趋势[J].计算机工程与应用,2001(23):14-16.
[4]张小银.基于 Linux环境下 VPN系统的研究与实现[J].微计算机信息,2011,27(1):180-181.