APP下载

利用Zabbix系统强化主机安全性

2012-12-17上海交通大学信息安全工程学院单蓉胜

电子世界 2012年13期
关键词:客户端报警服务器

上海交通大学信息安全工程学院 王 锋 单蓉胜

1.引言

中小企业的网络管理员常常会面临这样的困境,企业由于预算等原因而不得不将内部网络置于工作组的管理模式下。众所周知,工作组模式下主机地位平等,缺乏统一集中的安全管理机制。为保证企业内部网络的安全,管理员不得不在每台主机上进行设置,并不断的通过人工检查来保证所做的安全设置不会被员工误操作、病毒感染等因素破坏,这种方式即占用了管理员的大量时间和精力,又不能保证企业内网的安全水平。本文提出利用开源的内网监控解决方案zabbix解决工作组环境下的主机安全问题的方法。该方法利用监控系统扫描客户端的安全设置,当发现客户端的安全配置不符合要求时,监控系统可以远程自动的更改被监控端的配置,强制客户端执行公司的安全策略。同时监控系统还实时的检查主机行为,当发现员工QQ、MSN、游戏等工作无关的软件,或网络中某台终端滥用网络资源时系统可以根据设定好的规则进行自动处理。

2.系统框架和工作原理

本文所设计的方法由监控系统的数据采集模块、报警模块以及反馈控制模块三部分共同完成。数据采集由安装在被监控主机上的客户端程序来完成,监控服务器设置被监控端数据采集的方式、数据采集的项目,数据采集的频率等信息;被监控端定期与服务器通信下载这些配置信息,并根据配置信息的设定定期发送监控数据到服务器端。报警模块由服务器程序完成,报警模块的主要作用是根据监控数据判断客户端的安全策略执行情况,发现问题时及时预警。反馈控制模块的主要作用是在工作组的环境下提供一种机制,由监控系统根据警报在客户端远程执行命令或应用程序,自动的修改客户端的系统配置,保证客户端的安全配置和主机行为符合公司的安全策略。系统的工作流程如图1所示。

具体流程一般包含以下五个步骤:

(1)被监控主机定期从服务器下载监控配置信息,根据配置信息的要求向服务器发送监控数据。

(2)服务器收集客户端的监控数据,将当采集的数据与预设的阙值进行比较,如果比较的结果满足预设的某种情况时监控系统产生事件,否则就不做处理。

(3)当事件产生时,服务器进一步检查系统配置中该事件对应的动作,根据动作的设定进行下一步操作,向远端主机的客户端程序发出指令。

(4)被监控主机的客户端程序接到服务器的指令后,根据指令的内容执行相应的Windows命令或应用程序,更改主机的系统配置。

(5)监控系统根据最新采集到的监控数据判断当前被监控主机是否符合公司的安全策略。如果符合就不做处理继续扫描主机安全设置;如果依旧不符合就根据设置进行下一步处理。

3.数据采集

数据采集模块的主要功能是自动采集内网监控管理所需要的相关数据,其基本设计思想是:利用Zabbix所提供的机制作为基本的数据获取和通信手段来实现监控数据的采集。Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。Zabbix通过C/S模式采集数据,通过B/S模式在Web端展示和配置。Zabbix系统以Zabbix Server为中心与其他组件沟通,包括Zabbix Database、Zabbix Web Frontend、Zabbix Agent、Zabbix Proxy等组件。数据采集以监控项(Item)为基本元素,每一个监控项对应一个采集值;监控项关联到监控主机(Host)决定对被监控主机需要采集的数据。被监控主机上的客户端程序首先获取服务器上的监控项的列表,然后收集列表中要求的本机信息,最后发送给服务器进行下一步处理。系统默认提供了关于主机连通性、服务、性能等方面的监控项可供使用,对主机安全性方面的检查需要通过Zabbix提供的自定义监控项来完成。自定义监控的主要原理是由客户端程序根据配置文件中的设置调用主机上的系统命令或是脚本程序,将运行结果作为监控数据发送给服务器。这种方式极大的增强了监控系统的功能,系统中几乎全部的信息都可以被采集。

4.报警模块

