打鼾或 Suricata。 第 3 部分:保护办公网络

В 以前的文章 我们向您展示了如何在 Ubuntu 18.04 LTS 上运行 Suricata 的稳定版本。 在一个节点上设置 IDS 并连接免费规则集非常简单。 今天,我们将了解如何使用安装在虚拟服务器上的 Suricata 来保护企业网络免受最常见类型的攻击。 为此,我们需要一个具有两个计算核心的 Linux 上的 VDS。 RAM 的大小取决于负载:对于某些人来说,2 GB 就足够了,但对于更重要的任务,可能需要 4 甚至 6。虚拟机的优点是能够进行实验:您可以从最低配置开始并根据需要增加资源。

打鼾或 Suricata。 第 3 部分:保护办公网络照片:路透社

连接网络

将 IDS 移至虚拟机可能主要是为了进行测试。 如果您从未处理过此类解决方案,则不应急于订购物理硬件并更改网络架构。 最好安全且无需额外成本地测试系统以确定您的计算资源需求。 重要的是要了解所有公司流量都必须通过单个外部节点:要将本地网络(或多个网络)连接到安装了 IDS Suricata 的 VDS,您可以使用 软醚 — 易于设置的跨平台 VPN 服务器,提供强大的加密功能。 办公室上网可能没有真实IP,所以最好升级为VPS。 Ubuntu 存储库中没有现成的软件包;必须从以下位置下载该软件 项目现场,或来自服务上的外部存储库 快速启动 (如果你信任他):

sudo add-apt-repository ppa:paskal-07/softethervpn
sudo apt-get update

您可以使用以下命令查看可用包的列表:

apt-cache search softether

打鼾或 Suricata。 第 3 部分:保护办公网络

我们将需要 softether-vpnserver(测试配置中的服务器在 VDS 上运行),以及 softether-vpncmd - 命令行实用程序来配置它。

sudo apt-get install softether-vpnserver softether-vpncmd

要配置服务器,请使用特殊的命令行实用程序:

sudo vpncmd

打鼾或 Suricata。 第 3 部分:保护办公网络

我们不会详细讨论设置:该过程非常简单,在许多出版物中都有详细描述,并且与本文的主题没有直接关系。 简而言之,启动vpncmd后需要选择第1项才能进入服务器管理控制台。 为此,您需要输入名称 localhost 并按 Enter 键,而不是输入集线器的名称。 在控制台中,使用 serverpasswordset 命令设置管理员密码,删除默认虚拟集线器(hubdelete 命令)并创建一个名为 Suricata_VPN 的新虚拟集线器,并设置其密码(hubcreate 命令)。 接下来,您需要使用 hub Suricata_VPN 命令进入新集线器的管理控制台,使用 groupcreate 和 usercreate 命令创建组和用户。 用户密码是使用userpasswordset 设置的。

SoftEther 支持两种流量传输模式:SecureNAT 和本地桥接。 第一个是用于构建具有自己的 NAT 和 DHCP 的虚拟专用网络的专有技术。 SecureNAT 不需要 TUN/TAP,也不需要 Netfilter 或其他防火墙设置。 路由不会影响系统核心,所有进程都被虚拟化并在任何 VPS/VDS 上运行,无论使用何种虚拟机管理程序。 与将 SoftEther 虚拟集线器连接到物理网络适配器或 TAP 设备的本地桥接模式相比,这会导致 CPU 负载增加并降低速度。

这种情况下的配置变得更加复杂,因为路由使用 Netfilter 在内核级别进行。 我们的 VDS 是基于 Hyper-V 构建的,因此在最后一步中,我们创建本地网桥并使用命令bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes 激活 TAP 设备。 退出hub管理控制台后,我们会在系统中看到一个新的网络接口,尚未分配IP:

ifconfig

打鼾或 Suricata。 第 3 部分:保护办公网络

接下来,如果接口(ip 转发)处于非活动状态,则必须启用接口之间的数据包路由:

sudo nano /etc/sysctl.conf

取消注释以下行:

net.ipv4.ip_forward = 1

我们保存对文件的更改,退出编辑器并使用以下命令应用它们:

sudo sysctl -p

接下来,我们需要为虚拟网络定义一个具有虚拟 IP 的子网(例如 10.0.10.0/24),并为该接口分配一个地址:

sudo ifconfig tap_suricata_vp 10.0.10.1/24

然后您需要设置 Netfilter 规则。

1. 如有必要,允许监听端口传入数据包(SoftEther 专有协议使用 HTTPS 和端口 443)

sudo iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 992 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 5555 -j ACCEPT

2、配置10.0.10.0/24子网到主服务器IP的NAT

sudo iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -j SNAT --to-source 45.132.17.140

3.允许通过10.0.10.0/24子网的数据包

sudo iptables -A FORWARD -s 10.0.10.0/24 -j ACCEPT

4. 允许传递已建立连接的数据包

sudo iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

我们将使用初始化脚本在重新启动系统时保留该过程的自动化,作为读者的家庭作业。

如果您想自动向客户端分配 IP,您还必须为本地网桥安装某种 DHCP 服务。 至此,服务器设置已完成,您可以继续设置客户端。 SoftEther 支持多种协议,其使用取决于本地网络设备的能力。

netstat -ap |grep vpnserver

打鼾或 Suricata。 第 3 部分:保护办公网络

