集群手册/序曲
序曲是一个基于传感器的监控系统,由于它的管理器模块,它是监控集群的完美选择。本指南解释了序曲是什么以及如何在虚拟 Ubuntu 系统中安装它。
序曲是一个所谓的“入侵检测系统”(IDS)。入侵检测系统分为“主机”和“网络”两种。HIDS 直接在操作系统上保护和控制活动,它负责日志和内核文件以及注册表。另一方面,NIDS 负责网络监控系统。序曲结合了这两种方法,因此属于“混合入侵检测系统”的类别。
序曲管理器是软件的核心,所有传感器的消息都汇集到一起,然后写入数据库。传感器可以观察不同的位置,例如各种日志或内核本身。这样,为每个相关的接口设置一个传感器,然后连接到管理器。管理器收集、排序和规范化传入数据,并以 **IDMEF** 格式存储在创建的数据库中。
除了序曲自带的传感器外,还可以将第三方传感器注册到管理器。
为了使序曲顺利运行,有必要在系统上安装一些软件包。
- prelude-manager: 序曲管理器正如前面所述,是软件的核心。所有来自传感器的消息都汇聚在这里。
- prelude-lml: 序曲日志监控助手读取各种日志文件,并将它们提供给管理器作为输入。在本例中,我们稍后将从 auth.log 文件中读取,这将向我们提供有关系统中登录尝试的信息。
- prewikka: Prewikka 以图形方式准备管理器写入数据库的数据,以便我们也可以从浏览器中检索它。
- apache2: 我们需要一个 Apache Web 服务器来打开 Prewikka 提供的网站。
- postgresql-9.1: 我们总共需要两个数据库,在这种情况下,建议使用 PostgreSQl 而不是 mySQL,稍后会详细说明。管理器和 Prewikka 各自需要一个数据库。
Shell 命令可以通过以下方案识别
# nano /etc/hosts
此安装已在一个包含一个主节点和多个工作节点的虚拟系统上测试。所有机器上都使用 Ubuntu Server 的 64 位版本。为了方便安装,建议使用命令
# sudo su
一次性授予适当的“root”权限。
- 步骤 1
-
安装所有软件包:(所有软件包仅安装在主节点上)
# apt-get install prelude-lml prelude-manager prelude-correlator prelude-notify apache2 postgresql-9.1 prewikka
最终会询问用户是否要使用向导设置数据库,这里建议没有经验的用户使用向导。 - 步骤 2
-
现在必须设置各种配置文件。我们从序曲配置开始。
# nano /etc/prelude/default/global.conf
在这里,必须输入“节点名称”和正确的地址。在虚拟机上,对于本地环境,请使用以下地址“127.0.0.1”。重要的是,[节点地址] 也必须在这里被注释掉!
- 步骤 3
-
启动序曲管理器:
# /etc/init.d/prelude-manager start
在这里,我们将被告知序曲管理器尚未激活。错误消息中给出了相应的匹配文件。
序曲管理器已禁用,请根据您的需要调整配置 * 然后在 /etc/default/prelude-manager 中将 RUN 设置为“yes”以启用它。
在以下文件中激活序曲管理器后,我们使用上面的命令再次启动它。
# nano /etc/default/prelude-manager
- 步骤 4
-
必须在管理器中注册序曲传感器,以便它们可以相互通信。为此,我们在这一步中将序曲 - LML 传感器注册到管理器。在管理器上,我们运行以下命令来注册 prelude-lml 传感器。
# prelude-admin register prelude-lml ’idmef:w admin:r’ 127.0.0.1 –uid 0 –gid 0
现在它正在等待服务器生成的密码的输入。由于我们的 Prelude-lml 工具运行在与管理器相同的服务器上,因此应使用第二个终端窗口。
# prelude-admin registration-server prelude-manager
此命令为我们的传感器生成一个密码,该密码是注册时所需的。在管理器中成功输入密码后,必须再次确认注册。现在管理器和传感器(Prelude-lml)相互连接。
- 步骤 5
-
我们已经在步骤 2 中配置了管理器,现在必须设置传感器(Prelude-lml)。为此,我们编辑以下文件
# nano /etc/prelude-lml/prelude-lml.conf
这里需要注释掉两行代码,以便传感器设置正确的服务器地址。
[prelude]
server-addr = 127.0.0.1
- 步骤 6
-
序曲现在已经完全可以使用了,但我们仍然缺乏结果的图形表示,我们可以通过在浏览器中显示 Prewikka 来获得。因此,再次建议检查数据库。
# nano /etc/prewikka/prewikka.conf
- 清单 10.1 数据库名称和用户(示例)
type: pgsql
host: localhost
user: prelude
pass: prelude
name: prelude
[database]
type: pgsql
host: localhost
user: prewikka
pass: prewikka
name: prewikka
最后,可以配置 Apache 服务器,以便它也从 Prewikka 获取必要的文件。
# nano /etc/apache2/apache2.conf
在该文件的末尾,必须添加以下代码
- 清单 10.2 Apache 的 Prewikka 配置
{{TT block Alias /prewikka/prewikka/ /usr/share/prewikka/htdocs/ScriptAlias /prewikka/ /usr/share/prewikka/cgi-bin/prewikka.cgi<Directory /usr/share/prewikka/htdocs/> Options None AllowOverride None Order allow,deny Allow from all </Directory> <Directory /usr/share/prewikka/cgi-bin/> AllowOverride None Options ExecCGI <IfModule mod_mime.c> AddHandler cgi-script .cgi </IfModule> Order allow,deny Allow from all </Directory> }} 重新配置后,必须重新启动 Apache。
# /etc/init.d/apache2 restart
必须使用以下守护进程启动 Prewikka(在每次重启后)
# /usr/bin/prewikka-httpd
现在可以在浏览器中访问 Prewikka。(当然,请用您的 eth0 inet 地址替换 IP 地址)
192.168.178.56/prewikka/
名称:admin
密码:admin
在安装过程中,可能会出现一些问题,以下是我想简要讨论的一些问题。
在第 8 步启动 Prewikka 时,最终会出现一个错误,报告 prewikka.conf 文件权限不足。如果出现此错误,则必须使用以下命令再次调整该文件的权限。
# chmod 755 /etc/prewikka/prewikka.conf
我们使用 PreSQL 而不是 mySQL 的原因是 Prelude 使用过时的数据库设置。它使用过时的命令“TYPE = InnoDB”,但是 mySQL 5.0+ 只接受命令“ENGINE = InnoDB”。这确实可以在以下文件中进行修正
# nano /usr/share/libpreludedb/classic/mysql.sql
它也接受了这个文件,但随后由于 libpreludedb 中的错误,无法从 prelude-manager 启动。
因此,建议为 Prelude 使用 PreSQL 数据库。
我们使用 Prewikka,以便我们从所有传感器收集的数据,Prelude Manager 都能以图形化的 Web 界面清晰地显示出来。在这里,我们获得了所有必要的信息,这些信息也可以在 Prelude Manager 数据库中找到。在本例中,我们只注册了 Prelude Manager 和 Prelude-LML 传感器,它当前读取系统的 auth.log 文件。
- Prelude 网站: https://www.prelude-ids.org/
- Prelude Manager 指南: https://www.prelude-ids.org/wiki/1/PreludeManager
- Prewikka 指南: http://security.ncsa.illinois.edu/research/mithril/PrewikkaInstall.html
- PostgreSQL 指南: https://help.ubuntu.com/community/PostgreSQL
- 视频安装教程: http://www.youtube.com/watch?v=oV4JCqi0FJw