我区教育网站2006年4月开始建设,教育城域网则是2008年在市局的指导下建立的全市第一个教育城域网。

由于近些年严峻的网络安全形势,我区加大了硬件和软件方面的投入,趁着“姜堰教育”站点的二级等保建设,购买了若干安全设备。这些设备我想大家都有,但很多都是为了等保买的,买的个“有”。效果大家都差不多,这里不多说。制定制度、物防、技防等等方面大家都了解的这里就不再介绍了,这里我只谈我们有别于他人的一些事。

一  关闭原有的学校网站

近几年,通过网络结构的改造,我区学校已无法在自己的校园网内发布对外的服务器。除部分幼儿园,对于其它私自另行申请教育城域网以外的光纤的,一旦查实,立即要求关闭。

这么多年,购买的一些平台,基本都有安全问题,包括一些大厂如某康卫视的,甚至安全厂商生产的。我们的处理方式是尽可能放在城域网内,不对外。所以目前我们现在主要维护的重点就剩下教育网(姜堰教育)、电子办公平台和 Seafile私有云。

电子办公平台是2006年购买的通达OA,这个平台其实我们一直以来就是用它来发内部邮件,并不曾很好的运用起来。通过观察,这个系统在底层设计存在很多问题,主要是弱密码和后门,我们在解决这两个问题以后,在它前面加上了一个创宇盾(云盾)系统。

二  解决需求,利用“姜堰教育”的专辑功能,为学校建立自己的专辑网站,由教师自己快速申请,可以自由的建立工作室、博客、个人专辑等,满足教育城域网内多方面的需求

下面是溱潼小学的李伟老师的个人专辑,他用这个专辑把自己班上学生写的优秀作文整理并发布,访问量很高。

另一个溱潼小学的丁娟老师发布的学生作文“《一起长大的玩具》读后感”三年获得了7万多的IP访问数(我们姜堰教育三年的总IP数不过三百多万),她写的一篇教育博客《教育,一场温暖的修行》,两年多时间就获得了3.5万的IP访问。(我们的统计是自己做的,对IP的计量很苛刻,同一个IP间隔6小时访问才会再被累记)



我自已的专辑就更多了,我是为每一个需要记录的事情做一个专辑。


专辑系统能做小型网站(比如我们的校园频道)、博客、工作室、电子期刊、个人站点等等。它支持多人合作,可以选择自己喜欢的模板,文章的发布支持历史回退功能,支持二维码共享等等,可以说能想到的,我们都做到了。

大多数学校专辑站点都是多人合作,即有多人发布和管理,下面是我的一个团队的合作站点。

下面是省姜中的站点。

专辑的优势不仅仅表现在以上方面。比如我们搞融改实验,需要一个网站,那我们就建了一个专辑,然后在首页上给它做个图标并且搞个链接。

打开以后是这样子:

我们有教育系统招标采购需求,那就建了一个专辑用于招标采购。

在需要的时候就把它放在首页或其它什么位置,不需要的时候就撤下,并不影响它的运行。

三 解决需求的同时,做安全保护

下面我来通过一个图,谈谈我的个人理解。

假定一个站点是一个人,通过了解他所说话,来完成站点的功能。在很多方案中,这个人是完全暴露在外的。如果想要站点安全,我们就要保护这个人,让他与世隔绝,当然最好的办法是让他可以访问外面(有时需要升级或其它一些需求),但外面不能访问到他,哪怕是他的衣服上垂落下来的布丝。外界只能和它对话,知晓对话的内容,而不能知道这个人任何的情况,比如是男是女、年龄爱好、着装打扮等等。

下面我把这个人换成一个比较出名的Java Web容器Tomcat,我们的站点都是这个Tomcat 提供的。那我们就需要保护这个 Tomcat ,不仅仅是它的版本什么的,任何无关的信息,都不能让外界触及,连它是什么都不能让外界知道,即外面都不知道这个站点是用Tomcat来提供服务的。

