snort 经常用作入侵检测系统(IDS),进一步可以配置为入侵防御系统(IPS)。snort使用数据采集器(daq)监听防火墙数据包队列,配合snort规则动作drop、alert等处理数据包,防火墙在snort启动后添加链表队列。报文经过防火墙时,将交给snort来处理,触发入侵检测规则时立刻响应动作,屏蔽数据包。其实,入侵防御系统应该直连在网络环境当中,需要配置网桥。snort监听网桥的功能,防火墙更加要支持网桥,网桥也可以配置成透明的模式。这里只是简单的尝试snort的IPS模式,配置在单机上,屏蔽访问单机而且触发规则的数据包,下面是配置与测试过程。

1、准备环境

1.1、系统、软件版本

环境:ubuntu15.10+snort2.9.8.0+daq2.0.4(注因为已经安装过snort的入侵检测模式,snort与daq是重新编译安装)

2.1、依赖库

snort配置ips模式,先把数据采集器(daq)配置支持nfq模式,为daq安装netfilter_queue、libnfnetlink、libmnl。下载相应源码包解压编译安装,也可以尝试命令方式安装,不过我使用了源码方式安装。同时,安装上面依赖包的开发包,因为源码编译daq需要开发包支持。然后去下载libdnet源码包解压编译安装。

2、系统安装过程

2.1、数据采集器daq

数据采集器(daq)配置支持nfq模式,命令行输入如:

     liang@ubuntu:~/snort/daq$ sudo ./configure

打印如下结果即配置成功,可以进一步编译安装,否则重新检查安装依赖库步骤是否正确。可见NFQ DAQ 模式为yes。

     Build AFPacket DAQ module.. : yesBuild Dump DAQ module...... : yesBuild IPFW DAQ module...... : yesBuild IPQ DAQ module....... : noBuild NFQ DAQ module....... : yesBuild PCAP DAQ module...... : yesBuild netmap DAQ module...... : no

编译链接daq,命令行输入:

     liang@ubuntu:~/snort/daq$ sudo make

安装daq命令:

     liang@ubuntu:~/snort/daq$ sudo make install

查看snort daq支持的功能,命令行输入如下命令:

      liang@ubuntu:~/snort_ips/libdnet-1.11$ snort --daq-list

打印如下结果,snort daq并没有支持nfq,重新编译入侵检测系统ids:

      Available DAQ modules:pcap(v3): readback live multi unprivipfw(v3): live inline multi unprivdump(v2): readback live inline multi unprivafpacket(v5): live inline multi unpriv

2.2、入侵检测snort

命令行输入如下命令编译安装:

      liang@ubuntu:~/snort/snort$ sudo make cleanliang@ubuntu:~/snort/snort$ sudo ./configureliang@ubuntu:~/snort/snort$ sudo makeliang@ubuntu:~/snort/snort$ sudo make install

再次查看snort daq支持的功能,输入命令:

      liang@ubuntu:~/snort/snort$ sudo snort --daq-list

已经支持nfq模式,可以开始IPS模式的配置与测试:

      Available DAQ modules:pcap(v3): readback live multi unprivnfq(v7): live inline multiipfw(v3): live inline multi unprivdump(v2): readback live inline multi unprivafpacket(v5): live inline multi unpriv

3、简单规则设计

3.1、添加两条drop规则

      drop tcp any any -> 192.168.213.170 80 (msg:"Drop http:80";sid:26287)drop icmp any any -> 192.168.213.170 any (msg:"Drop ping";sid:8886288)

3.2、drop与alert同在

      alert icmp any any -> 192.168.213.170 any (msg:"ICMP PING";sid:8886288)drop tcp any any -> 192.168.213.170 80 (msg:"Drop http:80";sid:26287)

3.3、只有drop规则存在

      drop tcp any any -> 192.168.213.170 80 (msg:"Drop http:80";sid:26287)

4、snort与iptables联动

4.1、说明

首先启动snort,然后添加防火墙规则。可以使用shell脚本或者c程序等监听snort启动成功后,添加防火墙规则,防火墙规则的设置与恢复可以写在文件中,使用iptables命令完成。snort只可以使用一个队列,防火墙里面可以添加多条规则到一个队列。

4.2、snort启动

snort启动命令如下:

      sudo snort -Q --daq nfq --daq-var device=eth0 --daq-var queue=1 -c /etc/snort/etc/snort.conf

4.3、iptables 队列

