Suricata介绍

Suricata是一款高性能的网络IDS、IPS和网络安全监控引擎。它是由the Open Information Security Foundation开发,是一款开源的系统。软件的源代码可以通过http://suricata-ids.org/获得。

IDS介绍

IDS是英文“Intrusion Detection Systems”的缩写,中文意思是“入侵检测系统”。专业上讲就是依照一定的安全策略,通过软、硬件,对网络、系统的运行状况进行监视,尽可能发现各种攻击企图、攻击行为或者攻击结果,以保证网络系统资源的机密性、完整性和可用性。做一个形象的比喻:假如防火墙是一幢大楼的门锁,那么IDS就是这幢大楼里的监视系统。一旦小偷爬窗进入大楼,或内部人员有越界行为,只有实时监视系统才能发现情况并发出警告。

IDS在种类上可以分为:

1、主机型IDS

也称基于系统的模型,它是通过分析系统的审计数据来发现可疑的活动,如内存和文件的变化等。其输入数据主要来源于系统的审计日志,一般只能检测该主机上发生的入侵。

这种模型有以下优点:

一是性能价格比高:在主机数量较少的情况下,这种方法的性能价格比可能更高。

二是更加细致:这种方法可以很容易地监测一些活动,如对敏感文件、目录、程序或端口的存取,而这些活动很难在基于协议的线索中发现。

三是视野集中:一旦入侵者得到了一个主机用户名和口令,基于主机的代理是最有可能区分正常的活动和非法的活动的。

四是易于用户剪裁:每一个主机有其自己的代理,当然用户剪裁更方便了。

五是较少的主机:基于主机的方法有时不需要增加专门的硬件平台。

六是对网络流量不敏感:用代理的方式一般不会因为网络流量的增加而丢掉对网络行为的监视。

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

即通过连接在网络上的站点捕获网上的包,并分析其是否具有已知的攻击模式,以此来判别是否为入侵者。当该模型发现某些可疑的现象时也一样会产生告警,并会向一个中心管理站点发出“告警”信号。

基于网络的检测有以下优点:

一是侦测速度快:基于网络的监测器通常能在微秒或秒级发现问题。而大多数基于主机的产品则要依靠对最近几分钟内审计记录的 分析。

二是隐蔽性好:一个网络上的监测器不像一个主机那样显眼和易被存取,因而也不那么容易遭受攻击。由于不是主机,因此一个基于网络的监视器不用去响应ping,不允许别人存取其本地存储器,不能让别人运行程序,而且不让多个用户使用它。

三是视野更宽:基于网络的方法甚至可以作用在网络的边缘上,即攻击者还没能接入网络时就被制止。

四是较少的监测器:由于使用一个监测器就可以保护一个共享的网段,所以你不需要很多的监测器。相反地,如果基于主机,则在每个主机上都需要一个代理,这样的话,花费昂贵,而且难于管理。但是,如果在一个交换环境下,每个主机就得配一个监测器,因为每个主机都在自己的网段上。

五是占资源少:在被保护的设备上不用占用任何资源。

这两种模型具有互补性,基于网络的模型能够客观地反映网络活动,特别是能够监视到主机系统审计的盲区;而基于主机的模型能够更加精确地监视主机中的各种活动。基于网络的模型受交换网的限制,只能监控同一监控点的主机,而基于主机模型装有IDS的监控主机可以对同一监控点内的所有主机进行监控。

2、IPS介绍

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

IPS分类也是基于主机型和网络型两种。

Suricata安装过程

我将介绍Ubuntu系统下载安装过程,其它系统的安装过程可以参考https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Ubuntu_Installation

在开始安装Suricata之前需要将suricata所使用到的一些库安装才行。安装需要的库的命令是:

sudo apt-get -y install libpcre3 libpcre3-dbg libpcre3-dev \
build-essential autoconf automake libtool libpcap-dev libnet1-dev \
libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libcap-ng-dev libcap-ng0 \
make libmagic-dev

Suricata默认的运行模式是IDS,如果你想跑IPS模式则还需要安装

