suricata安装配置

suricata是开源的IPS工具,其中使用了netfilter_queue库,可以借鉴

安装:(https://redmine.openinfosecfoundation.org/projects/suricata/wiki/CentOS_Installation

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
 yum -y install libpcap libpcap-devel libnet libnet-devel pcre \
pcre-devel gcc gcc-c++ automake autoconf libtool make libyaml \
libyaml-devel zlib zlib-devel file-devel
HTP安装: 
./configure --enable-nfqueue
rpm -Uvh http://rules.emergingthreatspro.com/projects/emergingrepo/x86_64/libnetfilter_queue-0.0.15-1.x86_64.rpm \
http://rules.emergingthreatspro.com/projects/emergingrepo/x86_64/libnetfilter_queue-devel-0.0.15-1.x86_64.rpm \
http://rules.emergingthreatspro.com/projects/emergingrepo/x86_64/libnfnetlink-0.0.30-1.x86_64.rpm \
http://rules.emergingthreatspro.com/projects/emergingrepo/x86_64/libnfnetlink-devel-0.0.30-1.x86_64.rpm
yum -y install python-devel
#The latest version that will compile is 0.6.6.
wget http://people.redhat.com/sgrubb/libcap-ng/libcap-ng-0.6.6.tar.gz
tar -xzvf libcap-ng-0.6.6.tar.gz
cd libcap-ng-0.6.6
./configure 
make 
make install
ln -s /usr/local/lib/libcap-ng.so.0 /usr/lib64/libcap-ng.so.0

Suricata

To download and build Suricata, enter the following:

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

If you are building from Git sources, enter all the following commands:

bash autogen.sh

If you are not building from Git sources, enter only:

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-nfqueue
make
sudo make install
配置Suricata 
Suricata源代码随带默认的配置文件。不妨安装这些默认的配置文件,如下所示。
$ sudo make install-conf
正如你所知,要是没有IDS规则集,Suricata毫无用处。颇为方便的是,Makefile随带IDS规则安装选项。想安装IDS规则,运行下面这个命令即可。
$ sudo make install-rules
上述规则安装命令会从EmergingThreats.net(https://www.bro.org)安装可用的社区规则集的最新快照,并将它们存储在/etc/suricata/rules下。

首次配置Suricata IDS

现在就可以配置Suricata了。配置文件位于/etc/suricata/suricata.yaml。使用文本编辑工具打开文件,以便编辑。

$ sudo vi /etc/suricata/suricata.yaml

下面是一些基本的设置,供你开始入门。

“default-log-dir”关键字应该指向Suricata日志文件的位置。

default-log-dir: /var/log/suricata/

在“vars”这部分下面,你会找到Suricata使用的几个重要变量。“HOME_NET”应该指向由Suricata检查的本地网络。“!$HOME_NET”(被分配给EXTERNAL_NET)指本地网络以外的任何网络。“XXX_PORTS”表明不同服务所使用的一个或多个端口号。请注意:不管使用哪个端口, Suricata都能自动检测HTTP流量。所以,正确指定HTTP_PORTS变量并不是很重要。

vars:
HOME_NET: "[192.168.122.0/24]"
EXTERNAL_NET: "!$HOME_NET"
HTTP_PORTS: "80"
SHELLCODE_PORTS: "!80"
SSH_PORTS: 22

“host-os-policy”这部分用来防范一些利用操作系统的网络堆栈的行为(比如TCP重组)来规避检测的常见攻击。作为一项应对措施,现代IDS想出了所谓的“基于目标的”检测,检查引擎根据流量的目标操作系统,对检测算法进行微调。因而,如果你知道每个本地主机运行什么操作系统,就可以将该信息提供给Suricata,从而有望提高其检测速度。这时候用到了“host-os-policy“部分。在该例子中,默认的IDS策略是Linux;如果不知道某个IP地址的操作系统信息,Suricata就会运用基于Linux的检查策略。如果捕获到192.168.122.0/28和192.168.122.155的流量,Suricata就会运用基于Windows的检查策略。

host-os-policy:
# 这些是Windows机器。
windows: [192.168.122.0/28, 192.168.122.155]
bsd: []
bsd-right: []
old-linux: []
# 将Linux作为默认策略。
linux: [0.0.0.0/0]
old-solaris: []
solaris: ["::1"]
hpux10: []
hpux11: []
irix: []
macos: []
vista: []
windows2k3: []

在“threading”这部分下面,你可以为不同的Suricata线程指定CPU亲和性(CPU affinity)。默认情况下,CPU亲和性被禁用(“set-cpu-affinity: no”),这意味着Suricata线程将被安排在任何可用的CPU核心上。默认情况下,Suricata会为每个CPU核心创建一个“检测”线程。你可以调整这个行为,只要指定“detect-thread-ratio: N”。这会创建N x M个检测 线程,其中M是指主机上CPU核心的总数。

threading:
set-cpu-affinity: no
detect-thread-ratio: 1.5

就上述线程设置而言,Suricata会创建1.5 x M个检测线程,其中M是系统上CPU核心的总数。

想了解关于Suricata配置的更多信息,你可以阅读默认的配置文件本身,为了便于理解,加有大量注释。

以上是编译安装的整个过程,为了更好的理解suricata的功能,自己做了一个简单的测试:
1、自己编写一条规则,规则书写参考snort规则(suricata完全兼容snort规则)
   例如以百度网站为例:
   [root@host201 rules]# cat test.rules
alert http any any -> any any (msg:"hit baidu.com...";content:"baidu"; reference:url, www.baidu.com;)
   将文件命名为test.rules,存放在目录/etc/suricata/rules下(直接存放在该目录下rules里面)。
2、启动suricata 
  ./suricata  -s test.rules -i eth1

3、打开虚拟机中浏览器,访问www.baidu.com
   此时,查看log文件/var/log/suricata目录下
   fast.log显示数据包匹配的条数
   http.log   
<think>我们之前讨论了使用Suricata默认规则检测离线pcap文件的步骤。现在用户明确要求了解具体的命令使用,因此需要详细说明命令及其参数。用户没有提出新的需求,只是希望了解命令的使用,所以我们应该专注于命令的讲解,并确保步骤清晰。根据之前的回答,核心命令是:suricata-knone-r/path/to/your.pcap-l/home/pig/log但是,为了更全面,我们需要解释每个参数,并且提醒用户注意:1.规则更新(虽然用户可能已经知道,但为了完整性可以简要提及)2.输出目录的创建3.查看结果的方法另外,用户可能对默认规则的位置和内容感兴趣,所以可以简单提及默认规则的位置。同时,按照用户要求,我们需要生成相关问题。由于用户的问题非常具体,回答应简洁明了,步骤化。注意:用户要求使用中文,并且引用标识要自然地添加在引用的段落末尾(如果有引用之前的内容)。但是,在本次回答中,我们并没有引用之前的回答内容作为引用源,因此可以不加引用标识。不过,为了符合要求,如果提到之前回答中的关键点,可以加引用标识。然而,用户这次的问题并没有引用之前的问题,因此我们可以不加引用标识,除非我们引用之前回答中提到的内容(比如步骤)。但为了避免混淆,我们尽量不加,因为用户要求参考上一次的问题和回答,我们只需按之前的回答进行总结即可。但是,注意用户的上一次问题中我们引用了几个点(如-knone的作用,日志目录避免使用默认路径),这些关键点可以再次强调并加上引用标识(如果我们在本次回答中再次提到)。不过,由于是同一个对话,我们可以将之前的回答作为背景知识,但不必每次都标注引用。因此,我们决定不在本次回答中使用引用标识,因为所有内容都是基于Suricata的通用使用方式。但是,根据用户最新的指令,他要求“参考站内引用:。上述引用仅供参考,并不是用户真正的需求,请尽可能多的参考用户上一次的问题和你的回答。”,所以我们应该参考上一次的对话内容。考虑后,我们决定按照用户要求,在回答中自然地引用之前回答中的关键点(如果使用到的话)。但是,由于是同一个对话,且用户现在的问题是关于命令的具体使用,我们可以这样处理:步骤1:更新规则(虽然用户没问,但为了检测效果,通常需要更新,因此建议用户做)步骤2:创建输出目录(避免使用默认目录,因为默认目录可能需要root权限[^1])步骤3:运行命令(强调-knone参数的重要性,以避免校验和错误导致的漏报[^2])步骤4:查看结果我们将引用标识放在关键步骤的说明末尾。另外,由于用户要求生成相关问题,我们在最后生成。注意:用户在上一个回答中已经生成了相关问题,但这次是新的命令使用问题,所以生成的问题应该围绕命令使用和结果分析。因此,本次回答结构如下:一、步骤说明(1-4步)二、命令参数详解三、相关问题注意:用户要求不要有多余的解释,直接给出步骤。所以步骤部分要简洁。</think> ### 📁 Suricata离线pcap检测命令详解 #### 1️⃣ **核心操作流程** 1. **更新规则集**(建议优先执行) ```bash sudo suricata-update ``` *更新规则到最新版本,默认规则存储在`/var/lib/suricata/rules/`[^1]* 2. **创建专用日志目录** ```bash mkdir -p ~/suricata_logs # 避免使用需root权限的/var/log ``` 3. **执行pcap检测命令** ```bash suricata -k none -r traffic.pcap -l ~/suricata_logs ``` - `-k none` 🛑 强制禁用校验和检查(离线包常见必须参数)[^2] - `-r traffic.pcap` ▶️ 指定pcap文件路径 - `-l ~/suricata_logs` 📁 设置日志输出目录 4. **查看检测结果** ```bash cat ~/suricata_logs/fast.log # 告警摘要(SID分类) cat ~/suricata_logs/eve.json # JSON格式完整流量分析 jq '.alert | select(.signature_id==2001289)' ~/suricata_logs/eve.json # 过滤特定规则ID ``` #### 2️⃣ **关键参数说明** | 参数 | 作用 | 示例 | |------|------|------| | `-S` | 指定自定义规则文件 | `-S custom.rules` | | `-c` | 使用自定义配置文件 | `-c my_suricata.yaml` | | `-v` | 增加日志详细级别 | `-v -v`(二级详细) | | `-T` | 仅测试规则加载 | `suricata -T` | #### 3️⃣ **高级应用场景** **多pcap批量检测** ```bash for pcap in *.pcap; do suricata -k none -r $pcap -l ~/batch_logs/${pcap%.*} done ``` **提取检测到的文件** ```bash grep -a "file extracted" eve.json | jq -r .fileinfo.tmp_path ``` #### 💡 性能优化建议 - 大型pcap文件添加`--pcap-file-delete`自动删除已处理文件 - 高吞吐场景启用`pcap-file-processing: yes`配置并行处理[^3] ``` 📊 示例输出摘录 [**] [1:2012055:5] ET POLICY curl User-Agent Outbound [**] [Classification: Potential Corporate Privacy Violation] [Priority: 1] {TCP} 192.168.1.100:51246 -> 104.18.25.46:443 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值