linux oracle 网络安全 编程
分类: LINUX
2013-03-21 11:31:18
采集技术比较
网络管理中常用来采集日志数据的方式包括文本方式采集、SNMP
Trap方式采集和syslog方式采集,另外,其他采集方式,如Telnet
采集(远程控制命令采集)、串口采集等。我们如何选用比较合适的技术方式进行日志数据采集是必须首先考虑的,下面对当前主要的日志数据采集技术进行简单分 析。
文本方式
在统一安全管理系统中以文本方式采集日志数据主要是指邮件或FTP方式。邮件
方式是指在安全设备内设定报警或通知条件,当符合条件的事件发生时,相关情况被一一记录下来,然后在某一时间由安全设备或系统主动地将这些日志信息以邮件
形式发给邮件接受者,属于被动采集日志数据方式。其中的日志信息通常是以文本方式传送,传送的信息量相对少且需专业人员才能看懂。而FTP方式必须事先开
发特定的采集程序进行日志数据采集,每次连接都是完整下载整个日志文本文件,网络传输数据量可能非常大,属于主动采集日志数据方式。
随着网络高速的发展,网络内部以百兆、千兆甚至万兆互联,即使采取功能强大的计算机来处理日志数据包的采集工作,相对来说以上两种方式速度和效率也是不尽人意。因此,文本方式只能在采集日志数据范围小、速度比较慢的网络中使用,一般在网络安全管理中不被主要采用。
SNMP
trap方式
建立在简单网络管理协议SNMP上的网络管理,SNMP
TRAP是基于SNMP MIB的,因为SNMP MIB
是定义了这个设备都有哪些信息可以被收集,哪些trap的触发条件可以被定义,只有符合TRAP触发条件的事件才被发送出去。人们通常使用 SNMP
Trap
机制进行日志数据采集。生成Trap消息的事件(如系统重启)由Trap代理内部定义,而不是通用格式定义。由于Trap机制是基于事件驱动的,代理只有在监听到故障时才通知管理系统,非故障信息不会通知给管理系统。对于该方式的日志数据采集只能在SNMP下进行,生成的消息格式单独定义,对于不支持
SNMP设备通用性不是很强。
网络设备的部分故障日志信息,如环境、SNMP访问失效等信息由SNMP
Trap进行报告,通过对 SNMP 数据报文中 Trap
字段值的解释就可以获得一条网络设备的重要信息,由此可见管理进程必须能够全面正确地解释网络上各种设备所发送的Trap数据,这样才能完成对网络设备的
信息监控和数据采集。
但是由于网络结构和网络技术的多样性,以及不同厂商管理其网络设备的手段不同,要求网络管理系统不但对公有
Trap能够正确解释,更要对不同厂商网络设备的私有部分非常了解,这样才能正确解析不同厂商网络设备所发送的私有
Trap,这也需要跟厂商紧密合作,进行联合技术开发,从而保证对私有 Trap
完整正确的解析和应用。此原因导致该种方式面对不同厂商的产品采集日志数据方式需单独进行编程处理,且要全面解释所有日志信息才能有效地采集到日志数据。
由此可见,该采集在日常日志数据采集中通用性不强。
syslog方式
已成为工业标准协议的系统日志
(syslog)协议是在加里佛尼亚大学伯克立软件分布研究中心(BSD)的TCP/IP
系统实施中开发的,目前,可用它记录设备的日志。在路由器、交换机、服务器等网络设备中,syslog记录着系统中的任何事件,管理者可以通过查看系统记
录,随时掌握系统状况。它能够接收远程系统的日志记录,在一个日志中按时间顺序处理包含多个系统的记录,并以文件形式存盘。同时不需要连接多个系统,就可
以在一个位置查看所有的记录。syslog使用UDP作为传输协议,通过目的端口514(也可以是其他定义的端口号),将所有安全设备的日志管理配置发送
到安装了syslog软件系统的日志服务器,syslog日志服务器自动接收日志数据并写到日志文件中。
另外,选用以syslog方式采集日志数据非常方便,且具有下述原因:
第一,Syslog
协议广泛应用在编程上,许多日志函数都已采纳
syslog协议,syslog用于许多保护措施中。可以通过它记录任何事件。通过系统调用记录用户自行开发的应用程序的运行状况。研究和开发一些系统程
序是日志系统的重点之一,例如网络设备日志功能将网络应用程序的重要行为向 syslog
接口呼叫并记录为日志,大部分内部系统工具(如邮件和打印系统)都是如此生成信息的,许多新增的程序(如tcpwrappers和SSH)也是如此工作
的。通过syslogd(负责大部分系统事
件的守护进程),将系统事件可以写到一个文件或设备中,或给用户发送一个信息。它能记录本地事件或通过网络记录到远端设备上的事件。
第二,当今网络设备普遍支持syslog协议。几乎所有的网络设备都可以通过syslog协议,将日志信息以用户数据报协议(UDP)方式传送
到远端服务器,远端接收日志服务器必须通过syslogd监听UDP 端口514,并根据
syslog.conf配置文件中的配置处理本机,接收访问系统的日志信息,把指定的事件写入特定文件中,供后台数据库管理和响应之用。意味着可以让任何
事件都登录到一台或多台服务器上,以备后台数据库用off-line(离线) 方法分析远端设备的事件。
第三,Syslog
协议和进程的最基本原则就是简单,在协议的发送者和接收者之间不要求严格的相互协调。事实上,syslog信息的传递可以在接收器没有被配置甚至没有接收器的情况下开始。反之,在没有清晰配置或定义的情况下,接收器也可以接收到信息。
附:
we
use both syslog and SNMP traps. Much of the information is duplicated, but there
are events where a device will only generate a trap and others where it only
generates a syslog entry (sorry - can't think of any specific examples at the
moment). Also, we find that the information contained in the syslog and SNMP
trap can be slightly different for the same event, one or the other being of
more use in certain situations.
On
some devices, SNMP traps can be created that will explicitly note events such as
"interface usage exceeded 80%", that you might otherwise have to deduce by
polling all the interface stats, keeping track of them, doing bytes per second
analysis, and so on. The trap so created might have information that you could
not normally deduce from passive syslog analysis -- e.g., sometimes syslog
messages do not include information about interface number whereas
the
corresponding trap would.
Traps can also have an "acknowlegement"
facility. If I understand correctly, if the monitoring device acknowledges the
trap, the sending device will flush the trap information, with it otherwise
holding on to the