由于我们的测试路由器也运行 Ubuntu,因此我们将从外部存储库安装 softether-vpnclient 和 softether-vpncmd 软件包,以便使用专有协议。 您需要启动客户端:

sudo vpnclient start

要进行配置,请使用 vpncmd 实用程序,选择 localhost 作为运行 vpnclient 的计算机。 所有命令均在控制台中执行:您需要创建一个虚拟接口 (NicCreate) 和一个帐户 (AccountCreate)。

在某些情况下,您需要使用 AccountAnonymousSet、AccountPasswordSet、AccountCertSet 和 AccountSecureCertSet 命令设置身份验证方法。 由于我们不使用 DHCP,因此虚拟适配器的地址是手动设置的。

此外,我们需要启用 ip 转发(/etc/sysctl.conf 文件中的 net.ipv4.ip_forward=1 参数)并配置静态路由。 如有必要,您可以在带有 Suricata 的 VDS 上配置端口转发,以使用本地网络上安装的服务。 至此,网络的统一才算完成。

我们建议的配置将如下所示:

打鼾或 Suricata。 第 3 部分:保护办公网络

设置 Suricata

В 以前的文章 我们讨论了 IDS 操作的两种模式:通过 NFQUEUE 队列(NFQ 模式)和通过零复制(AF_PACKET 模式)。 第二个需要两个接口,但速度更快 - 我们将使用它。 该选项默认在 /etc/default/suricata 中设置。 我们还需要编辑 /etc/suricata/suricata.yaml 中的 vars 部分,将虚拟子网注册为 home。

打鼾或 Suricata。 第 3 部分:保护办公网络

要重新启动 IDS,请使用以下命令:

systemctl restart suricata

解决方案已准备就绪,现在您可能需要测试它对攻击者的抵抗力。

模拟攻击

外部 IDS 服务的战斗使用可能有多种场景:

防御DDoS攻击(主要目的)

在公司网络中很难实现此选项,因为用于分析的数据包必须到达系统面向互联网的接口。 即使 IDS 阻止它们,虚假流量也会堵塞数据链路。 为了避免这种情况,您需要订购具有足够强大的互联网连接的 VPS,可以通过所有本地网络流量和所有外部流量。 这通常比扩大办公渠道更容易、更便宜。 作为替代方案,值得一提的是 DDoS 防护的专门服务。 他们的服务成本与虚拟服务器的成本相当,并且不需要劳动密集型配置,但也有缺点 - 对于他们的钱,客户只能获得 DDoS 保护,而他们自己的 IDS 可以根据需要进行配置。

防御其他类型的外部攻击

Suricata 能够应对利用可通过 Internet 访问的企业网络服务(邮件服务器、Web 服务器和 Web 应用程序等)中的各种漏洞的尝试。 通常,为此目的,IDS被安装在本地区域内的边缘设备之后,但将其移到外部也有存在的权利。

防止内部攻击

尽管系统管理员付出了一切努力,公司网络上的计算机仍然可能感染恶意软件。 此外,当地有时也会出现流氓行为,试图进行一些非法操作。 Suricata 可以帮助阻止此类尝试,但为了保护内部网络,最好将其安装在外围内,并将其与可将流量镜像到一个端口的托管交换机结合使用。 在这种情况下,外部 IDS 也并非毫无用处 - 至少它能够捕获 LAN 上的恶意软件联系外部服务器的尝试。

首先,我们将创建另一个测试攻击VPS,在本地网络路由器上我们将使用默认配置安装Apache,然后将端口80从IDS服务器转发到它。 接下来我们将模拟来自攻击节点的 DDoS 攻击。 为此,请从 GitHub 下载,在攻击节点上编译并运行一个小型 xerxes 程序(您可能需要安装 gcc 软件包):

git clone https://github.com/Soldie/xerxes-DDos-zanyarjamal-C.git
cd xerxes-DDos-zanyarjamal-C/
gcc xerxes.c -o xerxes 
./xerxes 45.132.17.140 80

她的工作结果如下:

打鼾或 Suricata。 第 3 部分:保护办公网络

Suricata 切断了坏人的连接,并且 Apache 页面默认打开,尽管我们进行了即兴攻击,并且“办公室”(实际上是家庭)网络的通道相当死气沉沉。 对于更严肃的任务值得使用 Metasploit框架。 它专为渗透测试而设计,允许您模拟各种攻击。 安装说明 可得到 在项目网站上。 安装后,需要更新:

sudo msfupdate

要进行测试,请运行 msfconsole。

打鼾或 Suricata。 第 3 部分:保护办公网络

不幸的是,最新版本的框架不具备自动破解的能力,因此必须手动整理漏洞并使用 use 命令启动。 首先,您应该确定被攻击机器上打开的端口,例如使用nmap(在我们的例子中,它将被被攻击主机上的netstat完全取代),然后选择并使用适当的端口 Metasploit 模块

还有其他方法可以测试 IDS 对攻击的抵抗力,包括在线服务。 出于好奇,您可以使用试用版安排压力测试 IP 压力器。 要检查对内部攻击者行为的反应,值得在本地网络上的其中一台计算机上安装特殊工具。 有很多选择,并且定期它们不仅应该应用于实验站点,还应该应用于工作系统,但这是一个完全不同的故事

打鼾或 Suricata。 第 3 部分:保护办公网络

打鼾或 Suricata。 第 3 部分:保护办公网络

来源: habr.com

添加评论