APP下载

基于反向代理技术的高校Web 安全管理方案研究

2024-12-01钟勇李菲

电脑知识与技术 2024年32期

摘要:随着信息化和在线应用的普及,高校使用大量基于BS架构的应用管理系统。然而,由于缺乏统一的安全管理平台,这些系统的管理后台存在严重的安全隐患,威胁业务的安全性和可靠性。文章深入研究高校Web安全管理,提出基于反向代理技术的管理方案,在保障高校的Web安全管理需求的同时,提高了运维和管理效率,从而更好地服务于高校教学和科研工作。

关键词:反向代理;安全运维;网络安全

中图分类号:TP3 文献标识码:A

文章编号:1009-3044(2024)32-0089-03 开放科学(资源服务)标识码(OSID) :

1 现状分析

近年来,高校网络安全事件频发,高校承载了教学和科研等重要工作,存在较多的敏感数据。随着信息化的高速发展和在线应用的广泛普及,高校的信息系统规模呈现爆发式增长,业务管理系统也随之大量增加。高校的业务系统大多采用B/S架构,为了确保系统的安全性,通常会将管理和业务服务相分离,后台管理通过单独的服务端口或IP运行,对外仅开放业务服务,以实现安全隔离,确保核心数据和信息系统的安全稳定。随着业务量的增长,服务器的数量也快速增加,为方便运维管理,服务器通常配备了面向Web的IPMI带外管理功能[1]。尽管带外管理的使用频率相对较低,但在需要重装系统或检查硬件状态时发挥了巨大的便利性。特别是在遭遇意外宕机或配置错误导致系统无法进行远程运维时,带外管理功能能够显著降低运维人员现场操作的开销,从而更快地恢复业务。此外,高校中还存在大量的需要通过Web管理的硬件设备,包括摄像头、门禁、交换机等。在日常管理中,这些基于Web 的管理后台存在如下安全问题。

1)应用数量多,但没有统一的管理入口,导致了资产不清,容易存在安全盲区。

2)管理复杂,安全性差,虽然可以通过防火墙策略进行访问控制,但配置繁杂,限制访问区域的同时也降低了运维的及时性和灵活性。

3)公司等第三方人员参与运维工作,不利于安全管控。

4)大多系统管理日志保存不全或保存日期较短,关键时刻无法完成溯源工作。

5)业务管理系统较多使用HTTPS协议,明文传输数据,存在较高的安全风险。

6)部分管理后台使用的是旧版本的TLS协议,并且升级困难,主流的浏览器已经不支持,兼容性差。

7)使用HTTPS协议的管理的设备使用自签名证书,传输内容加密,WAF和流量监控设备无法识别内容,难以进行安全防护。

8)设备存在较多的管理弱口令或默认口令,容易被爆破。

9)管理登录缺乏多因子验证,安全性较低。

根据等级保护要求,高校的服务器系统都采用了专用的堡垒机[2]进行安全运维,堡垒机以SSH、RDP、VNC等远程管理为主,Web安全运维功能薄弱,或者缺乏安全管控机制,无法和其他安全设备进行联动。本文研究了基于反向代理技术的高校Web安全管理方案,通过Web代理技术实现对Web管理服务的统一安全管理。这种方案旨在提高学校业务的安全性和稳定性,更好地满足业务的安全和管理需求,提高运维和管理效率,从而保障教学和科研的顺利进行。通过该方案,可以有效地防止恶意攻击、数据泄露等安全问题的发生,为学校业务提供更加可靠、高效的支撑。

2 相关技术介绍

2.1 反向代理

反向代理是指通过代理服务器接收用户请求,由代理服务请求后端服务数据,返回给用户的技术方法。由于代理服务器处于用户和真实服务之间,请求和响应数据均会经过代理,故代理服务器可以做大量的其他工作,包括负载均衡、访问控制、安全检测、用户验证、数据脱敏等。反向代理目前已经大量运用于各大企业和高校[3]。反向代理的关键技术是要区分不同的服务请求,才能将请求数据转发到对应的后端服务上面,常用的代理方式主要有以下几种:1)基于域名的代理,为每个服务单独分配一个域名,对外将域名解析到代理服务器对应的IP地址,代理服务器通过用户请求的域名转发到对应的后端服务器。2)基于子目录/参数的代理,将每个站点映射为一个子目录或在请求数据中增加站点参数,代理服务器通过目录名或参数进行数据转发。3)基于端口的代理,每个服务分配一个独立的端口,代理服务器通过端口来确定转发服务。