sudo apt-get -y install libnetfilter-queue-dev libnetfilter-queue1 libnfnetlink-dev libnfnetlink0

安装好这些库之后就开始下载源代码,Suricata现在的源代码版本分为稳定版和开发版,现在的稳定版是suricata1.4.7,开发版本是suricata2.0。得到源码可以通过两种形式,

1、直接到官方网站或者是github里面去下载。

2、通过Linux提过的wget命令直接下载

wget http://www.openinfosecfoundation.org/download/suricata-2.0.tar.gz
tar -xvzf suricata-2.0.tar.gz
cd suricata-2.0

因为下载的格式是*.tar.gz所以可以通过tar -xvzf进行解压,或者是通过两步解压缩。先用gunzip解压*.gz,再用tar还原tar打包文件。

接下来就是要建立suricata所需要的文件夹,这个可以通过suricata.yaml文件可以看到,日志文件是放在/var/log/suricata里面,所以先建立日志文件所需目录。

sudo mkdir /var/log/suricata

然后建立配置文件所需目录。

sudo mkdir /etc/suricata

最后再将下载的suricata源代码里面的配置文件拷贝到/etc/suricata目录下,配置文件有3个,分别是classifiction.config、reference.config、suricata.yaml。

sudo cp classification.config /etc/suricata
sudo cp reference.config /etc/suricata
sudo cp suricata.yaml /etc/suricata

这里要注意一下,可能要修改suricata.yaml中的路径,因为suricata启动的时候是安装suricata.yaml配置文件来读取配置文件的。因为我之前遇到suricata.yaml对classification.config和reference.config的路径不是/etc/suricata,如果是这样的话就需要你自己把suricata.yaml中的路径修改成/etc/suricata/classifiction.config或者是reference.config。

这时的准备工作已经做完。最后就是安装suricata,安装suricata的命令很简单可以直接通过./configure就行,也可以使用suricata官网提供的方法。

如果是需要IPS功能则使用

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

也可以使用

./configure && make && make install-rules

make install-rules命令是帮你安装suricata提供的规则文件,这个规则文件是IPS/IDS的核心。也就是通过规则文件suricata才知道哪些数据包是攻击数据包。

最后运行IDS模式的方式是:

sudo suricata -c /etc/suricata/suricata.yaml -i wlan0

你可以自己查看自己的网络端口,通过ifconfig命令。然后将对应的wlan0换成你自己的网络端口号,一般物理口是eth0。不过还是要通过查看之后才能够确定。

到此,Suricata已经可以运行起来了。

如果你要使用Suricata的NFQ模式,也就是IPS inline模式的话还需要配置iptable

sudo iptables -I FORWARD -j NFQUEUE
sudo iptables -I INPUT -j NFQUEUE
sudo iptables -I OUTPUT -j NFQUEUE
sudo iptables -I INPUT -p tcp  -j NFQUEUE
sudo iptables -I OUTPUT -p tcp -j NFQUEUE
sudo iptables -I INPUT -p tcp --sport 80  -j NFQUEUE
sudo iptables -I OUTPUT -p tcp --dport 80 -j NFQUEUE
sudo iptables -I FORWARD -i eth0 -o eth1 -j NFQUEUE
sudo iptables -I FORWARD -i eth1 -o eth0 -j NFQUEUE

配置好iptable之后你可以使用iptable -vnL查看你所配置的规则。结果如下:

这是对tcp的规则配置,iptable的规则以及介绍可以参考http://blog.csdn.net/wang_xya/article/details/18812885

启动NFQ模式的IPS:

sudo suricata -c /etc/suricata/suricata.yaml -q 0

安装Suricata也就完成,接下来我会介绍Suricata的规则库管理以及Suricata的源代码。

