互联网快速发展时期,网站安全形势越来越受到关注,南开大学通过一番改革和探索后,提出了基于反向代理技术的网站安全管理模式,该模式主要解决两个问题,一是解决由于网站地理分散导致的网站运行环境得不到安全保障的问题;二是解决网站安全事件发生后,日志被删除,难以追溯事件产生原因的问题。
网站安全管理难题用反向代理技术巧应对
近年来,随着我国互联网事业的快速发展,高校信息化工作扎实推进,取得了显著的进步和成绩,但与此同时,也还存在不少短板和问题,这其中以网站安全问题尤为突出。
在教育培训领域中,由于网络普及率及信息化程度较高,网站数量多,所以存在的漏洞相对也很多,尤其需要引起人们对高校网站安全管理的重视。对此,南开大学从网站安全管理面临的问题出发,结合工作中对网站安全管理的认识和理解,提出基于反向代理技术的网站安全管理模式。
网站安全管理面临的问题
2012年以前,南开大学的网站都是谁建设谁负责安全管理。但随着学校里网站越建越多,网站安全事件发生得越来越频繁,学校的信息化建设与管理领导小组(校一级信息化建设管理组织)经过组织会议研究,最终做出决定:由信息化建设与管理办公室(以后简称“信息化办”)统一管理学校网络建设,全面负责网站安全。从此以后,信息化办担当起了管理全校网站安全的重任,在管理全校网站安全的过程中,遇到了诸多问题,主要表现在如下几个方面:
(1)网站数量庞大,工作人员相对较少,管理工作量较大。学校登记在册的网站及信息系统数量将近400个,而信息化办信息科只有4人,除了管理网站安全外,还要负责科里面的其它工作。网站数量与管理员人数的比例是100:1,管理网站安全占据日常工作量很大份额。
(2)网站地理位置分散,不便统一管理,很多网站的运行环境得不到安全保障。搭建在信息化办数据中心机房的网站都有防火墙、IPS、WAF等设备进行安全防护,运行环境相对安全;而分布在各个院系部处机房的网站,由于经费及其他各种原因,难以保证对网站进行有效的安全防护,运行环境比较危险。
(3)发生网站安全事件后,应急处理相对容易,但追溯事件原因,进而修补漏洞还很难。因为经验老道的黑客在成功入侵网站后,通常会删除入侵相关日志,清理掉自己入侵的痕迹后才会全身而退,这就导致网站管理员难以追溯问题发生的原因,不能定位漏洞,进而不能快速地修复漏洞。
(4)其他问题。除了以上提到的问题外,还存在网站管理员缺乏安全意识、监管体系缺乏安全问责机制、网站开发管理模式先天不足等问题。
网站安全管理模式探索与实践
2012年以后,南开大学经过多次调研讨论,在网站安全管理方面进行改革,相继开展了一些工作,主要包括:
(1)制度建设方面。建立校一级《南开大学网站建设与管理规定》制度,明确信息化办是学校网站安全的主管部门,确定南开大学网站建设管理办法及相关流程。
(2)技术保障方面。为辅助制度的执行,开发了南开大学网站安全审查系统,结合使用网站安全评估设备、网络防火墙等设备,从网站安全准入、网站安全审查、网站归档退出等三个方面(网站的整个生命周期内)对学校网站进行全面的管理。
(3)网站运行环境安全保障方面。采用了两种方式,一是引进了相对安全稳定网站群平台,引导用户将网站迁移到网站群平台运行;二是为用户提供免费的有安全防护的虚拟化环境。
通过开展以上三个方面的工作,解决了前文网站安全管理面临的问题中的很多问题,并对网站安全的管理成果已经初见成效,网站安全事件明显减少。但是其中的问题(2)(3)仍没能得到解决,为此,通过进一步的调研、测试、甄选,最终选择使用Nginx反向代理技术作为处理该问题的解决方案。
为了解决学校在网站安全管理上面临的问题,通过采用Nginx反向代理技术,对学校网站管理进行优化,示意图如图1所示。自右向左看,最右面是分散的Web站点,其中有搭建在数据中心机房的,也有分布在各个院系部处机房的;中间靠右是2台Nginx反向代理服务器,反向代理服务器下面是1台日志服务器;中间靠左是1台(组)安全防护设备;左侧是客户端通过互联网对我们的服务器进行访问。自左向右看,客户端要访问Web站点,必须要经过安全防护设备,然后再经过Nginx方向代理服务器,留下访问日志,才能访问到真实站点。为便于读者理解,下面对示意图进行一下详细说明(自右向左)。
(1)最右侧,给分布在不同地点的网站主机分配私网IP地址,其Web服务统一通过反向代理服务器代理到公网。这样做的优势是能够把网站主机Web服务以外的操作系统及其他应用相关的漏洞控制在私网内,从而缩小网站主机被攻击的范围。为配合此操作,需要修改网站的域名指向到反向代理服务器地址。
(2)中间靠右,部署2台Nginx反向代理服务器,服务器自身设置私网IP,通过Keepalived虚拟出公网IP对外提供Web服务。这样做的优势是可以让Nginx服务器更加高可用,能够稳定、高效的对外提供Web服务。
(3)Nginx服务器下面,搭建日志服务器,通过Rsync的方式收集客户端经过反
向代理访问网站的日志。这样即使后端网站由于网站漏洞被入侵,黑客也只能删除存在于后端主机上面的日志,存在于日志服务器上的访问日志是可以完整保留下来的,这对根据日志查找漏洞,修复漏洞是很有帮助的,直接解决了前文提到的第(3)个问题。除此之外,反向代理上的日志既可以设置成每个后端网站一个日志,也可以设置为所有网站只生成一份日志。设置成每个网站都生成一个日志时,还可以配合搭建Awstats服务器对网站的访问情况进行查看;设置成所有网站只生成一份日志时,可以对日志进行一些大数据分析相关工作。
(4)中间靠左,在Nginx反向代理服务器前面架设防火墙、IPS、WAF等安全防护设备,对通过反向代理访问的网站提供安全的防护,减少网站被入侵的可能性,直接解决了前文提到的第(2)个问题。
Nginx功能很强大,使用反向代理的优势有很多,除了上面提到的,通过使用反向代理还做了如下安全配置:
(1)对学校主页等重要网站做负载均衡。通过在Nginx配置upstream即可实现该功能,示例配置如下:
upstreamwww.nku.cn
{
#后端多台服务器地址
server192.168.16.61:80;
server192.168.16.61:80;
server192.168.16.63:80;
server192.168.16.64:80;
}
server
{
listen80;
server_namewww.nankai.edu.cn;location/{
proxy_passhttp://www.nku.cn/;
}
}
(2)对网站的敏感目录或文件做访问限制。通过配置目录的Allow、Deny选项即可实现,示例配置如下:
server
{
listen80;
server_namewww.nankai.edu.cn;location/{
proxy_passhttp://192.168.16.61/;
}
#禁止IP地址202.113.19.208访问/s/12/list.jsp
文件
location~*/s/12/list.jsp{deny202.113.19.208/32;
allowall;
}
#只允许192.168.8.0/24网段访问网站的管理目录/manage/
location~*/manage/{
allow192.168.8.0/24;
deny all;
}
}
(3)对网站的访问范围进行管理。可以将网站的允许访问范围分为公网访问、校园网访问、办公区访问、学生活动区访问、有线网访问、无线网访问等。以允许办公区和学生活动区为示例,配置如下:
需要首先定义2个访问范围的配置文件,内容分别为:
teacher.conf
allow10.10.0.0/16;
allow10.15.0.0/16;
deny all;
student.conf
allow10.100.0.0/16;
allow10.150.0.0/16;
deny all;
反向代理配置文件nginx.conf 内容如下:
server
{
listen80;
server_nameteacher.nankai.edu.cn;
location/{
proxy_pass http://192.168.16.66/;
#仅允许办公区IP访问此网站
includeteacher.conf
}
}
server
{
listen80;
server_namestudent.nankai.edu.cn;
location/{
proxy_pass
http://192.168.16.68/;
#仅允许学生活动区IP访问此网站
includeteacher.conf
}
}
网站安全管理工作任重而道远,要把网站安全做好,并非一朝一夕之功,也非用一些安全设备或一些安全防护策略就能够完完全全解决掉的事情,而是一个需要持续不断进行运维的动态过程。
(作者单位为南开大学信息化建设与管理办公室)