鼻息或Suricata。 第 2 部分:Suricata 的安装和初始设置

据统计,网络流量每年以50%左右的速度增长。 这导致设备负载增加,特别是增加了IDS/IPS的性能要求。 您可以购买昂贵的专用硬件,但还有一种更便宜的选择 - 引入开源系统之一。 许多新手管理员发现安装和配置免费 IPS 很困难。 就 Suricata 而言,这并不完全正确 - 您可以安装它并在几分钟内开始使用一组免费规则来抵御典型的攻击。

鼻息或Suricata。 第 2 部分:Suricata 的安装和初始设置
鼻息或Suricata。 第 1 部分:选择免费的 IDS/IPS 来保护您的公司网络

为什么我们需要另一个开放的IPS?

Snort 长期以来一直被视为标准,自 6 年代末以来一直在开发,因此它最初是单线程的。 多年来,所有现代功能都出现在其中,例如 IPvXNUMX 支持、分析应用程序级协议的能力或通用数据访问模块。

核心 Snort 2.X 引擎已经学会了与多个内核一起工作,但仍然是单线程,因此无法最佳地利用现代硬件平台。

这个问题在系统的第三版中得到了解决,但准备时间太长,从头开始编写的Suricata才成功上市。 2009 年,它开始被开发为 Snort 的多线程替代品,具有开箱即用的 IPS 功能。 该代码根据 GPLv2 许可证分发,但该项目的财务合作伙伴可以访问该引擎的封闭版本。 系统的第一个版本中出现了一些可扩展性问题,但很快就得到了解决。

为什么是苏里卡?

Suricata 有几个模块(类似于 Snort):捕获、捕获、解码、检测和输出。 默认情况下,捕获的流量在一个流中解码之前进行,尽管这会给系统带来更多负载。 如果有必要,可以在设置中划分线程并在处理器之间分配 - Suricata 针对特定硬件进行了很好的优化,尽管这不再是初学者的 HOWTO 级别。 还值得注意的是,Suricata 拥有基于 HTP 库的高级 HTTP 检查工具。 它们还可以用于在不被检测到的情况下记录流量。 系统还支持IPv6解码,包括IPv4-in-IPv6隧道、IPv6-in-IPv6隧道等。

可以使用不同的接口来拦截流量(NFQueue、IPFRing、LibPcap、IPFW、AF_PACKET、PF_RING),并且在Unix Socket模式下,可以自动分析另一个嗅探器捕获的PCAP文件。 此外,Suricata 的模块化架构可以轻松插入新元素来捕获、解码、解析和处理网络数据包。 还需要注意的是,在 Suricata 中,流量是通过操作系统的常规过滤器来阻止的。 GNU/Linux 对于 IPS 的工作方式有两个选项:通过 NFQUEUE 队列(NFQ 模式)和通过零复制(AF_PACKET 模式)。 第一种情况,进入iptables的数据包被发送到NFQUEUE队列,在那里可以进行用户级别的处理。 Suricata 根据自己的规则运行它,并发出三个判决之一:NF_ACCEPT、NF_DROP 和 NF_REPEAT。 前两个是不言自明的,而最后一个允许对数据包进行标记并将其发送到当前 iptables 表的顶部。 AF_PACKET 模式速度更快,但它对系统施加了许多限制:它必须有两个网络接口并作为网关工作。 被阻止的数据包根本不会转发到第二个接口。

Suricata 的一个重要特性是能够使用 Snort 的开发。 特别是,管理员可以访问 Sourcefire VRT 和 OpenSource Emerging Threats 规则集,以及商业 Emerging Threats Pro。 统一的输出可以使用流行的后端进行解析,还支持PCAP和Syslog输出。 系统设置和规则存储在YAML文件中,这些文件易于阅读并且可以自动处理。 Suricata 引擎可识别许多协议,因此规则不需要绑定到端口号。 此外,Flowbits的概念在Suricata的规则中得到了积极的实践。 为了跟踪触发器,会话变量用于创建和应用各种计数器和标志。 许多 IDS 将不同的 TCP 连接视为单独的实体,并且可能看不到它们之间表明攻击开始的连接。 Suricata 试图了解整个情况,并在许多情况下识别分布在不同连接上的恶意流量。 它的优点你已经讲了半天了,我们还是进入安装配置吧。

怎么安装?

我们将在运行 Ubuntu 18.04 LTS 的虚拟服务器上安装 Suricata。 所有命令必须代表超级用户 (root) 执行。 最安全的选项是以普通用户身份通过​​ SSH 连接到服务器,然后使用 sudo 实用程序来提升权限。 首先你需要安装我们需要的软件包:

sudo apt -y install libpcre3 libpcre3-dev build-essential autoconf automake libtool libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libmagic-dev libcap-ng-dev libjansson-dev pkg-config libnetfilter-queue-dev geoip-bin geoip-database geoipupdate apt-transport-https

连接外部存储库:

sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get update

安装最新稳定版本的 Suricata:

sudo apt-get install suricata

如有必要,编辑配置文件名称,将默认的 eth0 替换为服务器外部接口的实际名称。 默认设置存储在 /etc/default/suricata 文件中,自定义设置存储在 /etc/suricata/suricata.yaml 中。 配置 IDS 主要限于编辑此配置文件。 它有很多参数,从名称和用途上看,它们与 Snort 中的类似参数一致。 然而,语法完全不同,但该文件比 Snort 配置更容易阅读,并且有很好的注释。

sudo nano /etc/default/suricata

鼻息或Suricata。 第 2 部分:Suricata 的安装和初始设置

и

sudo nano /etc/suricata/suricata.yaml

鼻息或Suricata。 第 2 部分:Suricata 的安装和初始设置

注意力! 在开始之前,值得检查 vars 部分中变量的值。

要完成设置,您需要安装 suricata-update 来更新和加载规则。 做到这一点非常容易:

sudo apt install python-pip
sudo pip install pyyaml
sudo pip install <a href="https://github.com/OISF/suricata-update/archive/master.zip">https://github.com/OISF/suricata-update/archive/master.zip</a>
sudo pip install --pre --upgrade suricata-update

接下来,我们需要运行 suricata-update 命令来安装 Emerging Threats Open 规则集:

sudo suricata-update

鼻息或Suricata。 第 2 部分:Suricata 的安装和初始设置

要查看规则源列表,请运行以下命令:

sudo suricata-update list-sources

鼻息或Suricata。 第 2 部分:Suricata 的安装和初始设置

更新规则源:

sudo suricata-update update-sources

鼻息或Suricata。 第 2 部分:Suricata 的安装和初始设置

重新访问更新的来源:

sudo suricata-update list-sources

如有必要,您可以包含可用的免费资源:

sudo suricata-update enable-source ptresearch/attackdetection
sudo suricata-update enable-source oisf/trafficid
sudo suricata-update enable-source sslbl/ssl-fp-blacklist

之后,您需要再次更新规则:

sudo suricata-update

这样就完成了 Ubuntu 18.04 LTS 中 Suricata 的安装和初始配置。 然后有趣的事情就开始了:在下一篇文章中,我们将通过 VPN 将虚拟服务器连接到办公网络,并开始分析所有传入和传出流量。 我们将特别注意阻止 DDoS 攻击、恶意软件活动以及利用公共网络访问服务中的漏洞的尝试。 为了清楚起见,将模拟最常见类型的攻击。

鼻息或Suricata。 第 2 部分:Suricata 的安装和初始设置

鼻息或Suricata。 第 2 部分:Suricata 的安装和初始设置

来源: habr.com

添加评论