4.3 各种自定义微调

4.3.1 特定文件/目录的自动上传过滤

iGuardV5可以根据文件名模式,灵活地设定哪些文件无需自动上传至网站服务器端。文件名模式可以匹配到单个具体文件、单个目录下的所有文件以及不同目录下的相似规律文件。再通过多条策略的灵活组合,能实现各种不同需求。

场景1:不需要自动上传特定目录下的某些文件

如最常见的情况是,网站目录下的某些临时文件、日志文件和计数器文件,并不需要自动上传到网站端。他们的物理路径如下:

操作为:首先点击【开始】->【同步管理】->【站点管理】,在相应站点的【过滤策略】里(如图示4-2)
img
图示 4-2 设置全站过滤策略

在右侧的一排快捷图标 img里,选择【新增】 img图标,在“过滤策略”里,选择“排除”,文件模式里填入具体文件名,可以使用*和?符号做文件名模式匹配,如图示。
img
图示 4-3 设置单条过滤策略

根据以上具体需求,逐一填入需要忽略3条过滤策略,得到最后的过滤列表,如图示。
img
图示 4-4 各种文件名过滤策略组合

最后点击【保存】即可。这3类模式的文件将不会再自动上传。

场景2:不需要上传有特定内容模式的文件

如最常见的情况是,某些Microsoft Access数据库格式的文件,原本后缀名为.mdb,但为了防止被下载,已改名为.asa文件。而且这类文件分布在网站的各个子目录下,并无特定规律,无法用文件名模式匹配出来,这时候就需要根据文件的具体内容进行过滤了。

这类.mdb文件的特点为,在文件开头的第5个字节开始,必然包含着“Standard Jet DB”字符串。由于iGuardV5的内容过滤是16进制编码的,所以需要先把这段字符串转成16进制编码。方法如下:

把这段编码复制下来。回到iGuardV5控制台中。首先点击【开始】->【同步管理】->【站点管理】,在相应站点的【过滤策略】里,再点击“新增”img图标,按以下内容填入具体的过滤策略。“过滤策略”为“排除”;文件模式“*”代表所有文件;“偏移”值为“4”(从第5个字节开始匹配);“特征”为这串16进制特征码,如图示4-6。最后点击“保存”。
img
图示 4-6 根据文件内容配置过滤策略

场景3:在整个大目录下,只有部分文件需要自动上传,其他文件全部不要自动上传

源目录为C:\backup,在这个总的目录下,有许多二级子目录,其中只有html和images两个子目录需要自动同步,其他一律不需要自动同步。

首先点击【开始】->【同步管理】->【站点管理】,在相应站点的过滤选项里,选择过滤策略为“包含”,在文件模式里,分别填入“C:\ backup\html\*”和“C:\backup\images\*”,代表这两个目录需要做自动同步,如图示4-7。
img
图示 4-7 设置子目录的自动上传

最后,再多加一条“过滤策略”为“排除”的选项,设置最上一级的目录不需要做自动上传,如图示4-8。
img
图示 4-8 去除最上层目录的自动上传

最后得到完整的过滤列表如图示4-9,点击“保存”完成设置。由于过滤策略遵照从上到下的优先级匹配,所以最长最深的目录级别应该写在最上面,最短的写在最底层。过滤策略里,前面为“+” 加号的,为需要自动同步的目录,前面为“-”减号的,则不需要同步。
img
图示 4-9 完整的过滤策略列表

4.3.2 特定文件/目录的手工上传过滤

场景1:选择只上传特定时间段内产生的文件 如对源目录C:\backup,只希望手工上传该目录下2017年1月份内产生的全部文件。 首先点击【开始】->【同步管理】->【手工同步】,先选定相关的站点,再选择【指定同步文件/目录】里的需要手工同步的路径,再选择【选择目标服务器】,最后点击下方的【更多选项】下拉菜单,展示详尽选项的设置,如图示4-10:
img
图示 4-10 手工同步的【更多选项】

