上次我们介绍到USM,想必大家对它已经有一个概貌的认识了,今天我要与大家分享的是安全管理平台百宝箱中的入 侵 检 测 系统[IDS],入 侵 检 测 系统是对防火墙的补充,有一个经典的比喻:防火墙相当于一个把门的门卫,对于所有进出大门的人员进行审核:只有符合安全要求的人,就是那些有入门许可证的人才可以进、出大门;门卫可以防止小偷进入大楼,但不能保证小偷100%地被拒之门外,而且对于那些本身就在大门内部的,以及那些具备入门证的、以合法身份进入了大门的人,是否做好事也无法监控,这时候就需要依靠入 侵 检 测 系统来进行审计和控制,发现异常情况并发出警告。下面就让我们一起聊一聊Suricata吧。

1、简介

随着安全威胁的不断发生,入 侵 检 测 系统(IDS)在如今的数据中心环境中显得尤为必要。然而,随着越来越多的服务器将他们的网卡升级到10GB/40GB以太网,对如此线路上的硬件进行计算密集型的检测越来越困难。其中一种提升入 侵 检 测 系统性能的途径是多线程入 侵 检 测 系统,它将 CPU 密集型的深度包检测工作并行的分配给多个并发任务来完成。这样的并行检测可以充分利用多核硬件的优势来轻松提升入 侵 检 测 系统的吞吐量。在这方面有两个知名的开源项目,分别是 Suricata 和 Bro。

IPS:预防系统(IPS: Intrusion Prevention System)是网络安全设施,是对防病毒软件(Antivirus Programs)和防火墙(Packet Filter, Application Gateway)的补充。 预防系统(Intrusion-prevention system)是一部能够监视网络或网络设备的网络资料传输行为的计算机网络安全设备,能够即时的中断、调整或隔离一些不正常或是具有伤害性的网络资料传输行为。是新一代的入 侵 检 测 系统(IDS)。

IDS:英文“Intrusion Detection Systems”的缩写,中文意思是“入 侵 检 测 系统”。依照一定的安全策略,通过软、硬件,对网络、系统的运行状况进行监视,尽可能发现各种企图、行为,以保证网络系统资源的机密性、完整性和可用性。

2、IDS 检测系统模型

目前的入 侵 检 测 系统模型,主要有两个国际组织在对IDS进行通用模型标准化的工作,分别是Common Intrusion Detection Framework(CIDF)和隶属于IETF(Internet Engineering Task Force)的Intrusion Detection Working Group(IDWG)。

suricata架构

报文检测系统通常四大部分,报文获取、报文解码、报文检测、日志记录;suricata按不同的功能安装模块划分,一个模块的输出是另一个模块的输入,suricata通过线程将模块串联起来。

suricata各模块功能

Receive:从NFQUEUE中接收数据包,并将封装在Packet结构中,然后放入下一个缓冲区。

Decode:对数据包进行解码,主要是对数据包头部信息进行分析并保存在Packet结构中。

StreamTCP:对数据包进行TCP流重组。

Detect:检测数据包是否包含可疑行为。

Verdict:对检测后的数据包进行判定,并将判定结果告诉内核(通过ipq_set_verdict函数),方便内核对数据包进行接收、丢弃等处理。

RespondReject:通过libnet对那些要执行Reject操作的数据包进行相应的回应。

3、安装

官方软件包

Suricata(稳定)版本是4.0.3 12月6日发布的2017年。

Mac / FreeBSD / UNIX / Linux / Windows:

suricata-4.0.3.tar.gz

PGP签名:suricata-4.0.3.tar.gz.sig

Windows安装程序(win32):Suricata-4.0.1-1-32bits.msi

Suricata(旧的稳定)版本是3.2.5 12月6日发布的2017年。

Mac / FreeBSD / UNIX / Linux / Windows:

suricata-3.2.5.tar.gz

PGP签名:suricata-3.2.5.tar.gz.sig

Ubuntu PPA beta (doc)

为了入 侵 检 测 系统本身的安全,也可以将它部署在FreeBSD\OpenBSD上,具说是世界上最安全的操作系统。

部署拓扑

安装软件

# yum install epel-release

# yum -y install gcc libpcap-devel pcre-devel libyaml-devel file-devel \

zlib-devel jansson-devel nss-devel libcap-ng-devel libnet-devel tar make \

libnetfilter_queue-devel lua-devel

# wget https://www.openinfosecfoundation.org/download/suricata-4.0.3.tar.gz

# tar -xvf suricata-4.0.3.tar.gz

# cd suricata-4.0.3

# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-nfqueue --enable-lua

# make

# make install

# ldconfig

安装配置

Suricata 源代码带有默认的配置文件。

# make install-conf

如果没有IDS规则集的话,Suricata 什么用也没有。幸好 Makefile 为我们提供了 IDS 规则集的安装选项。

# make install-rules

结合上面提到的(install-conf和install-rules),将运行(配置和设置)Suricata。

#make install-full