2.2 Openresty

OpenResty是国内基于Nginx开发的高性能 Web 应用平台,具有较强的自主可控性,它将 Nginx 与Lua 编程语言相结合,通过轻量级的 Lua 脚本,提供了丰富的功能和灵活性,如图1所示。OpenResty 的设计目标是充分利用 Nginx 的事件驱动、高并发和低内存消耗的特性,同时发挥 Lua 脚本易用性和扩展性,为开发者提供一种高效构建和扩展 Web 应用程序的方式。作为代理使用,OpenResty不仅在HTTPS协议代理方面表现优异,同时也对TCP端口提供了出色的支持。目前OpenResty平台已被我国许多大型互联网公司采用,在高校中也广泛应用于资源访问[4]、资源发布、软件WAF[5]等多种应用场景。

3 方案设计

3.1 基本架构

整个系统围绕着HTTPS请求,充分利用了Open⁃Resty提供的扩展接口,当用户的请求到达代理服务器后,会被准确到调度到后端真实服务。为了提高系统的运行效率,系统将OpenResty使用的数据缓存到re⁃dis数据库中,并与态势感知平台进行联动,以确保Web应用的安全。基本架构图如图2所示。

3.2 初始化

在OpenResty的启动阶段,需要执行初始化程序。初始化程序从数据库中读取基础配置信息,并根据这些信息完成OpenResty的配置初始化工作。这一过程确保了全局变量的正确设置,为后续的应用运行提供了坚实的基础。确保了OpenResty能够按照预定的配置参数高效、稳定地运行。

3.3 用户认证管理

代理服务器会拦截用户请求,并对用户请求进行准入控制和身份校验。校验失败会将用户请求重定向到代理服务器的认证页面。验证通过后会为用户设置session,并将其引导至应用入口页面。由于Nginx本身的限制,我们在某些特定阶段无法直接利用cosocket与Redis进行交互。因此,为了获取存储于Redis中的策略配置,我们在验证阶段完成这些策略数据的获取。这些数据将保存在ngx.ctx变量中,供后续模块在需要时进行调用和使用。这样的设计确保了整个认证和校验过程的高效性与连贯性,同时也大大增强了系统的安全性和可靠性。

3.4 请求调度管理

当用户请求抵达代理服务器时,至关重要的任务便是确保用户的请求数据被准确无误地调度到对应的后端服务器,并将获取的数据高效回传给用户。为了达成这一目标,我们的调度管理系统充分运用了OpenResty的卓越代理特性,通过请求的端口以及特定的参数,实现了对应用的准确识别。与此同时,借助强大的管理后台,我们能够灵活地设置和优化负载调度策略,以确保应用在各种场景下都能实现负载均衡和高效调度。

3.5 内容替换管理

为了确保应用的广泛兼容性和流畅的用户体验,我们必须对应用所返回的数据进行适当的调整。在实际应用中,有些系统使用的是绝对路径或在响应体中直接返回真实服务器的请求地址,这会导致用户的请求无法正确到达代理服务器,从而导致应用访问失败。为了有效应对这一问题,我们需要对服务器返回的内容进行修改。通过精确匹配用户的请求链接,并运用正则表达式技术,对返回的内容进行有针对性的替换,从而实现了链接级别的内容管理。

由于后端Web服务器可能会对数据进行压缩以提高传输效率,这意味着程序无法直接对压缩后的数据内容进行识别和处理。为了解决这个问题,我们引入了zlib库,它提供了强大的数据解压缩和重压缩功能。通过zlib库,我们可以轻松地对数据包进行解压,完成必要的内容修改后,再重新进行压缩,确保数据的完整性和准确性。

3.6 Header 信息修正