在【更多选项】的【过滤策略】里,根据需求增加额外的过滤策略。如设定只同步2017年1月份时段的文件,先点击“新增”img图标,过滤策略设为【包含】,“文件类型”里选择“文件”,再设定“时间节点”范围,具体如图示4-10。
img
图示 4-10 只同步特定时段的文件上传

由于默认是同步全部文件的,所以还需要额外设置一条排除其他所有文件上传的规则。点击“新增”img图标,过滤策略设为【排除】,如图示4-11。
img
图示 4-11 排除其他文件的上传

这样总体的规律规则如图示4-12。完成后点击右上方的【创建同步任务】按钮即可。
img
图示 4-12 过滤特定时间段内的文件上传

4.3.3 对文件异动检测,放开对特定文件/目录的防护

场景1:不需要保护特定的目录/文件

最常见的情况是,网站目录下的某些上传目录需要直接更新特定类型的文件,如jpg、gif和zip等,但这类目录往往也是藏污纳垢之所,所以只能放开特定类型文件的访问,而对敏感的脚本类型文件,如asp、php、asa和jsp等,则不应允许访问。

根据此需求,点击桌面上的快捷【防护状态】,再选择需要配置的服务器对应的“内置模块”
img

在内置模块列表里,再选择【文件异动监测】。
img

先点击自动导入img 或手工编辑需要保护的目录列表 。
img

再点击“新增”按钮 img,在【过滤策略】项目中,设置“过滤策略”为“包含”,限定上传目录下的asp*文件是需要防护的,其他相似的脚本文件也类似地处理,如图4-13。
img
图示 4-13 需要进行文件异动检测防护的特定文件(受保护)

一般而言,在同一个目录下,既需要限制某类文件的生成,又需要放开另一类文件时,一定要先设置“受保护”的文件过滤,安全性更高些。

完成“受保护”类型文件的设置后,再对除普通文件做例外设置(注意:此时“过滤策略”应选择“排除”),如图示4-14。这类过滤策略为“排除”的文件,将不受文件异动检测防护,即可以随意产生,无需从源端上传。
img
图示 4-14 不需要进行文件异动检测防护的特定文件(不受保护)

总的过滤策略列表如图示4-15。前面符号为加号“+”的,是选择了“过滤策略”为“包含”的文件模式(受保护);前面符号为减号“-”的,则是“过滤策略”为“排除”的文件模式(不受保护)。
img
图示 4-15 完整的过滤策略列表

4.3.4 对核心内嵌模块,放开对特定文件/目录的防护

场景1:不需要保护特定的目录/文件 默认情况下,Web服务器里加载了防篡改模块后,将只认可从发布服务器传到Web服务器相应目录的文件。这一途径之外的任何修改都会被认为是非法的。如果确实有必要,如一些临时文件、计数器文件和Access数据库文件等,确实不需要防护的,可以做例外忽略。他们的物理路径如下:

根据此需求,点击桌面上的快捷【防护状态】,再选择需要配置的服务器对应的“Web模块” ,如图示4-16。
img
图示 4-16 选择服务器对应的Web模块项

根据自己的实际情况,在【可用模块】里,选择合适的Web模块,如图示中的“IIS7-x86_64”模块。
img

在【关于受保护的文件过滤规则】分类中,依次分别点击 “新增”按钮 img,如下设置每一条“排除”策略,得到如图示4-17列表,最后点击“保存”。
img
图示 4-17 无需保护的文件规则列表

场景2:同一个目录下,既有不需要保护的文件,也有绝对不应该出现的文件。

典型场景如网站的上传目录。这部分目录下的文件一般无法从源端的相应目录上传,而这类上传目录又是最容易出现问题的位置,所以应该做好充分的防护。这些上传目录下存放的文件一般分两类:

根据此需求,点击【防护状态】->具体服务器的【Web模块】列表中,在【可用模块】里,选择合适的Web模块,如“IIS7-x86_64”模块,再按以下内容设置:
img
图示 4-18 完整的上传目录防护规则列表

最后点击“保存”即可。