在Ubuntu中安装Snort入侵检测系统
本教程介绍如何在基于 Debian 的 Linux 发行版(包括 Ubuntu)中安装和开始使用 Snort IDS(入侵检测系统)。
设置服务器后,与安全相关的首要常用步骤包括防火墙、更新和升级、SSH(安全外壳)密钥以及无漏洞的硬件设备(例如不支持 PIN 码的路由器)。
但大多数系统管理员不会扫描自己的服务器来发现安全漏洞,也不会像本指南中详细解释的那样设置蜜罐或入侵检测系统 (IDS)。
本文档逐步说明如何开始使用最流行的 IDS Snort。所有描述的步骤都包含真实的屏幕截图,使读者可以轻松地遵循它们。
注意:基于 Debian 和 RedHat 的 Linux 发行版的安装说明请参见 https://linux教程/intrusion_detection_snort_tutorial/。
IDS 和 Snort 简要说明
入侵检测系统是流量和数据包分析程序,用于检测恶意流量(攻击性扫描、合理端口连接尝试等)等异常情况。 IDS 检测可疑行为并将其报告给系统管理员。
IDS 允许系统管理员设置规则来定义要报告的可疑或禁止的数据包。
Snort 是最流行的 IDS,也可能是最好的 IDS。它允许您从最新存储库实施预定义规则,或创建自定义规则。 Snort 还允许您在本文中深入解释的七种警报模式中进行选择。
开始使用 Snort
首先,用户需要在Snort官方网站https://www.snort.org/users/sign_up进行注册。
填写所有必填信息,同意 Snort 许可条款,验证验证码,然后按“注册”按钮。
注册后,用户必须验证确认电子邮件。确认后,登录。在左侧菜单中,按“Oinkcode”按钮访问调用的 Oinkcode,如下面的屏幕截图所示,这对于更新 Snort 很有用。用户只需保留 Oinkcode 或在必要时访问它,如下所述:
一旦注册(或之前,这无关紧要),Snort 可以使用 apt 包管理器安装,如下所示:
在安装过程中,Snort 会向您展示如何在下一步中指定网络 (CIDR)。此配置可以编辑并存储在 /etc/snort.conf 文件中,如本教程下一部分所述。
要继续安装,请按 TAB 键选择<确定>按钮。然后,按 ENTER 键。
按照上一步中的说明以 CIDR 格式定义您的网络。通常,Snort 会自动正确检测网络。如果您想定义其他网络,请使用逗号。
Snort 将结束安装过程。建议的第一个步骤是使用本 Snort 教程第二步中获得的 Oinkcode 更新规则。
Oinkcode 与已安装的 Snort 版本一起实现,采用以下 URL 格式,其中 <Version> 必须替换为已安装的版本(不带点),并且 <Oinkcode> 必须为替换为 Oinkcode。
https://www.snort.org/rules/snortrules-snapshot-<版本>.tar.gz?oinkcode=
在以下示例中,安装的 Snort 版本为 2.9.151,Oinkcode 为 d606c9a064edc39523d77f8762f0fe881c3001c4。
要下载更新的规则,请运行以下命令:
https://www.snort.org/rules/snortrules-snapshot-29151.tar.gz?oinkcode=d606c9a0edc393d77f8762f0fe881c3001c4
执行的 URL 将下载压缩的规则文件。
必须将“tar.gz”文件内容提取到 /etc/snort/rules 目录。您可以使用“xzf”命令和 -C 标志来指定提取的文件目标,如以下屏幕截图所示:
执行完前面的所有指令后,用户可以假设 Snort 已正确安装,包括最新的规则。然而,某些设置必须按照以下部分中的描述进行配置。
在 Ubuntu 中配置 Snort(Snort.conf 文件)
Snort 配置文件是 /etc/snort/snort.conf。它是用户安装后需要处理的第一个文件。
注意:对于 Debian 用户,Snort 配置文件为 /etc/snort/snort.debian.conf。
首先,使用文本编辑器打开 /etc/snort.conf 文件,如下所示(使用权限):
在下图中,您可以看到“snort.conf”文件的样子:
通过向下滚动,用户将看到网络相关设置。正如您所看到的,本地网络的默认设置是“any”,它指示 Snort 监视所有检测到的子网。
第一个Snort网络设置功能如下:
ipvar HOME_NET: 此处,用户以 CIDR 格式指定本地网络。默认选项(任意)检查所有本地网络。
ipvar EXTERNAL_NET:在这里,用户可以定义外部网络。
ipvar
$HOME_NET: 用户将看到此格式的服务列表,其中必须替换为要监控的服务,例如 HTTPS、FTP 、SSH 等
向下滚动查看其他服务和端口选项,如下所示:
继续向下滚动并确保正确指定规则目录,如下图所示 (/etc/snort/snort.conf):
在下图中,您可以看到注释(启用)或未注释(禁用)的规则。如您所见,规则存储在 /etc/snort/rules 目录中,并通过“snort.conf”文件进行管理。
下面的截图中,启用了攻击响应、不良流量、DDOS、后门等相关规则:
所有规则都可以在 /etc/snort/rules 目录中找到。
用户不仅可以下载附加规则,还可以创建自己的规则。要了解如何创建自定义 Snort 规则,请点击此链接。
喷鼻息警报
警报模式是一系列可供用户选择的可用报告机制。
Snort IDS 支持七种警报模式,包括测试警报模式和完全不警报模式。
完整:完整警报模式,顾名思义,返回最完整的报告,包括数据报详细信息。完整模式是通过添加 -A full 标志来定义的。快速:使用 -A fast 标志实现的快速模式比完整模式更加用户友好。控制台: -A 控制台选项在 Linux 终端上打印实时警报。Syslog: 系统日志协议远程发送警报日志。使用 -s 标志实现此模式。Unsock: Snort 可以将警报导出到 Unix 套接字。无:跳过警报。Cmg: CMG 模式仅用于测试目的。
注意: 与 Snort 规则一样,Snort 警报也需要专门的教程,您可以在 https://linux教程/snort_alerts/ 访问该教程。
在以下示例中,-h 标志指定主机或网络。 Snort 使用 -A 标志执行,该标志实现控制台警报模式。 -c 标志被打印到 Snort 配置文件中。
在下一个示例中,执行快速扫描。
默认情况下,Snort 结果存储在 /var/log/snort 目录下,如下图所示:
结论
Snort 和 IDS 一样是检测网络中恶意行为的优秀工具。它可以检测定义的扫描方法并报告源上的数据。但 Snort 可以针对所有类型的可疑流量进行配置。 Snort 包含一个全面的规则源,易于配置和保持更新。用户可以编写自定义规则并选择不同的警报模式。
IDS 实施是保护 Linux 安全强化列表中包含的网络的基本要求。
Snort 是一种开源软件,是一种易于管理的安全资源。它可以免费使用,这对许多用户来说是一个不错的选择。我们强烈建议您继续阅读本文档中通过链接引用的文章,这些文章专门介绍了 Snort 的各个方面。