部分业务为了安全性考虑,对请求数据中的主机名(host) 和引用来源(referer) 等关键信息进行安全验证。为了完成代理任务,我们需要对请求报文进行重构,以满足后端服务的校验。由于我们对请求体的内容进行了修改,为了确保返回数据的头部信息与实际请求体长度一致,需要将“Content-Length”设置为nil,这样可以确保头部数据的准确性,避免潜在的数据不一致问题。此外,如果返回的头部信息中包含“Loca⁃tion”字段,我们必须对其进行修改或重写。错误的“Location”设置可能会导致URL逃逸,导致服务不能正常访问。因此,我们在处理请求时,应特别注意对头部信息的准确性进行控制,以确保整个服务的正常运行。

3.7 日志管理

通过在标准日志中增加了用户身份信息,发送到第三方日志分析平台,日志模块实现了对用户请求的安全审计和安全监测。为了减少对业务请求的影响,我们采用了异步传输,使用OpenResty的ngx.timer来确保数据的非阻塞返回。用户的请求日志被发送到ELK日志管理中心[6],充分地利用ELK强大的数据收集、处理和可视化能力,实现快速定位问题,并提供更好的安全审计功能。

3.8 管理后台

管理后台主要负责整个系统的管理工作,完成对用户的管理,应用端口数据的绑定,用户授权等操作。管理员可以控制URL级别的header和body内容的优化和替换操作。这些数据将同步到redis数据库,方便OpenResty快速读取。后台管理系统还接收态势感知系统的订阅日志,通过外部安全数据来将用户或IP加入黑名单,从而更好地保障业务的安全性。

3.9 ModSecurity

虽然可以在应用前端加入硬件WAF,解决大多数的Web安全攻击,但硬件WAF对用户来说是黑盒,难以对其中的规则进行修改,缺乏可控性和灵活性。故在系统中增加了ModSecurity。ModSecurity是Nginx的主流WAF 模块,通过与OpenResty 一起编译,引入OWASP核心规则集,并针对应用对部分规则进行了优化,更好地实现了对应用的安全防护[7]。

4 用户访问

用户使用主要存在两种业务场景,一种是业务管理员自己使用,可以直接从用户页面点击对应管理业务。另一种是需要提供给第三方人员使用,业务管理员可以通过管理页面生成带有时效和使用者身份的管理链接,将该链接交给第三方公司的维护人员,从而实现业务的管理。这两种情形均使用JWT技术[8],通过在请求数据中加入使用者的身份信息,实现用户认证和授权操作。

5 结束语

本文基于反向代理技术实现了高校的Web安全管理,有效解决了Web资源管理散乱,统一了访问入口。通过使用HTTPS协议,解决了TLS版本不受支持的问题,提供了更安全的数据传输服务,有效防止了数据泄露的风险。通过日志模块实现了管理日志的集中审计和监控。并使用安全模块对用户的请求进行基本的过滤与安全检测,与安全态势感知平台进行联动,对异常请求进行拦截,有效保障了后端服务安全。为高校的Web安全管理提供了有力的支撑,有效保障了学校老师和同学的学习,生活和科研的顺利进行。

参考文献:

[1] 尹赛超,黄梅.数据中心带外管理建设研究[J].信息技术与信息化,2023(3):66-69.

[2] 曹园青,艾丽斯娜,王惠惠.堡垒机系统在高校网络安全架构中的联动实践研究[J].电脑编程技巧与维护,2023(3):164-167.

[3] 韩红宇,樊蒙蒙.反向代理技术在高校网络中的应用[J].漯河职业技术学院学报,2022,21(5):22-25.

[4] 倪劼.图书馆数字资源访问统计系统构建研究:基于Open⁃Resty平台[J].图书馆工作与研究,2019(10):75-82,96.

[5] 王明芬,林婷.基于WAF的网络运维系统设计[J].电信快报,2020(11):26-29.

[6] 章逢欢,胡敬超,张雯,等.一种基于ELK的反向代理日志分析系统设计[J].电脑编程技巧与维护,2022(6):24-26.

[7] 张会奇.WAF系统在OpenResty上的构建[J].福建电脑,2020,36(12):142-144.

[8] 陆婷婷,殷佳庭.基于微服务架构的船货供求信息平台的设计实现[J].芜湖职业技术学院学报,2023,25(2):36-39.

【通联编辑:朱宝贵】