现在的位置: 首页 > 综合 > 正文

suricata的简介以及安装过程

2014年08月29日 ⁄ 综合 ⁄ 共 4354字 ⁄ 字号 评论关闭

之前也没有怎么写过blog。所以很多地方可能不对,请大家多多包涵。

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的源代码。

如果有问题请大家及时提出以方便我更改。谢谢大家吐舌头吐舌头吐舌头

抱歉!评论已关闭.