使用 snort 2.8.6 版,我正在尝试收集应用程序性能统计信息,例如
我目前正在使用 perfmonitor 预处理器来转储性能统计数据,并通过 SNMP 调用绘制其中的一些值。关于这个预处理器的文档相当有限,并没有很好地解释字段的实际含义,或者计算数字的时间范围。
要获得这些类型的性能指标,哪些领域应该我在看和这些领域如何测量?
我已经通过 NFQUEUE 在本地(因为我可以走进隔壁房间并触摸它)网关上安装了 snort 并以内联模式运行。我的 中有以下规则/etc/snort/rules/snort.rules
:
alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS (msg:"ET CURRENT_EVENTS D-LINK Router Backdoor via Specific UA"; flow:to_server,established; content:"xmlset_roodkcableoj28840ybtide"; http_header; pcre:"/^User-Agent\x3a[^\r\n]*?xmlset_roodkcableoj28840ybtide/Hm"; reference:url,www.devttys0.com/2013/10/reverse-engineering-a-d-link-backdoor/; classtype:attempted-admin; sid:2017590; rev:2; metadata:created_at 2013_10_13, updated_at 2013_10_13;)
Run Code Online (Sandbox Code Playgroud)
此规则与在某些 DLink 路由器中发现的后门有关。我选择这个规则是因为它看起来很容易测试。规则本身是由来自新兴威胁的 pullpork 添加的,所以我认为规则语法是正确的。
为了进行测试,我在面向 Internet 的端口 80 上使用 lighttpd 配置了我的网关,并确认它可以访问。然后,在远程机器上,我运行了命令curl -A 'xmlset_roodkcableoj28840ybtide' 'http://<EXTERNAL_IP>'
。这会立即将来自 lighttpd 的响应打印到控制台并退出。网关上不会生成 Snort 警报。
此外,netfilter 似乎只使用了我正在运行的四个 snort 进程中的两个。我可以看到这一点,htop
因为 CPU 1 和 2 上的 snort 进程在使用 bittorrent 进行测试时会产生沉重的负载……但 CPU 0 和 3 上的 snort 进程仍然完全空闲。
我的测试方法是错误的吗?或者 snort …
几年前,我们通过在外部防火墙前放置一个水龙头,通过 IDS 盒传输 DS1 上的所有流量,然后将结果发送到运行 ACiD 的日志服务器来设置 IDS 解决方案。这是大约 2005 年左右。我被要求改进解决方案并对其进行扩展并环顾四周,我发现 ACiD 的最后一个版本是 2003 年,我似乎找不到其他任何看起来甚至是最新的。虽然这些东西可能是功能完整的,但我担心库冲突等。谁能给我一些使用现代工具的基于 Linux/OpenBSD 的解决方案的建议?
明确地说,我知道 Snort 仍在积极开发中。我想我更喜欢现代开源 Web 控制台来整合数据。当然,如果人们对 Snort 以外的 IDS 有很好的体验,我很高兴听到它。
我正在尝试识别我们网络上的问题用户。ntop 识别高流量和高连接用户,但恶意软件并不总是需要高带宽才能真正搞砸。所以我试图用 snort 进行离线分析(不想用 20 Mbps 流量的内联分析给路由器带来负担)。显然 snort-r
为此提供了一个选项,但我无法运行分析。
分析系统是gentoo,amd64,以防万一。我已经使用 oinkmaster 下载了最新的 IDS 签名。但是当我尝试运行 snort 时,我不断收到以下错误:
% snort -V
,,_ -*> Snort! <*-
o" )~ Version 2.9.0.3 IPv6 GRE (Build 98) x86_64-linux
'''' By Martin Roesch & The Snort Team: http://www.snort.org/snort/snort-team
Copyright (C) 1998-2010 Sourcefire, Inc., et al.
Using libpcap version 1.1.1
Using PCRE version: 8.11 2010-12-10
Using ZLIB version: 1.2.5
%> snort -v -r jan21-for-snort.cap -c /etc/snort/snort.conf -l ~/snortlog/
Run Code Online (Sandbox Code Playgroud)
(剪辑)
273 out of 1024 flowbits in use.
[ …
Run Code Online (Sandbox Code Playgroud) 有人可以为我提供规则来检测以下攻击:
hping3 -S -p 80 --flood --rand-source [target]
Run Code Online (Sandbox Code Playgroud)
由于数据包来自随机来源,因此我遇到了规则问题。
我目前的规则是:
alert tcp !$HOME_NET any -> $HOME_NET 80 (flags: S; msg:"Possible TCP DoS"; flow: stateless; threshold: type both, track by_src, count 70, seconds 10; sid:10001;rev:1;)
Run Code Online (Sandbox Code Playgroud)
此规则只能从一个源 ip 中检测到。
我一直致力于让我的snort机器启动并运行,并通过Snort IDS 和 IPS Toolkit 工作。
作者建议使用Oinkmaster,但在该网站上,最后一次更新是 2008 年 2 月。这似乎有点......奇怪。也许过去一年半 oinkmaster 没有任何问题,但这让我想知道是否还有其他我不知道的解决方案。
如果您使用 snort,您是否会自动更新您的规则,如果是,如何更新?
所以我按照这个指南来了解如何安装 Snort、Barnyard 2 等。
我已经通过编辑 rc.local 文件设置了 Snort,让它自动运行:
ifconfig eth1 up
/usr/local/snort/bin/snort -D -u snort -g snort \
-c /usr/local/snort/etc/snort.conf -i eth1
/usr/local/bin/barnyard2 -c /usr/local/snort/etc/barnyard2.conf \
-d /var/log/snort \
-f snort.u2 \
-w /var/log/snort/barnyard2.waldo \
-D
Run Code Online (Sandbox Code Playgroud)
然后我重新启动了计算机。Snort 能够运行并检测到攻击,但日志文件(包括 barnyard2.waldo)仍然空白,即使为每次攻击创建了一个新的日志条目。
我不确定这里出了什么问题,因为它应该记录任何攻击并将其存储在日志目录中,对吗?
然后,我尝试将参数更改为:
/usr/local/snort/bin/snort -D -b -u snort -g snort \
-c /usr/local/snort/etc/snort.conf -i eth1
Run Code Online (Sandbox Code Playgroud)
当我检查日志文件时,有两个日志文件,一个是 u2 格式,另一个是 tcpdump 格式,但它们都是空白的,大约为 0 字节。
所以我想我会从控制台运行它,看看它是否可以从那里使用这个命令:
/usr/local/snort/bin/snort -A full -u snort -g snort \
-c /usr/local/snort/etc/snort.conf -i eth1
Run Code Online (Sandbox Code Playgroud)
然后我检查了日志文件,看看它是否会记录攻击,但它仍然没有。
我运行 Centos 6.5 服务器,该服务器具有高度限制性的iptables
规则集,仅允许少数 TCP 端口(总共 8 个)传入流量,并阻止所有传入的未经请求的 UDP 流量。
我最近从源代码构建了 snort 2.9.7.0 并正在运行它policy_mode:inline-test
我注意到它对被我的iptables
配置阻止的数据包发出警报,从中我推测它之前已将其自身插入到处理链中iptables
。
我已经阅读了手册并进行了多次网络搜索,但没有找到任何提及此行为的信息,也没有找到如何配置它以使其在 iptables之后运行的信息。我不认为我需要有关无论如何都会被阻止的流量的警报。
我是否有理由希望看到这些警报,如果没有,是否有办法进行设置,这样我就不会收到 iptables 阻止的数据包的警报?
我在监听 cisco 交换机的 SPAN 端口时哼了一声。我希望能够在我的网络服务器上添加一个 iptables DROP 规则以用于特定的 snort 警报,但很难找到确切的方法。我希望阻塞实时发生,而不是通过 cron 启动脚本来定期拖网 snort 日志。
我在 Seclists 上找到了一个示例,它使用 syslog-ng 运行 shell 脚本,但它必须用于旧版本的 syslog-ng,因为我在重新启动 syslog-ng 时收到有关不推荐使用的语法的错误。
我对 syslog-ng 过滤器了解不多,因此我打算对此进行更多研究,因为它看起来很有希望,但我想我会在这里提出问题,以防有更好的方法。当 snort 警报通过我的 snort 框的 SPAN 端口时,运行 shell 脚本的好方法是什么?
我们需要在我们的 linux 代理服务器上设置一个入侵检测系统 (IDS)。请建议入侵检测系统?除了 Snort 之外还有什么?
并且... snort 有一个很好的网络界面吗?