防火墙队列如下,简单的配置过程:

      sudo /usr/sbin/iptables -t nat -I PREROUTING -j NFQUEUE --queue-num 1sudo /usr/sbin/iptables -I FORWARD -j NFQUEUE --queue-num 1sudo /usr/sbin/iptables -t input -I PREROUTING -j NFQUEUE --queue-num 1

查看防火墙filter表规则:

      liang@ubuntu:~$ sudo iptables -nL

打印如下:

      Chain INPUT (policy ACCEPT)target     prot opt source               destination         NFQUEUE    all  --  0.0.0.0/0            0.0.0.0/0            NFQUEUE num 1Chain FORWARD (policy ACCEPT)target     prot opt source               destination         NFQUEUE    all  --  0.0.0.0/0            0.0.0.0/0            NFQUEUE num 1Chain OUTPUT (policy ACCEPT)target     prot opt source               destination 

查看防火墙nat表规则:

      liang@ubuntu:~$ sudo iptables -t nat -nL

打印如下:

      Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
NFQUEUE    all  --  0.0.0.0/0            0.0.0.0/0            NFQUEUE num 1
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination 

5、测试

5.1、添加两条drop规则

本机监听alert输出文件:

      liang@ubuntu:~$ tail -f /var/log/snort/alert  

另外一台机器访问本机80端口,监听输出如下,而且访问80端口失败:

[**] [1:26287:0] "Drop http:80" [**]
[Priority: 0]
03/28-18:15:37.362404 192.168.213.162:40640 -> 192.168.213.170:80
TCP TTL:64 TOS:0x0 ID:15682 IpLen:20 DgmLen:60 DF
******S* Seq: 0x3DB5D5B  Ack: 0x0  Win: 0x7210  TcpLen: 40
TCP Options (5) => MSS: 1460 SackOK TS: 16408601 0 NOP WS: 7 [**] [1:26287:0] "Drop http:80" [**]
[Priority: 0]
03/28-18:15:37.595837 192.168.213.162:40642 -> 192.168.213.170:80
TCP TTL:64 TOS:0x0 ID:17709 IpLen:20 DgmLen:60 DF
******S* Seq: 0x8619257E  Ack: 0x0  Win: 0x7210  TcpLen: 40
TCP Options (5) => MSS: 1460 SackOK TS: 16408659 0 NOP WS: 7 [**] [1:26287:0] "Drop http:80" [**]
[Priority: 0]
03/28-18:15:37.731718 192.168.213.162:40644 -> 192.168.213.170:80
TCP TTL:64 TOS:0x0 ID:6892 IpLen:20 DgmLen:60 DF
******S* Seq: 0xA1C7A99  Ack: 0x0  Win: 0x7210  TcpLen: 40
TCP Options (5) => MSS: 1460 SackOK TS: 16408693 0 NOP WS: 7 [**] [1:26287:0] "Drop http:80" [**]
[Priority: 0]
03/28-18:15:37.884915 192.168.213.162:40646 -> 192.168.213.170:80
TCP TTL:64 TOS:0x0 ID:42308 IpLen:20 DgmLen:60 DF
******S* Seq: 0x495EC5DF  Ack: 0x0  Win: 0x7210  TcpLen: 40
TCP Options (5) => MSS: 1460 SackOK TS: 16408731 0 NOP WS: 7 [**] [1:26287:0] "Drop http:80" [**]
[Priority: 0]
03/28-18:15:38.082540 192.168.213.162:40648 -> 192.168.213.170:80
TCP TTL:64 TOS:0x0 ID:7605 IpLen:20 DgmLen:60 DF
******S* Seq: 0xEF657D78  Ack: 0x0  Win: 0x7210  TcpLen: 40
TCP Options (5) => MSS: 1460 SackOK TS: 16408781 0 NOP WS: 7 [**] [1:26287:0] "Drop http:80" [**]
[Priority: 0]
03/28-18:15:38.333060 192.168.213.162:40650 -> 192.168.213.170:80
TCP TTL:64 TOS:0x0 ID:61398 IpLen:20 DgmLen:60 DF
******S* Seq: 0x64518EDD  Ack: 0x0  Win: 0x7210  TcpLen: 40
TCP Options (5) => MSS: 1460 SackOK TS: 16408843 0 NOP WS: 7 

另一台机器ping本地主机,打印如下,而且ping失败:

