我已经检查了/etc/snort/
和/usr/local/etc/snort/
目录,但找不到该snort.conf
文件。我也尝试使用
sudo find / -name snort.conf
sudo find / -type f -name snort.conf
和
locate snort.conf
命令在整个文件系统中搜索该文件但没有找到。
我应该创建一个新snort.conf
文件,还是应该继续搜索现有的配置文件?
我已经检查了/etc/snort/
和/usr/local/etc/snort/
目录,但找不到该snort.conf
文件。我也尝试使用
sudo find / -name snort.conf
sudo find / -type f -name snort.conf
和
locate snort.conf
命令在整个文件系统中搜索该文件但没有找到。
我应该创建一个新snort.conf
文件,还是应该继续搜索现有的配置文件?
我想使用 Snort 2.x 作为 IPS。我知道,我需要两个 NIC 来捕获流量(DAQ 模式)。
eth0
= 我的网卡到 WANeth1
= 我用于 Snort 的内部(虚拟)NIC。我当前的运行命令:
snort -u snort -g snort -c /etc/snort/snort.conf --daq afpacket -i eth0:eth1 -l /var/log/snort -Q
我如何启用 PROMISC 模式:
tee /etc/rc.local <<EOF
#!/bin/sh -e
ifconfig eth0 promisc
ifconfig eth1 promisc
exit 0
EOF
chmod +x /etc/rc.local
systemctl start rc-local
我需要将两张卡中的哪一张置于混杂模式?eth0
,eth1
甚至两者兼而有之?
我已经按照一些说明在此处设置 Graylog 和 Snort(不过我使用了 Suricata) ,但如果能够看到生成事件的警报负载是什么,那就太好了。
一个名为Snorby的应用程序曾经很好地做到了这一点。您可以查看有效负载的十六进制转储,以更好地确定事件的严重性。据我所知,Snorby 的开发在很久以前就停止了。有谁知道是否有办法通过 Graylog/Suricata 获得这种功能?我想如果 Suricata 可以以某种方式保存有效载荷,它可能会以某种方式发送到 Graylog,只是不确定哪种机制是最好的。
期待在几个 FreeBSD 防火墙上部署 IDS/IPS,我很好奇 snort 和 suricata 之间的区别。我知道 Suricata 是多线程的,但就规则处理和其他它们的工作方式而言,有什么真正的区别应该让我选择另一个吗?
我正在使用此规则跳过已知 SSL 证书上的 suricata tls 处理:
pass tls any any <> any any (msg:"known good mydomain cert"; tls.fingerprint:"40:.(trimmed for serverfault).:8b"; sid:1000000; rev:1)
即便如此,它也会进入正常的 tls 日志记录。
Jan 29 19:59:38 ip-10-11-12-13 suricata[17331]: {"timestamp":"2016-01-29T19:59:38.285296+0000","flow_id":139920047174784,"in_iface":"eth0","event_type":"tls","src_ip":"10.13.13.13","src_port":49479,"dest_ip":"10.11.12.13","dest_port":8443,"proto":"TCP","tls":{"subject":"C=U...CN=*.mydomain.com","issuerdn":"C=US...","fingerprint":"40:.(trimmed for serverfault).:8b","version":"TLS 1.2"}}
我先local.rules
列出了我的列表,并且我没有更改操作顺序,因此pass
应该首先处理消息。
发生这种情况是因为在配置中设置了“tls:extended:yes”吗?我的意思是,它记录了所有TLS 会话,所以pass
没关系?如果是这种情况,我该如何/应该记录未知/不匹配的 TLS 流量?
(我把它放在snort
标签中是因为没有suricata
标签而且我无法创建标签。我认为 suricata 与 snort 有关。)
这很可能是初学者的误解。
系统为:Ubuntu AMD64、14.04.03 LTS;使用默认配置安装了 Snort。
我正在编写一个处理 DNS 响应的 Snort 规则。为了确保一切正常,我编写了以下规则:
alert udp any any -> any any (msg:"UDP"; sid:10000001; rev:001;)
然后我使用-r file.pcap
with Snort 来测试我的规则。
我的 pcap 文件中有 4 个数据包:
客户端和服务器都在同一个 /24 网络上。使用默认的服务器端 DNS 端口 (53)。
当我对我的 pcap 运行 Snort 时,它会在请求上发出警报,但不会在响应上发出警报。我什至尝试运行 Snort 'live' 并使用dig
它来生成 DNS 请求。相同的行为:请求警报,但不响应。
$ snort -A console -q -u snort -g snort -c snort.conf -r dns.pcap
11/05-19:13:00.754320 [**] [1:10000001:1] UDP [**] [Priority: 0] {UDP} 192.168.188.11:35977 -> 192.168.188.10:53
11/05-19:13:15.734932 [**] [1:10000001:1] UDP [**] [Priority: 0] {UDP} 192.168.188.11:50795 -> 192.168.188.10:53
为什么 Snort 不对响应发出警报?
我在 windows server 2008 R2 x64 上使用 Snort 2.9,配置非常简单,如下所示:
# Entire content of Snort.conf:
alert tcp any any -> any any (sid:5000000; content:"_secret_"; msg:"TRIGGERED";)
# command line:
snort.exe -c etc/Snort.conf -l etc/log -A console
使用我的浏览器,我将 url 中的字符串“_secret_”发送到我的服务器(Snort 所在的位置)。例子:http://myserver.com/index.php?_secret_
Snort 收到它并发出警报,它可以工作,没问题!但是当我尝试这样的事情时:
<?php // (index.php)
header('XTest: _secret_'); // header
echo '_secret_'; // data
?>
如果我只是请求http://myserver.com/index.php
,即使 php 文件在标头和数据中都发送相同的字符串,没有压缩/编码或其他任何内容,它也不起作用或检测到传出流量中的任何内容。(我使用 Wireshark 检查过)
这在我看来像是一个 Snort 问题。无论我做什么,它只检测接收数据包。有人在使用 Snort 时遇到过这种问题吗?知道如何解决吗?
我们已经通过 Snort 触发了其中一些警报:
“POLICY Mozilla Multiple Products HTML href shell 尝试”
我正在努力寻找与此警报有关的任何信息,有人知道它可能意味着什么吗?
提前致谢
我的 Snort/Barnyard2 设置需要一些帮助。我的目标是让 Snort 将 unified2 日志发送到 Barnyard2,然后让 Barnyard2 将数据发送到其他位置。这是我当前的设置。
snort -c /etc/snort/snort.conf -i eth2 &
/usr/local/bin/barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w /var/log/snort/barnyard.waldo &
output unified2: filename snort.log, limit 128
output alert_syslog: host=127.0.0.1
output database: log, mysql, user=snort dbname=snort password=password host=localhost
通过此设置,barnyard2 显示数据库中的所有正确信息,我正在使用 BASE 在 Web GUI 上查看它。我希望能够使用 barnyard2 将完整的数据包数据发送到系统日志,但在阅读之后,似乎不可能做到这一点。所以我开始尝试修改 snort.conf 文件并添加诸如“output alert_full: alert.full”之类的行。这无疑给了我更多信息,但仍然不是我想要的完整数据包数据。
所以我的问题是,无论如何我可以使用 barnyard2 将警报的完整数据包数据发送到人类可读文件吗?由于我不能将它直接发送到系统日志,我可以创建另一个进程来从该文件中获取数据并将其发送到另一台服务器。如果不是,您会推荐什么标志和/或 snort.conf 配置来获取尽可能多的数据,但仍然能够处理相当多的流量?最后,这些警报将通过 SSH 隧道传送到中央服务器。我试图远离数据库。