好在我们这个站点的每一行代码和平台都是我自己搞的,那就一点一点来努力吧。我是一个非常喜欢推翻自己的人,这个站点这么多年,我扔了两个版本的代码,第三个版本正在进行拆解,第四个版本(微服务版)正在堆积。

防护措施一:采用分离再整合的方案。

首先将站点分离为三个服务器:Nginx服务、Tomcat服务、MySQL服务。对外由 Nginx 提供 HTTPS 服务。

防护措施二:采用SpringCloud微服务平台,目标是将原来的Tomcat服务器上的站点功能进行拆解,完成后的Java应用将利用 JSON 将数据提供给Nginx主站点进行解析渲染处理以供访问。

目前此项工作最为繁琐,现已完成 监测、日志、统计等模块的分离。全文整站搜索引擎采用 Elasticsearch 重新开发完成(原来使用的是Hibernate Search、近年来问题不断)

现在的拓朴结构大致如下。

防护措施三:建立应用内安全网关进行风险堵截。

假定有一房子,有五个房间。想到达某个房间,我建立了两条规则:

1 不是从正门来的不让进。

2 带有嫌疑工具的不让进。


在这里嫌疑工具包括一些敏感的代码常用词,见下图:

通过以上思路,利用AOP技术,先定制规则。

最后在需要相应安全防护的方法上打上标签。

防护措施四

制定各种安全规则:

1. 复杂密码。姜堰教育站点在底层就采用了强密码措施,所有密码必须是大写英文字母、小写英文字母、数字、特殊符号中的至少三种,且不能有连续相同或递增递减的数字,如:1234 或 8765。另外建立了一个弱密码字典文件,用户可以写入。例如在姜堰教育,qwer和asdf和zxcv都是不允许的。

2. 精细化的用户权限设置

比如上面这张图,学校的官方帐号只能有申请权,在设置的时候就已经申请了。在学校频道,同一帐号有且只能有一个专辑(站点)。

若想在学校的专辑站点上发表文章,黑客即便获取了学校官方帐号,即不能发表文章,也不能继续申请学校的官方站点。

学校频道的文章必须由指定的合作人才能发布。因此黑客必须要获得两个帐号的用户名和密码才能有所作为。

3. 呢称功能

姜堰教育具有呢称功能。一旦设置了呢称,则前台除了自己以及管理员,其它任何访客无法知道登录的用户名。

比如,我的文章里显示的都是一辈子流浪,其实我的用户名是lzh。

再比如下面这个用户,你以为他是孙悟空,其实他是猪八戒。

4. 全方位的实时监测功能

现在的“姜堰教育”,前后台所有的活动(包括访问)都实时记录。监测平台能实时观测网站的实时情况,所有登录及写操作均入日志。专辑的主人和合作者也可以在专辑的后台查看自己专辑的被访问等情况。


在内容安全方面,建立了三个不同等级的词汇库,用户发表文章及建立用户等,内容在发布的同时将进行后台检测,若有碰及,则在后台立即触发不同等级的报警。

5.在所有文章和上传文件上动脑筋

文章在发布并通过审核时,生成静态文件时,会有后面有文章ID。管理员在编辑文章时能通过ID号快速切换到该文章的编辑页面。

所有文件上传必须登录才有许可。并且在文件名后会有用户的ID,一看文件名,就能知道是哪个上传的。如下图的上传者的UID是1603。

站点的前台所有上传文件都有防重功能。即一个图片上传了,后面再传相同的图片,都将会被抛弃并返回第一个图片。因此无论再怎么修改、引用,都无法改变指定文件的上传者这一属性。

防护措施五

我区在教师队伍中选取了一些优秀的人员作为网络安全管理员,每天都有至少两人值班。

除其它安全巡检工作外,所有在“姜堰教育”发布的文章都需过目,报警的要进行风险研判,每天的工作情况要记录到内网的专用网站上。每年都会抽取时间对管理员进行技术等业务培训。

当然姜堰教育站点中还有其它很多安全措施,上面只是举了几个小例子。