1引言
IPv6作为下一代互联网关键技术,是网络信息技术发展和互联网演化升级的必然趋势。2018年9月教育部发布《推进IPv6规模部署行动计划》,主要目标是要求到2020年底,教育系统的各类网络、门户网站和重要应用系统完成升级改造,支持IPv6访问。为了降低各类网站及业务应用向IPv6升级转换的难度,实现现有Web应用的IPv6访问,本文提出基于Nginx 的反向代理实现IPv4网站应用的转换及网站的安全防御。2现有网站应用部署现状
现阶段由于网站规划、应用开发均基于IPv4网络,将业务直接由IPv4部署到IPv6中,可能会出现网站、应用无法访问或出现错误的情况。IPv4到IPv6环境的转换,需要经历网络改造、软硬件更新以及对业务系统内核的重构、测试及重新编译上线。如果想在短时间内基于IPv6对网站、应用系统进行重新开发部署,对于普通内容类网站较为容易实现,但对于一些业务应用系统,如财务、教务等系统则需要较长的时间。
目前,正处于IPv4向IPv6过渡阶段,网站及业务应用系统需同时满足IPv4/IPv6用户访问IPv4/IPv6网站应用服务的需求,这就需要从应用服务端实现IPv4和IPv6用户的访问。现在已经实现IPv6部署的网站应用,其服务器通常是基于原生IPv4/IPv6双栈提供Web服务,它可避免因转换导致的复杂性。但是,基于IPv6的应用安全防御设备不够成熟,这就增加了IPv6环境下的网站应用服务的安全风险。
3反向代理技术
反向代理是指某台服务器用来接受网络上用户的连接请求,然后将请求转发给网络上对应的应用服务,并将从应用服务上得到的结果返回给网络上请求的用户客户端,此时这台服务器对外表现即为一个反向代理服务器[1]。用户通过代理服务器访问网站应用时,并不需要更改任何配置,正常访问网站即可。常见的反向代理工具有HAProxy、Fikker、Squid、Nginx 等。
本文主要以Nginx为反向代理工具进行研究,实现在不更改原有网站应用系统的前提下,网站应用能够在IPv6下的访问。
4反向代理配置
4.1反向代理服务器的网络配置
反向代理服务器需要支持用户能够同时访问IPv4地址与
IPv6环境下反向代理IPv4网站及安全防护的研究与实现
Research and Implementation of the
Reverse Proxy IPv4Website and Security Protection in IPv6Environment
吴金堂,耿方方
(河南中医药大学信息化办公室,郑州450046)
WU Jin-tang,GENG Fang-fang
(InformationOfficeofHenan UniversityofChineseMedicine,Zhengzhou450046,China)
【摘要】如何把基于IPv4的Web应用切换到IPv6环境下,实现IPv4与IPv6的Web应用共享互通,并实现Web应用的安全防
御,是当前网站管理人员急需解决的问题。论文提出一种基于Nginx的双栈反向代理技术,总结出Ipv4应用向IPv6转换的方法以及
网站安全防护的实施方案。该方案为未来IPv6在Web应用方面的推广提供了部署依据。
【Abstract】Howto switch the Web application based on the IPv4to the IPv6environment,realize the sharing and interworking between the Web
application of IPv4and IPv6,and realize the security defense of the Web application,is the urgent problem that the website administrator needs to
solve at present.This paper presents a dual-stack reverse proxytechnologybased on Nginx,summarizes the method ofconverting Ipv4application
to IPv6and the implementation scheme of website security protection.This scheme provides the basis for the future promotion of IPv6in Web
application.
【关键词】IPv6反向代理;Web应用;安全防护
【Keywords】IPv6reverseproxy;Web application;securityprotection
【中图分类号】TP393.04【文献标志码】A【文章编号】1673-1069(2019)01-0108-04
【作者简介】吴金堂(1982-),男,河南社旗人,助理实验师,从事计
算机网络、网络信息安全研究。
108
. All Rights Reserved.
IPv6地址,因此,在反向代理服务器上需配置IPv4地址与IPv6地址。IPv4地址除了为用户提供IPv4的服务外,主要是让代理服务器将请求的IPv4应用系统转换为IPv6服务。反向代理服务可以同时为多个应用系统提供代理服务,因此,可以在代理服务器上配置多个IPv4或IPv6地址,方便不同业务使用不同的IP地址进行访问。
反向代理服务器只需部署在用户可以访问到的网络下即可,不需要改造网络结构。如果内部网络暂时没有IPv6网络,可以把代理服务器部署在其他支持IPv4与IPv6的网络机房,从而实现IPv4与IPv6的同时访问。
4.2反向代理Web应用域名解析配置
Web应用支持IPv6网络访问时,需要网站具有相对应的DNS解析,即AAAA记录。当网站支持IPv4与IPv6同时访问时,需要有对应的A记录和AAAA记录。域名的解析地址为反向代理服务器上配置的IPv4与IPv6地址。当IPv4用户访问域名时,用户自动解析并访问反向代理服务器的IPv4地址;当IPv6用户访问域名时,用户自动解析并访问反向代理服务器的IPv6地址。
4.3反向代理文件配置
基于Nginx反向代理技术的服务器配置较为简单灵活,可以同时代理多个后端Web应用。例如,反向代
理后端IPv4网站应用,在代理服务器中配置对应的IPv4请求源地址,并配置监听对应Web应用的IPv6地址端口即可。Nginx反向代理配置如下:
upstream ipv4_www_web{
server211.66.66.66:80;
keepalive8;
#请求原www网站域名IPv4地址
}
upstream ipv4_my_web{
server211.88.88.88:80;
#请求原my网站域名IPv4地址keepalive8;
}
server{
listen80;
listen[::]:80;
#监听本地所有IPv6地址的80端口
server_name www.web;
#指定ipv4下的服务域名
access_log/home/logs/ipv6_www_web_access.log access; location=/{
proxy_set_header Host$host;
proxy_set_header X-Real-IP$remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass ipv4_web;
}
}
server{
listen80;
listen[2001:250:400:100::80]:80;
#监听本地指定IPv6地址的80端口
server_;
#指定ipv6下的服务域名
access_log/home/logs/ipv6_my_web_com_access.log access;
location=/{
proxy_set_header Host$host;
proxy_set_header X-Real-IP$remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass ipv4_my_web;
}
}
以上示例配置中,同时配置了两个反向代理域名,分别对应后端IPv4应用地址,当IPv6用户访问www域名时,通过DNS解析出域名IPv6地址为反向代理服务器地址,用户请求到反向代理服务器,服务器会根据用户请求的域名自动转发请求到其对应的211.66.66.66(www网站)服务器,并将请求结果返回给用户。
4.4反向代理注意事项
web应用防护系统针对一些特殊应用,使用非80端口,如8080等,只需要在反向代理服务中配置对应回源端口,并在服务器中监听相应端口即可实现端口转发功能。当某业务需要使用HTTPS安全连接,且源Web应用不支持修改启用HTTPS时,同样可以通过反向代理服务器把对应服务转换为HTTPS安全连接,在反向代理服务器中配置安全证书,并监听443端口,用户可以直接访问HTTPS的安全连接,回源请求还是Web应用80端口,不需要源服务做任何改变。
在使用反向代理服务器转换IPv6时需要注意,代理内容中有跨协议资源时,非对应协议用户会出现无法访问的情况。例如,只有IPv6网络的用户访问转换后的网站时,网站内容包含有链接为IPv4的资源,此时IPv6
访问用户就不能加载相应
109
. All Rights Reserved.
资源,这就需要在做转换时一定要进行严格的访问测试,保证数据调用协议一致性。我们可以利用Nginx中的subs_filter内容过滤模块,把单协议资源转换为双协议资源或替换为本地资源[2]。
当用户访问代理服务时,代理服务器就必须开启两个连接,一个为访问用户的连接,一个为对后端Web应用的连接,因此,对于连接请求数量非常大的时候,代理服务器的负载也就非常高。在实际应用中,如果代理业务过多,可以部署多台反向代理服务器,配合DNS服务,把需要做代理转换的服务域名同时
解析到多台代理服务器IP,实现反向代理前端负载均衡,分散多个业务的请求,这个过程其实已经实现了内容分发网络功能(CDN)。我们可以把代理服务器部署在不同运营商的线路中,并结合反向代理的内容缓存功能,配合智能DNS 服务,以实现网站业务的IPv6转换、内容分发与快速访问。4.5IPv6反向代理环境中的网站安全防御
现阶段针对IPv6业务应用层的安全设备相对不完善,业务系统接入IPv6后的安全风险增加,而通过反向代理服务后,所有的用户请求都必须通过代理服务器访问后端服务,因此,可在代理服务器上设置相关安全配置,过滤某些不安全信息,拦截恶意请求。
在搭建IPv6反向代理服务器时,可以使用OpenResty做为反向代理服务工具,OpenResty是一个基于Nginx与Lua的高性能Web平台,可以方便地搭建能够处理超高并发、扩展性极高的动态Web应用、Web服务和动态网关。
网站应用层的安全防御主要依靠Web应用防火墙(Web Application Firewall,WAF)来检测拦截,通过开源框架OpenResty和相应Lua程序语言可以轻松构建Web应用防火
墙,实现通过对HTTP(S)请求进行检测,识别并阻断SQL注入、跨站脚本攻击(Cross Site Scripting xss)、网页木马上传、命令/代码注入、文件包含、敏感文件访问、第三方应用漏洞攻击、CC(挑战黑洞)攻击、恶意爬虫扫描、跨站请求伪造等攻击,保护后端Web应用安全稳定。
相对于在原有IPv4/IPv6网站应用系统中部署应用防御,在中间代理转换层做应用安全防御更简单便捷,不用对原有系统做任何改变,也不会对原有业务系统产生影响。各业务系统的访问日志格式不统一,收集整理分析难度大,但通过中间的反向代理服务后,可以统一规范访问日志格式,做集中式日志管理系统,以便对日志进行分析,例如,结合ELK (Elasticsearch、Logstash、Kibana)日志系统可以对日志统一标准化收集传输、日志查询分析并到最后实现日志的实时可视化。5反向代理案例
结合以上的理论知识,在实际环境中构建了一台反向代理服务器,具体配置信息如下。
5.1反向代理服务器
在VM虚拟化中开设一台服务器,4核,8G内存。安装Centos6操作系统,使用OpenResty作为反向代理服务工具,使用Iptables和Ip6tables防火墙软件。配置千兆网卡,设置IPv4与IPv6双栈网络。
OpenResty服务配置成反向代理模式,在配置中监听指定业务域名并设置对应业务回源请求地址,结合基于Lua语言的开源OpenWAF模块,实现Web应用防火墙功能。
服务器配置syslog-ng日志收集传输工具,Nginx和OpenWAF模块在产生日志的同时对日志进行远程传输。
5.2日志收集整理服务器
VM中开设虚拟服务器,配置8核,16G内存。安装Centos6操作系统,配置ELK日志服务,通过收集反向代理服务器传输过来的日志,进行分类整理分析,并最终实现日志实时可视化。
5.3原有后端IPv4网站应用
本实例未对原有Web应用做任何改动,实际应用中,可以把后端业务放入内部网络,并设置只允许反向代理服务器的请求通过,以增加原应用服务的安全性。
该系统部署在IPv4/IPv6双栈环境下,反向代理并转换原IPv4网络下的学校门户网站为IPv6服务,已经正常连续运行一个月,通过日志分析系统可以看出IPv6用户已经增长很快,每天有1千余用户通过IPv6网络访问网站,访客来源于全国不同地方,如图1所示。另外,根据Web防火墙日志可以看出,IPv6
下的攻击类型多种多样,恶意请求数量也在递增,如图2和图3所示。
图1访问用户
110
. All Rights Reserved.
以通过聘请企业的内部审计职员,定期为教师和学生进行内部审计实务方面的讲解,这样既可以拓宽学生的视野,也可以弥补教师在实践经验方面的欠缺[4]。另一方面,作为内部审计学科的授课教师,也应当时时刻刻注重提高个人能力,始终做到站在专业发展的最前沿,不断学习内部审计研究新成果和新应用。
5.4改良内部审计课程的成绩评价方式
现阶段,高校内部审计课程的成绩评定方式与其他科目没有本质上的区别,仍然是采用期末考试分数占主要部分,课堂表现占次要部分的方式。然而,在具体的教学过程中,课堂表现的评价方式由于极大的主观性,可能出现不够严谨甚至流于形式的现象,带来学生只关心期末考试“考什么”,而不是在课堂上“学什么”的后果。由于内部审计课程的综合性和复杂性,传统的以考察理论掌握程度和简单的案例分析的期末考试形式往往不能真正检验学生对内部审计学和内部审计职业的理解程度[5]。因此,可以将课
堂案例的讨论情况,或是课下案例作业分析成果的质量作为判断平时成绩的主要依据,同时科学调整总成绩中考试成绩与平时成绩所占的百分比。这样一来,既可以通过成绩激励的方式,调动学生参与课堂案例讨论的积极性,使内部审计课程的教学真正做到以学生为主导,从而达到教学的目标,又可以为学生平时成绩的评价增加更加具体的标准,使学生的成绩更能代表对内部审计学科的掌握程度。5.5加强学校之间教师的沟通与交流
个人的力量永远是有限的,要进行科学的教学改革,更不能仅仅依靠几名教师的力量,应当借助高校之间的学术交流和讨论,给教师提供一个能够交换授课心得的平台。如此一来,各高校的教师能够策力,共同助力教学改革。
6结语
内部审计学科的不断发展变化,要求专业教师的授课要做到因时而进,从而使内部审计学科的教学能够满足新经济形势下企业对于内部审计人才的需求。教师有责任通过改革内部审计课程目前的案例教学模式,通过丰富的案例和模拟实验,为学生呈现完整的内部审计流程与程序,帮助学生进步,培养更多综合型、应用型人才。
【参考文献】
【1】王晓萍.大数据背景下内部审计案例实践教学改革及发展探析[J].
当代经济,2017(1):89.
【2】石利芳,孙晓红.产学研视角下高校审计人才培养模式改革与实践研究[J].科教导刊,2016(5):35-36,91.
【3】孙丽华.《内部审计学》教学改革与实践探讨[J].财会通讯,2014(11): 48-50.
【4】刘世全.基于实践核心的审计学教学模式研究[J].财会通讯,2013(7): 39-41.
【5】李慧.审计案例教学模式改革思考与探索[J].财会通讯,2012(24):36-38.
6结论
反向代理技术可以实现IPv4到IPv6的Web应用转换,是IPv6过渡阶段最方便快捷的业务向IPv6转换的方法。同时,通过反向代理服务后,用户与应用系统中间增加了一层防护,提高了内部系统的安全性。该方法的使用为IPv6在业务系统方面的推广提供了解决方案,同时也为业务系统的信息
安全提供了保障。
【参考文献】
【1】邓庚盛,鄢志辉,邹伟平,等.IPv6过渡阶段基于双栈反向代理技术的应用研究[J].中国教育网络,2018(1):33.
【2】冯贵兰,李正楠.Nginx反向代理在高校网站系统中的应用研究[J].
网络安全技术与应用,2017(6):22-26.
www_IPV6攻击类型统计CC攻击第11次(7.37%)参数非法(17.56%)
非法URL(24.36%)
POST非法数
据(47.31%)
图2
攻击类型图3IPv6下的日志分析
(上接第65
页)
111
. All Rights Reserved.