IDS工具-Snort的认识以及实例测试

    作者:课课家教育更新于: 2019-02-26 15:21:39

    软考,您想通过吗?一次通过才是硬道理

      在本文中,小编来为大家介绍一款受欢迎的IDS工具,适运行于任何现代操作系统的Snort。

      Snort是一款开源的网络入侵检测系统,它能够执行实时流量分析和IP协议网络的数据包记录。Snort可以执行协议分析和内容查询/匹配使你能够探测各种攻击和探查,比如缓冲区溢出,隐蔽端口扫描,通用网关接口(CGI)攻击,服务器信息块协议(SMB)探测,操作系统指纹攻击等待。Sno纠正快速成为入侵检测的有力工具。

      Snort作为一个轻量级的入侵监测系统,具有一下几个特点:

      (1)占用资源少,对网络性能影响小

      (2)支持系统广泛,可以跨平台使用

      (3)snort有三种主要的模式:信息报嗅探器、信息报记录器和成熟的入侵检测系统

      (4)采用误用检测模型,首先建立入侵行为特征库,然后在检测过程中,将收集到的数据包和特征码进行比较,得出是否入侵的结论

      (5)它是用C语言写的开放源代码。

      Snort的配置有3个主要模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网路入侵检测模式是最复杂的,而且是可配置的,它可以分析网流量与用户定义的规则设置进行匹配然后根据结果执行相应的操作。

      Snort的体系结构由四个基本部分组成:

      ·嗅探器。网络嗅探器允许应用程序或者硬件设备捕获网络数据流。就因特网而言,它通常由IP流量组成,但是在本地局域网和遗留网络中,它可能是其他的协议栈,例如IPX和AppleTalk流量。

      ·预处理器。预处理器接收原数据包并由相关的插件处理,如RPC插件, HTTP插件,端口扫描插件等。这些插件是针对数据包中特定仔为的。一旦数据包具有特定类型的"行为",它将被发送到检测引擎。

      ·检测引擎。检测引擎是Snort中基于签名的入侵检蹦系统的主体。检测引擎接收来自预处理器及其插件的数据,这些数据会通过一系列规则的检测。如果规则与数据包中的数据匹配,数据将送往警戒处理器。

      ·输出。Snort数据如果与引擎内的某规则相匹配则触发警报。警报将通过网络连接、UNIX套接字、Windows 弹出窗口(SMB服务信息块)或者SNMP陷阱服务、Emai1等方式发出,并记录日志,警报还会存储到一个SQL数据库,譬如 MySQL和Postgres等。

      Snort的原理过程

      (1)数据收集:snort使用libpcap收集数据

      (2)数据分析:包含包解码和探测引擎两部分。包解码为探测引擎准备数据,探测引擎按照启动时加载的规则,对每个数据进行分析。

      (3)日志记录/告警记录:日志和告警时两个不同的子系统。日志将包解码收集到的信息记录下来,默认情况下,写到/var/log/snort文件夹中,告警日志会记录到/var/log/snort/alert 文件中。

      简单的画个原理图,表示数据流向

    IDS工具-Snort的认识以及实例测试_Snort_IDS_网络安全_操作系统_课课家 

      实例测试

      Snort是一款轻量级的免费入侵检测系统,作为免费系统其功能性肯定不能与专业的入侵检测产品相比,但是作为受到用户广泛追捧的Snort必然有其优势所在。今天我们就以测试Snort的实例,简单接触一下Snort这款入侵检测系统。

      测试Snort环境RH Enterprise AS3、4

      一、安装Snort:

      1)先安装pcre目录里的pcre-7.0.tar.gz

      方法:

      tar zxvf pcre-7.0.tar.gz

      cd pcre-7.0

      ./configure

      make

      make install

      2)安装snort-2.4.2.tar.gz

      方法同上

      3)解压Snort规则包snortrules-pr-2.4.tar.tar

      方法tar zxvf snortrules-pr-2.4.tar.tar

      4)安装Snort插件snortsam-src-2.50.tar.tar

      方法同1)

      以上安装好后执行:

      mkdir /etc/snort

      mkdir /var/log/snort

      cp /chameleon/Snort/snort-2.4.2/etc/snort.conf /etc/snort

      cp /chameleon/Snort/snort-2.4.2/etc/*.map /etc/snort

      cp /chameleon/Snort/snort-2.4.2/etc/*.config /etc/snort

      mkdir /chameleon/Snort/snort-2.4.2/rules/

      cp /chameleon/Snort/snort-2.4.2/rules/*.rules /etc/snort

      以上根绝个人安装目录不同可作适当修改

      二、修改配置文件:

      vi /etc/snort/snort.conf

      修改其中规则路径:

      var RULE_PATH /etc/snort

      三、启动snort:

      后台启动:

      snort -c /etc/snort/snort.conf -D

      我们可以用ps -aux|grep snort来看一下Snort是否成功启动了

      启动成功

      四、测试snort:

      在运行Snort的主机上执行tail -f /var/log/snort/alert命令实时查看警告日志:

      然后我在另一台机器上用hping2工具,也可以直接用ping命令来测试:

      hping2 -x 运行snort主机的ip 或 ping 运行snort主机的ip

      注意看了,他的日志在不断记录着,当我停止后他就没再记录了

      这是会看到alert日志不听的告警,如下:

      [**] [1:368:6] ICMP PING BSDtype [**]

      [Classification: Misc activity] [Priority: 3]

      03/06-10:28:39.272055 218.206.116.41 -> 192.168.1.7

      ICMP TTL:55 TOS:0x0 ID:8 IpLen:20 DgmLen:84 DF

      Type:8 Code:0 ID:32882 Seq:8 ECHO

      [Xref => http://www.whitehats.com/info/IDS152]

      [**] [1:366:7] ICMP PING *NIX [**]

      [Classification: Misc activity] [Priority: 3]

      03/06-10:28:39.272055 218.206.116.41 -> 192.168.1.7

      ICMP TTL:55 TOS:0x0 ID:8 IpLen:20 DgmLen:84 DF

      Type:8 Code:0 ID:32882 Seq:8 ECHO

      [**] [1:384:5] ICMP PING [**]

      [Classification: Misc activity] [Priority: 3]

      03/06-10:28:39.272055 218.206.116.41 -> 192.168.1.7

      ICMP TTL:55 TOS:0x0 ID:8 IpLen:20 DgmLen:84 DF

      Type:8 Code:0 ID:32882 Seq:8 ECHO

      [**] [1:368:6] ICMP PING BSDtype [**]

      [Classification: Misc activity] [Priority: 3]

      03/06-10:28:40.281751 218.206.116.41 -> 192.168.1.7

      ICMP TTL:55 TOS:0x0 ID:9 IpLen:20 DgmLen:84 DF

      Type:8 Code:0 ID:32882 Seq:9 ECHO

      [Xref => http://www.whitehats.com/info/IDS152]

      [**] [1:366:7] ICMP PING *NIX [**]

      [Classification: Misc activity] [Priority: 3]

      03/06-10:28:40.281751 218.206.116.41 -> 192.168.1.7

      ICMP TTL:55 TOS:0x0 ID:9 IpLen:20 DgmLen:84 DF

      Type:8 Code:0 ID:32882 Seq:9 ECHO

      [**] [1:384:5] ICMP PING [**]

      [Classification: Misc activity] [Priority: 3]

      03/06-10:28:40.281751 218.206.116.41 -> 192.168.1.7

      ICMP TTL:55 TOS:0x0 ID:9 IpLen:20 DgmLen:84 DF

      Type:8 Code:0 ID:32882 Seq:9 ECHO

      相信通过上面的基本知识讲解以及测试实例,大家对于Snort已经不陌生了,希望小编的这篇文能对大家学习Snort有所帮助,感谢阅读!有什么不明白的或者还有其他内容需要学习的欢迎来课课家教育找小编唠嗑唠嗑。

课课家教育

未登录

1