[**] [1:8886288:0] "Drop ping" [**]
[Priority: 0]
03/28-18:16:50.932352 192.168.213.162 -> 192.168.213.170
ICMP TTL:4 TOS:0x0 ID:36821 IpLen:20 DgmLen:84 DF
Type:8  Code:0  ID:41134   Seq:1  ECHO[**] [1:8886288:0] "Drop ping" [**]
[Priority: 0]
03/28-18:16:51.940781 192.168.213.162 -> 192.168.213.170
ICMP TTL:4 TOS:0x0 ID:36847 IpLen:20 DgmLen:84 DF
Type:8  Code:0  ID:41134   Seq:2  ECHO[**] [1:8886288:0] "Drop ping" [**]
[Priority: 0]
03/28-18:16:52.941954 192.168.213.162 -> 192.168.213.170
ICMP TTL:4 TOS:0x0 ID:37040 IpLen:20 DgmLen:84 DF
Type:8  Code:0  ID:41134   Seq:3  ECHO[**] [1:8886288:0] "Drop ping" [**]
[Priority: 0]
03/28-18:16:53.941261 192.168.213.162 -> 192.168.213.170
ICMP TTL:4 TOS:0x0 ID:37191 IpLen:20 DgmLen:84 DF
Type:8  Code:0  ID:41134   Seq:4  ECHO[**] [1:8886288:0] "Drop ping" [**]
[Priority: 0]
03/28-18:16:54.941031 192.168.213.162 -> 192.168.213.170
ICMP TTL:4 TOS:0x0 ID:37319 IpLen:20 DgmLen:84 DF
Type:8  Code:0  ID:41134   Seq:5  ECHO[**] [1:8886288:0] "Drop ping" [**]
[Priority: 0]
03/28-18:16:55.941207 192.168.213.162 -> 192.168.213.170
ICMP TTL:4 TOS:0x0 ID:37535 IpLen:20 DgmLen:84 DF
Type:8  Code:0  ID:41134   Seq:6  ECHO[**] [1:8886288:0] "Drop ping" [**]
[Priority: 0]
03/28-18:16:56.941222 192.168.213.162 -> 192.168.213.170
ICMP TTL:4 TOS:0x0 ID:37771 IpLen:20 DgmLen:84 DF
Type:8  Code:0  ID:41134   Seq:7  ECHO

查看snort终端打印信息,看到屏蔽了29个数据包,加上以上打印信息证明snort IPS模式生效:

Commencing packet processing (pid=3466)
Decoding Raw IP4
^C*** Caught Int-Signal
===============================================================================
Run time for packet processing was 261.437100 seconds
Snort processed 763 packets.
Snort ran for 0 days 0 hours 4 minutes 21 secondsPkts/min:          190Pkts/sec:            2
===============================================================================
Memory usage summary:Total non-mmapped bytes (arena):       274706432Bytes in mapped regions (hblkhd):      21590016Total allocated space (uordblks):      102918272Total free space (fordblks):           171788160Topmost releasable block (keepcost):   59472
===============================================================================
Packet I/O Totals:Received:          763Analyzed:          763 (100.000%)Dropped:            0 (  0.000%)Filtered:            0 (  0.000%)
Outstanding:            0 (  0.000%)Injected:           29
===============================================================================

5.2、drop与alert同在

因为配置了 alert icmp any any -> 192.168.213.170 any (msg:"ICMP PING";sid:8886288) 规则,ping操作可以完成,但是ping操作被报警记录,此时像是入侵检测   模式,但是屏蔽的80端口仍然不能访问,而且被记录在报警日志里面。同时,snort终端也有打印屏蔽数据包的信息。

5.3、只有drop规则存在

此时ping操作可以完成,没有被记录到日志。而访问80端口让然出现上面的情况,证明snort IPS模式配置成功,屏蔽数据的功能有snort根据规则动作来完成。