suricata的简介以及安装过程相关推荐

  1. 【Burp Suite工具-1】BurpSuite简介及安装过程详解(含please supply the following JVM argument错误提示原因)

    目录 1 Burpsuite简介 2 Burpsuite安装过程 2.1 安装Java环境 2.2 配置环境变量 2.3 Burpsuite绿色版安装 3 总结 4 参考文献 1 Burpsuite简 ...

  2. QIIME 2教程. 01简介和安装 Introduction Install(2020.11开始更新)

    写在前面 QIIME是微生物组领域最广泛使用的分析流程,10年来引用20000+次,2019年Nature杂志评为近70年来人体菌群研究的25个里程碑事件--里程碑16:生物信息学工具助力菌群测序数据 ...

  3. QIIME 2用户文档. 01简介和安装 Introduction Install(2020.2)

    写在前面 QIIME是微生物组领域最广泛使用的分析流程,10年来引用近20000次,2019年Nature杂志评为近70年来人体菌群研究的25个里程碑事件--里程碑16:生物信息学工具助力菌群测序数据 ...

  4. QIIME 2用户文档. 1简介和安装(2019.7)

    写在前面 QIIME是微生物组领域最广泛使用的分析流程,9年来引用量超1.6万次,2019年Nature杂志评为近70年来人体菌群研究的25个里程碑事件.为满足当前大数据.可重复分析的需求,北亚利桑那 ...

  5. QIIME 2用户文档. 1简介和安装(2018.11)

    文章目录 写在前面 QIIME 2优势 入门指南 什么是QIIME 2? 核心概念 安装 原生安装QIIME 2 虚拟机安装 使用VirtualBox方式安装 亚马逊云安装 使用Docker方式安装 ...

  6. 扩增子分析QIIME2(2018.6). 1简介和安装

    扩增子分析QIIME2. 1简介和安装 QIIME2版本 2018.6 简介 优点 学习思路 什么是QIIME 2? 核心概念 安装 原生安装QIIME2 虚拟机安装 使用VirtualBox方式安装 ...

  7. Python学习笔记一简介及安装配置

    Python学习笔记一 参考教程:廖雪峰官网https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e54 ...

  8. 【mycat】简介及安装

    一.简介 1.mycat是什么? Mycat 是数据库中间件.中间件是一类连接软件组件和应用的计算机软件, 以便于软件各部件之间的沟通.tomcat和web都是中间件.而数据库中间件是连接java应用 ...

  9. RabbitMQ简介及其安装

    一.简介 RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件). RabbitMQ服务器是用Erlang语言编写的. 二.工作过程 发布者(Publisher ...

最新文章

  1. 如何用matlab读取npz文件,Python Numpy中数据的常用的保存与读取方法
  2. OpenCV resize函数源码解析——加速方法
  3. 我读了这七本书,写了这篇关于如何高效阅读的文章(转)
  4. 计算机无法安装系统,为什么计算机无法重新安装系统?
  5. zookeeper启动失败排查
  6. django实现图片上传和显示
  7. 二进制转base64
  8. sh(Spring+Spring mvc+hibernate)——IDeptDao.java
  9. python网络平台_python学习(九) 网络编程学习--简易网站服务器
  10. [Origin]图像属性:画图时修改直线的起点和终点、随图层和坐标变化、多y轴图独立编辑线条属性
  11. 腾讯联手华为!将让腾讯游戏越跑越快
  12. mysql函数做条件_MySQL语句优化(三):避免条件字段做函数操作
  13. 22、redis中数据库默认是多少个db 及作用?
  14. iReport 中使用 Chart 图
  15. 【图像压缩】基于matlab GUI哈达玛变换图像压缩【含Matlab源码 845期】
  16. 焕然一新的 Vue 3 中文文档来了
  17. 企业信息化有哪些好处?
  18. 贴吧防删图应该怎么学?【万能的小胡】
  19. 那些年做过的动态图表-实用漂亮的Excel动态图表
  20. PAT_乙级_1012_筱筱

热门文章

  1. Linux_基础指令
  2. 关于IR21的自举电路
  3. stm32实际运用中遇到的问题
  4. NR 5G RRC无线资源控制
  5. React Native JSBundle拆包之原理篇
  6. 【PWA学习与实践】(3) 让你的WebApp离线可用
  7. 深入理解z-index
  8. linux基本命令之rsync
  9. MySQL集群(一)之主从复制
  10. Android Studio问题集锦