以上的规则安装命令会从 EmergingThreats.net [http://rules.emergingthreats.net/] 上下载可用的社区规则集快照,并且将其存储在 /etc/suricata/rules 目录下。

使用 Suricata 进行监控

当使用 pcap 捕获模式的时候,强烈建议关闭 Suricata 监听网卡上的任何的包卸载(例如 LRO/GRO)功能。这些功能会干扰包的实时捕获行为。

# ethtool -K eth0 gro off lro off [ 关闭eth0 接口的 LRO/GRO 功能 ]

这里要注意,在使用某些网卡的情况下,你会看到如下警告信息。忽略它们就行了,这些信息只不过告诉你你的网卡不支持 LRO 功能而已。***Cannot change large-receive-offload

Suricata 支持许多运行模式,运行模式决定着我们会使用何种线程。

# suricata --list-runmodes [ 查看可用的运行模式 ]

4、总结

如何在一台多核 Linux 服务器上安装 Suricata 检测系统。不同于单线程的 Snort IDS ,Suricata 可以很容易的从多核硬件的多进程特性所带来的好处中获益,定制 Suricata 可以最大化其效能和检测范围。这是目前对suricata的一个整体的认识,接下来需要研究每个模块之间的交互、深入学习suricata是如何收集报文、如何将收集的报文传递给解码模块、解码模块做哪些工作、输出是什么。

常见报错解决方法:

1、YAML safe loading is not available. Please upgrade psych to a version that supports safe loading (>= 2.0).

*** LOCAL GEMS

# rvm install 2.2.7

2、前端页面不显示,netstat -lntp 没有3000端口

rvm use 2.2.7

gem install bundler

bundle install

rake snorby:setup

rails server -e production &

linux 进程suricata,开源USM之IDS suricata相关推荐

  1. Linux进程与线程的区别 详细总结(面试经验总结)

    首先,简要了解一下进程和线程.对于操作系统而言,进程是核心之核心,整个现代操作系统的根本,就是以进程为单位在执行任务.系统的管理架构也是基于进程层面的.在按下电源键之后,计算机就开始了复杂的启动过程, ...

  2. Linux 进程必知必会

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 只是简单的描述了一下 Linux 基本概念,通过几个例子来 ...

  3. linux 进程隐藏常见方法

    一.基于用户空间进程隐藏手法 1.偷梁换柱型 1)隐藏原理 ​ 道理很简单,通过替换系统中常见的进程查看工具(比如ps.top.lsof)的二进制程序,导致原先查看进程相关信息的工具(ps.top.l ...

  4. Linux程序内存跟踪,分享一款Linux进程和内存活动监视神器

    原标题:分享一款Linux进程和内存活动监视神器 像"top "之类的命令行工具使得监视CPU使用率和内存使用率有些困难.这就是我们今天向您介绍vtop的原因, vtop是一个用N ...

  5. 【Linux进程概念】冯 诺依曼体系结构 操作系统 进程 fork 进程状态 优先级

    文章目录 [写在前面] 一.冯 ? 诺依曼体系结构 ?? 体系结构 ?? 数据流向 ?? 实例 二.操作系统 (Operator System) ?? 概念 ?? 计算机体系及操作系统定位 ?? 管理 ...

  6. linux 进程流量统计,Linux进程网络流量统计方法及实现

    1 前言 在某些应用安全场景须要结合进程级网络链接.流入流出流量等数据直接分析出进程的异常.例如,在内网主机上是否存在持续恶意外传敏感数据的现象.在网络监控时发现服务器大量带宽被占用但不清楚由系统具体 ...

  7. 操作系统实验报告linux进程管理,计算机操作系统实验报告三Linux进程基本管理.doc...

    GDOU-B-11-112广东海洋大学学生实验报告书(学生用表) GDOU-B-11-112 实验名称 Linux进程基本管理 课程名称 计算机操作系统 课程号 学院(系) 专业 统 班级 学生姓名 ...

  8. 同样学习Linux, 为何差别这么大? - 论打通Linux进程和内存管理任督二脉

    穆赫兰道和内陆帝国 我在多年的工程生涯中发现很多工程师碰到一个共性的问题:Linux工程师很多,甚至有很多有多年工作经验,但是对一些关键概念的理解非常模糊,比如不理解CPU.内存资源等的真正分布,具体 ...

  9. linux 监控进程重启,linux进程监控与自动重启的简单实现方法

    linux进程监控与自动重启的简单实现方法 目的: linux 下服务器程序会因为各种原因dump掉,就会影响用户使用,这里提供一个简单的进程监控和重启功能. 实现原理: 由定时任务crontab调用 ...

最新文章

  1. java多线程中的异常处理
  2. [crypto]-52-python3中rsa(签名验签加密解密)aes(ecb cbc ctr)hmac的使用,以及unittest测试用
  3. OpenCV背景减法Background Subtraction Methods
  4. for 循环 和 Array 数组对象
  5. C++程序员拼命工作却不顾身体,是不值得的!
  6. 数据科学最常用流程CRISP-DM,终于有人讲明白了
  7. TeamCity : 安装 Server
  8. 分布式应用中的一致性协议
  9. Pandas Window对象
  10. python max_Python max()
  11. 7号团队-团队任务5:项目总结
  12. RedHat 6 创建和扩容LVM卷
  13. postman添加cookie_有了这款IDEA插件,再也不需要postman了
  14. java项目实战 学生信息管理系统(UI界面+连接数据库)
  15. 学习总结-《父与子的编程之旅》chapter 17
  16. 侠客工具盒 v5.0 build 0313 bt
  17. Python笔记 之 居民身份证简单判断
  18. PS2022安装步骤 ps 2022(详细安装方法)
  19. Spring自定义消息转换器替换ResponseBody
  20. IMDB 电影评论情感分类数据集

热门文章

  1. mysql 跨服务器 etl_mysql数据库跨服务器查询【需要确定mysql支持FEDERATED ,可以参照文章内容自己配置】...
  2. 基于JAVA+SSH+MYSQL的鲜花订购系统
  3. c# xls 复制一行_c# – 将excel工作簿中的第一行复制到新的Excel工作簿
  4. ASP.NET Core学习——7
  5. log4j2 日志框架小记
  6. hanlp源码解析之中文分词算法
  7. ARTetris-AR版俄罗斯方块的源码解析
  8. eclipse自动补全设置
  9. 记一次酷派尚锋Y75刷机
  10. Spring4 SpringMVC Hibernate4 Freemaker 集成示例