报警模块的分两个部分:一是定义事件,将客户端的监控数值与预设的阙值做比较来判断事件是否发生;二是动作的设定,决定当事件发生时系统如何进行下一步动作。事件的定义使用了Zabbix的触发器(Trigger),触发器由一个逻辑表达式Expression定义,来反映系统的状态。触发器有三种状态:PROBLEM(当Item采集值满足逻辑表达式定义的触发条件时触发器的状态,表示系统中发生某个事件)、OK(这是触发器通常的状态,表明触发器所关联的监控项目正常)、UNKNOWN(通常由于逻辑表达式设定错误而造成的系统无法判别)。报警动作包括动作产生的条件和处理方式的设定。监控系统中产生的事件中会有不同的级别,只有当某类事件发生时才会引发报警;所以需要对监控系统产生的事件进行过滤,选出合适的事件,这种过滤通过动作产生条件来完成。对不同的事件类型设置相应的处理方式,包括发送报警消息和执行远程命令等。

5.反馈控制

反馈控制的实现过程中利用了报警模块产生的事件和动作,当检查监控数据后发现客户端的安全设置出现问题报警模块就会产生事件,反馈控制使用了Actions中的remote command自动修改客户端的系统配置来保证客户端的安全性。因为Zabbix agent在被监控端是被注册为服务启动的,所以Zabbix系统可以在被监控端以系统服务的身份运行绝大多数windows命令,也可以运行脚本,可执行程序等。使用Run remote commands功能,必须在被监控端的客户端配置文件中找到Option:EnableRemoteCommands,设置EnableRemoteCommands=1,Zabbix默认为0,表示不允许执行远程命令。

6.实验验证

实验环境介绍:实验中共有两台计算机,一台为Zabbix服务器安装Linux系统,一台为被监控客户端安装WindowsXP系统。在Zabbix服务器上安装Zabbix Server、Zabbix Database、Zabbix Web Frontend;在客户端安装Zabbix Agent。

实验内容:设置Zabbix系统监控Telnet服务的情况,当系统遭受黑客攻击或是管理员误操作而打开Telnet服务时自动生成警报,并关闭Telnet服务。实验中手动打开Telnet服务,观察监控系统对这一情况如何处理。监控系统的设置步骤如下:

(1)定义监控项:在web界面选择需要监控的主机,建立监控项Item;监控键值选择系统提供的service_state[TlntSvr](tlntsvr.exe是Windows服务器程序,可以在Windows服务中的查看服务名称)。

(2)定义警报:在相同的主机建立Trigger,Name为TelNet服务打开;Expression为{win_xp3:service_state[TlntSvr].last(0)}=0,表示当最近一次采集的监控值为0时引发警报。

(3)定义动作产生条件:在Configuration>Actions界面中,创建Action。动作产生条件为Host="hostname"、Trigger="hostname:TelNet服务打开”、Trigger value="PROBLEM";

(4)设置动作:在Action operations选框中点击new,在弹出的对话框中选择Operation type为Run remote commands,在Remote command中输入:{HOSTNAME}:net stop Tlntsvr。({HOSTNAME}是Zabbix提供的宏,自动转换为被监控主机的名称),net stop Tlntsvr是Windows命令。

实验结果:客户端Telnet服务开启后,监控系统发出警报,检查客户端Telnet服务状态发现服务被自动关闭,达到理想的预期效果。

7.结语

利用Zabbix监控系统结合Windows命令的方法可以实现自动化、流程化、标准化的企业内网管理,降低管理复杂度,使维护人员由原来的“系统救火员”角色变为真正的系统管理员,变被动为主动,极大的提高了网络的维护效率。解决企业网络管理工作中工作组环境下安全管理薄弱的问题,增强了系统安全性,对于企业的信息化建设起到了重要作用。

[1]万加富,张文斐,张占松.网络监控系统原理与应用[M].北京:机械工业出版社,2004.1.

[2]高杨.内网终端安全操作监控方案研究[J].硅谷,2009.8.

[3]李朝阳.利用ZABBIX进行系统和网络管理[J].计算机时代,2008.10.

猜你喜欢

客户端报警服务器
通信控制服务器(CCS)维护终端的设计与实现
如何看待传统媒体新闻客户端的“断舍离”?
LKD2-HS型列控中心驱采不一致报警处理
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
中国服务器市场份额出炉
得形忘意的服务器标准
2015款奔驰E180车安全气囊报警
计算机网络安全服务器入侵与防御
死于密室的租住者