Snort IPS入侵防御系统模式相关推荐

  1. Linux -- 利用IPS(入侵防御系统) 构建企业Web安全防护网

    一.IPS系统简介 (应用层上应用) 防火墙只在网络层上应用,IPS 和防火墙相比,检测及过滤功能更为强大,它通过串联在网络主干线路上,对防火 墙所不能过滤的攻击进行过滤.这样一个两级的过滤模式,可以 ...

  2. 入侵防御系统IPS,网络设计的5大原则

    互联网高速发展,使我们面临的网络安全威胁也日益严重.网络复杂度越来越高,漏洞不断涌现.黑客攻击.蠕虫病毒.木马后门.间谍软件等威胁泛滥,机密数据被盗窃,重要数据被篡改.破坏,遭受了严重的经济损失. 社 ...

  3. Packet Tracer - 使用 CLI 配置 IOS 入侵防御系统 (IPS)

    Packet Tracer - 使用 CLI 配置 IOS 入侵防御系统 (IPS) 拓扑图 地址分配表 设备 接口 IP 地址 子网掩码 默认网关 交换机端口 R1 G0/1 192.168.1.1 ...

  4. 视频教程-思科安全IPS/IDS入侵防御系统-防护加固

    思科安全IPS/IDS入侵防御系统 拼客学院全栈安全主讲老师,原担任国内某集成商网络项目工程师,有6年IT项目经验,3年思科和华为课程授课经验. 熟悉思科.华为.中兴等设备的理论和部署. 授课风格严禁 ...

  5. sangfor设备升级系统_H3C IPS入侵防御系统配置

    一.防火墙IPS介绍 防火墙IPS功能需要安装License才能使用.License过期后,IPS功能可以采用设备中已有的IPS特征库正常工作,但无法升级特征库. 配置前请在防火墙界面"系统 ...

  6. 什么是入侵防御系统(IPS)?底层原理是什么?

    入侵防御系统(IPS)是一种网络安全设备,旨在监视网络流量并根据预定义的规则或策略检测和阻止可能的网络攻击.IPS可以在网络边界.数据中心.云环境等位置部署,以防止来自外部和内部网络的攻击. IPS的 ...

  7. 【计算机系统和网络安全技术】第九章:防火墙与入侵防御系统

    第九章:防火墙与入侵防御系统 1.防火墙的必要性 与Internet的连接性的非常重要的 • 会对机构产生威胁 • 保护局域网的一种有效方式 • 防火墙设置在驻地网和 Internet 之间,以建立二 ...

  8. Web的入侵防御系统的设计_服务器,Web的入侵防御系统的设计分享

    Web的入侵防御系统的设计分享 0引言 随着网络技术的不断发展和深入应用,人们对网络的安全性和可管理性的要求也越来越高,与此同时网络hacker的攻击方式,也变得越来越多样化,技术的复杂程度也越来越高 ...

  9. 网络入侵防御系统全解

    网络入侵防御系统监控和分析企业的网络流量来发现恶意活动,并通过切断和/或阻止相关网络连接来拦截这些活动.多年来,IPS一直被用在核心网络位置,例如非常靠近防火墙来发现其他安全技术无法检测到的各种基于网 ...

  10. IDS入侵检测IPS入侵防御

    学习笔记 什么是入侵 入侵检测系统-IDS IDS特点 主动发起检测 检测入侵特征-发送通知到阻断设备 通常情况下旁挂 在企业网络中,和防火墙联动 传统fw加IDS弊端 入侵防御系统-IPS IDS与 ...

最新文章

  1. kernfs_link_sibling
  2. android游戏开发笔记(0)——游戏开发分析及开发所需知识
  3. 第六周项目一-分数类的雏形(2)
  4. Django1.11模型使用
  5. java 堆栈 对象_在Java中,哪些对象放在堆栈上,哪些放在堆上?
  6. linux删文件进程叫什么,Linux find 查找 并删除文件 杀掉进程
  7. Linux学习笔记三--vim
  8. Java Eclipse插件
  9. 工作398-关于e.currentTarget.dataset的取值。
  10. 7_python基础—while循环应用1-100累加和
  11. SpringBoot的Bean之基本定义与使用
  12. lede 插件_【PS插件】神器在手不怕图片模糊
  13. 虚拟化与私有云的区别
  14. [svc]mousedos网络批量部署xp
  15. TeamWork#3,Week5,Bing Input Method vs Sogou Input Method
  16. JAVA与js加密解密我常用的方法
  17. Wordpress Theme 主题森林商城有些什么?
  18. 此iphone尚未备份显示未连接服务器,iPhone 出现“尚未备份”的提示,如何取消?...
  19. 德州学院计算机系吧,任传成(计算机系)老师 - 德州学院 - 院校大全
  20. 怎么在微信朋友圈中发布长视频,不妨来看看,怎样将长视频发布到朋友圈

热门文章

  1. windows 任务栏点击无反应,电脑没有任务栏怎么办
  2. Openstack Integration with VMware vCenter by Devstack and Opencontrail
  3. 新手小白,做二次剪辑的必备工具,帮你快人一步
  4. 计算机程序员的英文简历,电脑程序员个人英文简历范文
  5. xgene:肿瘤相关基因 EGFR,,Her2,,TP53,,ALK
  6. word文档如何插入目录
  7. Python调用有道智云文本翻译API接口实现“智能”伪原创
  8. 汽车之家各种车型参数爬虫
  9. 三阶魔方复原操作方法
  10. ccy影响因子版270ms