《中华人民共和国网络安全法》第二十一条(三)项规定:采取监测、记录网络运行状态、网络安全事件的技术措施,并按照规定留存相关的网络日志不少于六个月。
只是,简单地设置服务器日志保存6个月以上不删除,是完全不足够的。因为如果发生网络安全事件,被入侵的服务器日志被删除是大概率的情况。如果不通过专门的日志收集设备把日志另行备份保存,网络运营者就会因为缺失日志线索而被处罚。
笔者:国际认证信息系统审计师、软考系统分析师
因此,中心化的日志收集设备(又被称为综合日志审计平台之类的名字)基本上是企业组织要通过等保的要求,而必须在技术防护方面配置的要素。
但是,从笔者的实践经验来看,企业组织为了通过等保而多数只配置了单一一台日志设备。这只是表面上实现了通过等保测评的要求,但并不等于真正能满足网络安全法的要求。
等保测评的结果只代表了测评进行过程的两个时间点的情况(初测、整改后复测),在测评完成后,日常运行管理的合规性依旧需要网络运营者有足够的责任感和严谨态度去对待。
单一的一台日志设备,也就成为了网络中的单点故障。一旦设备失效,尤其是如果发生日志数据丢失,则所谓“6个月”的日志时长立即归零。这种情况并不算是“极端情况”,有运维经验的网管都很清楚服务器坏硬盘的几率有多高、后果有多严重。
而且,待到日常巡检才发现数据丢失已经属于事后介入,如果刚好叠加发生网络安全事件,网络运营者就无法证明自己已经尽到了合法依规的义务,处罚处分就无可避免。
结论是:部署多台套日志收集系统是必要的。
企业组织如何部署多台套日志收集系统,主要取决于两个因素:
1、财力或全方位完全防护能力
2、IT人员的能力
对于相对“不差钱”的企业组织而言,解决问题的办法比较简单:
1、采购更多的专用的日志收集设备部署到内网
2、在服务器上安装设置更多的日志收集代理,实现双重甚至多重的日志记录收集
3、采购专门的存储设备,设置日志收集设备定期执行日志转储到存储设备进行备份。
以上做法,对企业IT人员的能力也同样有要求。包括多套日志收集设备如何切入部署到内网,如何设置服务器上多套运行的日志代理之间不会互相冲突占用资源,如何保证日志转储成功,转储的日志如何进行再备份等等。
而对于财力不足的企业组织而言,就必须在如何合理、低成本地解决问题上下功夫。基于笔者的经验而言,在采购专用日志收集设备以满足等保要求的基础上,补充部署一套满足合规要求、可用、开源或免费的日志收集系统就是解决办法。这就是本文标题的“甲方基础实践”的内容。
下面从最基础的本机日志设置开始,介绍笔者认为作为网络运营者的甲方,在日志收集义务上所应执行的基础工作。
在这个问题上Windows并不好设置。因为Windows只提供了按日志文件大小滚动的选项,如下图:
一般地,可以通过在配置好所有的审计设置后,观察日志大小的增长情况(一般以一周为单位),然后按此情况估计6个月的日志需要如何设置滚动。
对于Linux下绝大多数情况而言,只需要安装和配置LogRotate,就可以轻松地合规实现要求的6个月日志保留。网上教程很多,我这里也不重复。
对于Windows比较麻烦。虽然Windows可以启动日志收集服务,通过该服务实现从其它计算机收集或发送事件日志到其它计算机,但它的设计并不是syslog模式,而是基于域或者证书加密等其它因素,门槛比较高。
因此,一般都通过日志收集系统的代理程序去获取和发送事件日志内容。包括商业日志收集设备和开源日志收集系统都是通过这个办法。
至于Linux也是非常简单,发行版默认带有的Syslog(或者RSyslog)直接支持发送(也包括接收)日志到日志收集系统。
但日志转发,并不仅仅限于操作系统,也包括各类安全设备、网络设备、中间件等等。尤其是安全设备和网络设备,需要支持不止一个日志发送目的地的设置,否则就无法实现本文的内容。如下是某个厂商的骨干路由器的日志转发设置,最大支持20个转发目的地:
虽然Windows也可以开启日志收集服务,接收来自其它系统或设备来源的日志,但由于上面说的,Windows只能按日志文件大小实现自动处理的不合规的缺陷,以及日志收集并不是syslog模式等问题,实际无法直接使用Windows作为后备日志收集系统。只能转而寻求其它专门的日志收集软件。
笔者选择在CentOS 7上安装使用syslog-ng作为后备日志收集系统。syslog-ng区分为商业版本和开源版本。下载地址:
https://www.syslog-ng.com/products/open-source-log-management/
有些Linux发行版本身就带有了syslog-ng,又或者通过发行版的附加仓库,比如对应RHEL的EPEL,直接安装syslog-ng。
假设服务器上已经配置了epel软件仓库源,直接执行
yum install syslog-ng
即可完成安装。
完成安装后,首先要进行配置。由于操作系统本身默认已经有rsyslog在运行,从外部收集的日志应该与本机产生的日志分离。考虑到某些特殊的设备可能硬性规定了发送目的地的syslog端口必须为514,因此需要修改操作系统本身的rsyslog的配置,实现从端口到日志存放位置都分离。
方法是直接修改:
/etc/rsyslog.conf
查找514这个数值,然后把相关行都用#号注释起来。
对于新安装的syslog-ng,则需要修改日志存放位置,即修改:
/etc/syslog-ng/syslog-ng.conf
对其中的
destination d_cons { file("/dev/console"); };
destination d_mesg { file("/var/log/messages"); };
destination d_auth { file("/var/log/secure"); };
destination d_mail { file("/var/log/maillog" flush_lines(10)); };
destination d_spol { file("/var/log/spooler"); };
destination d_boot { file("/var/log/boot.log"); };
destination d_cron { file("/var/log/cron"); };
destination d_kern { file("/var/log/kern"); };
destination d_mlal { usertty("*"); };
位置定义进行修改。比如修改为/var/syslog-ng/这个位置。
如果启用了SELINUX,需要在创建目录后设置正确的CONTEXT:
chcon -t var_log_t /var/syslog-ng
修改完配置后,重启默认日志服务:
systemctl restart rsyslog
启动新安装配置的syslog-ng服务
systemctl start syslog-ng
要注意别漏了防火墙开放514端口:
firewall-cmd --add-port=514/udp
firewall-cmd --runtime-to-permanent
然后就可以通过tail命令检查日志收集情况,比如对笔者如下配置的日志收集文件:
tail -f /var/syslog-ng/collector
如下的例子:
最后设置logrotate,压缩和滚动日志。这个就不详细描述了,教程太多。
以上过程就完成了后备日志收集系统的设置。当然这教程还是比较简单,需要在配置文件中更详细地定义区分收集回来的日志的来源,并且要考虑避免内网被入侵后,日志收集系统遭受到日志洪水攻击之类的问题。
本站微信订阅号:
本页网址二维码: