介绍
OSSEC 是一个开源的、基于主机的入侵检测系统 (HIDS),它执行日志分析、完整性检查、Windows 注册表监控、rootkit 检测、基于时间的警报和主动响应。 如果您想密切关注其中发生的事情,它就是安装在您的服务器上的应用程序。 Windows 和所有类 Unix 操作系统都支持 OSSEC; 但是,本教程中使用的 Droplet 都运行 Ubuntu 14.04。
可以安装 OSSEC 以仅监视安装它的服务器,这是 OSSEC 术语中的本地安装。 之前关于 OSSEC 的两个教程是本地 OSSEC 安装的示例:如何在 Ubuntu 14.04 上安装和配置 OSSEC 安全通知和 如何在 FreeBSD 10.1 上安装和配置 OSSEC。
OSSEC 也可用于监控数千个其他服务器,称为 OSSEC agents。 OSSEC 代理由另一种类型的 OSSEC 安装监控,称为 OSSEC 服务器 。 将 OSSEC 服务器配置为监视一个或多个代理后,可以随时添加或删除其他代理。 OSSEC 代理的监控可以通过安装在代理上的代理软件或通过无代理模式进行。 本教程将使用代理模式,这需要在代理上安装 OSSEC 代理软件。
在本教程中,您将学习如何安装 OSSEC 服务器和 OSSEC 代理,然后配置服务器和代理,以便服务器监控代理,服务器向您的电子邮件发送警报。
先决条件
要完成本教程,您将需要以下内容。
- 两个 Ubuntu 14.04 Droplet。 请务必记下两者的 IP 地址,您可以在 DigitalOcean 仪表板上看到这些地址。 我们将它们分别称为
your_server_ip
和your_agent_ip
。 - 两个Droplet上的sudo非root用户,可以按照【X98X】本教程【X115X】的前三步获取。
- 两者都启用了 iptables 防火墙。 在 Linux 中,OSSEC 的最新稳定版本需要 iptables 来实现其主动响应功能。 它不适用于 ufw,Ubuntu 上的默认防火墙应用程序。 按照 如何在 Ubuntu 14.04 上使用 iptables 设置防火墙中的说明在两台服务器上设置 iptables。
第 1 步 — 在服务器和代理上下载并验证 OSSEC
我们将首先在两个 Droplet(服务器和代理)上下载和验证 OSSEC。 除非另有说明,否则此步骤中的所有命令都应在两个 Droplet 上执行。
OSSEC 作为压缩 tarball 交付。 在本节中,您将下载 OSSEC 及其校验和文件,该文件用于验证 tarball 是否未被篡改。 首先,像往常一样登录服务器,然后更新包数据库。
sudo apt-get update
安装任何可用的更新。
sudo apt-get upgrade
最后,安装所需的软件包。
在 服务器 上,您应该安装以下内容:
sudo apt-get install inotify-tools build-essential
在 agent 上,您应该安装以下内容:
sudo apt-get install build-essential
之后,在两个 Droplet 上,下载 OSSEC 及其校验和文件。 您可以查看 项目的网站 以获取最新版本,但以下是撰写本文时的最新版本。
wget -U ossec http://www.ossec.net/files/ossec-hids-2.8.1.tar.gz wget -U ossec http://www.ossec.net/files/ossec-hids-2.8.1-checksum.txt
下载这两个文件后,验证压缩 tarball 的 md5sum。
md5sum -c ossec-hids-2.8.1-checksum.txt
输出应该是:
ossec-hids-2.8.1.tar.gz: OK md5sum: WARNING: 1 line is improperly formatted
然后验证 SHA1 校验和。
sha1sum -c ossec-hids-2.8.1-checksum.txt
它的输出应该是:
ossec-hids-2.8.1.tar.gz: OK sha1sum: WARNING: 1 line is improperly formatted
在每种情况下,忽略 WARNING 行。 OK 行是确认文件是好的。
第 2 步 — 安装 OSSEC 服务器
在这一步中,我们将安装 OSSEC server,因此这些命令只能在一个 Droplet 上执行。 在开始安装服务器之前,解压缩它。
tar xf ossec-hids-2.8.1.tar.gz
它将被解压到一个名为 ossec-hids-2.8.1
的目录中,进入该目录。
cd ossec-hids-2.8.1/
然后开始安装。
sudo ./install.sh
在整个设置过程中,系统会提示您提供一些输入。 在大多数情况下,您需要做的就是按 ENTER 接受默认值。
系统将提示您进行的第一个选择是选择安装语言。 默认情况下,它是英语 (en),所以如果这是您的首选语言,请按 ENTER。 否则,请输入支持语言列表中的 2 个字母。
下一个问题将询问您想要什么样的安装。 在这里,输入 服务器。
1- What kind of installation do you want (server, agent, local, hybrid or help)? server
对于后面的其余问题,您可以接受默认值,这意味着只需按 ENTER。 对于电子邮件问题,请务必输入有效的电子邮件地址。 通知将发送给它。
如果安装成功,您应该得到以下输出:
- System is Debian (Ubuntu or derivative). - Init script modified to start OSSEC HIDS during boot. - Configuration finished properly. ... More information can be found at http://www.ossec.net --- Press ENTER to finish (maybe more information below). ---
然后按 ENTER,你应该会看到:
- In order to connect agent and server, you need to add each agent to the server. Run the 'manage_agents' to add or remove them: /var/ossec/bin/manage_agents More information at: http://www.ossec.net/en/manual.html#ma
第 3 步 — 配置 OSSEC 服务器
由于尚未安装代理,我们稍后将处理将其添加到服务器的任务。 现在,让我们配置服务器以确保它可以发送警报。
在这里,我们将配置 OSSEC 服务器的电子邮件设置,并确保它可以向指定的电子邮件发送警报。 要访问和修改 OSSEC 的文件和目录,您需要切换到 root 用户。
sudo su
现在你是 root,cd
进入 OSSEC 的配置文件所在的目录。
cd /var/ossec/etc
配置文件为ossec.conf
。 首先,制作备份副本。
cp ossec.conf ossec.conf.00
然后打开原件。 在这里,我们使用 nano
文本编辑器,但您可以使用任何您喜欢的。
nano ossec.conf
电子邮件设置位于文件顶部。 以下是您将更改的字段的说明,后跟示例 ossec.conf
文件。
- '是您在安装过程中提供的电子邮件。 警报将发送到该电子邮件地址。
- '是 OSSEC 警报的来源。 将其更改为有效的电子邮件地址,以降低您的电子邮件被电子邮件提供商的 SMTP 服务器标记为垃圾邮件的几率。
- 如果您有自己的电子邮件服务器,并且它与安装 OSSEC 服务器的主机位于同一主机上,您可以更改'设置为'本地主机 .
注意'和'可以是一样的。 这是您完成后该部分的外观; 用您自己的变量替换红色的变量。
<global> <email_notification>yes</email_notification> <email_to>sammy@example.com</email_to> <smtp_server>mail.example.com.</smtp_server> <email_from>sammy@example.com</email_from> </global>
修改电子邮件设置后,保存并关闭文件。 然后启动 OSSEC。
/var/ossec/bin/ossec-control start
检查您的收件箱中是否有一封说明 OSSEC 已启动的电子邮件。 如果您没有看到该电子邮件,请检查您的垃圾邮件文件夹。
第 4 步 — 安装 OSSEC 代理
在本节中,您将学习如何在您的第二个 Droplet 上安装 OSSEC agent。 这将类似于安装服务器。 在开始安装代理之前,解压它。
tar xf ossec-hids-2.8.1.tar.gz
它将被解压到一个名为 ossec-hids-2.8.1
的目录中,进入该目录。
cd ossec-hids-2.8.1/
然后开始安装。
sudo ./install.sh
大部分提示与之前相同,但也有一些不同。 当被问及:
1- What kind of installation do you want (server, agent, local, hybrid or help)? agent
答案应该是 agent。 当被问到:
3.1- What's the IP Address or hostname of the OSSEC HIDS server?:your_server_ip
输入您之前获得的 OSSEC 服务器的 IP 地址。 这是另一个 Droplet(安装 OSSEC 服务器的那个)的 IP 地址。
对于其他问题,通过按 ENTER 接受默认值,就像您在安装 OSSEC 服务器期间所做的那样。 安装后,你应该得到这个输出:
- System is Debian (Ubuntu or derivative). - Init script modified to start OSSEC HIDS during boot. - Configuration finished properly. ... More information can be found at http://www.ossec.net --- Press ENTER to finish (maybe more information below). ---
再次按 ENTER 后,您应该会看到:
- You first need to add this agent to the server so they can communicate with each other. When you have done so, you can run the 'manage_agents' tool to import the authentication key from the server. /var/ossec/bin/manage_agents More information at: http://www.ossec.net/en/manual.html#ma
现在代理和服务器已经安装好了,但是还不能通信。
第 5 步 — 将代理添加到服务器并提取其密钥
在 OSSEC 服务器上,开始添加代理程序。
注意:从步骤 3 开始,您仍应以 root 身份操作,因此您不需要在任何这些命令中使用 sudo
。
/var/ossec/bin/manage_agents
然后,您将看到如下所示的选项。 选择 a 添加代理。
(A)dd an agent (A). (E)xtract key for an agent (E). (L)ist already added agents (L). (R)emove an agent (R). (Q)uit. Choose your action: A,E,L,R or Q: a
然后系统会提示您指定代理的名称、其 IP 地址和 ID。 使名称唯一,因为它将帮助您过滤从服务器收到的警报。 对于 ID,您可以通过按 ENTER 接受默认值。
当您输入所有三个字段时,输入 y 进行确认。
- Adding a new agent (use '\q' to return to the main menu). Please provide the following: * A name for the new agent: agentUbuntu * The IP Address of the new agent: your_agent_ip * An ID for the new agent[001]: Agent information: ID:001 Name:agentUbuntu IP Address:111.111.111.111 Confirm adding it?(y/n): y Agent added.
之后,您将返回主菜单。 现在您必须提取代理的密钥,该密钥将回显到屏幕上。 (它将与下面示例中的不同。)确保复制它,因为您必须为代理输入它。
... Choose your action: A,E,L,R or Q: e Available agents: ID: 001, Name: agentUbuntu, IP: 111.111.111.111 Provide the ID of the agent to extract the key (or '\q' to quit): 001 Agent key information for '001' is: MDAxIGFnZW50VWJ1bnyEwNjI5MjI4ODBhMDkzMzA4MR1IXXwNC4yMzYuMjIyLjI1MSBiMTI2U3MTI4YWYzYzg4M2YyNTRlYzM5M2FmNGVhNDYTIwNDE3NDI1NWVkYmQw ** Press ENTER to return to the main menu.
按 ENTER 后,您将再次返回主菜单。 输入 q 退出。
... Choose your action: A,E,L,R or Q: q ** You must restart OSSEC for your changes to take effect. manage_agents: Exiting ..
第 6 步 — 将密钥从服务器导入到代理
此部分必须在代理上完成,它涉及导入(复制)在服务器上提取的代理密钥并将其粘贴到代理的终端上。 首先,通过键入以下内容更改为 root:
sudo su
然后输入:
/var/ossec/bin/manage_agents
您将看到以下选项:
(I)mport key from the server (I). (Q)uit. Choose your action: I or Q: i
输入正确的选项后,按照说明复制并粘贴从服务器生成的密钥。
Agent information: ID:001 Name:agentUbuntu IP Address:104.236.222.251 Confirm adding it?(y/n): y Added. ** Press ENTER to return to the main menu.
返回主菜单,输入 q 退出:
Choose your action: I or Q: q
第 7 步 — 允许 UDP 端口 1514 流量通过防火墙
代理和服务器之间的通信通过 UDP 端口 1514 进行,因此您必须在两端的 iptables 中添加一条规则以允许通过该端口的流量。
首先,暂时删除代理和服务器上的丢弃规则。
sudo iptables -D INPUT -j DROP
要将规则添加到 OSSEC 服务器 ,请使用您的 OSSEC 代理的 IP 输入以下内容。
iptables -A INPUT -p UDP --dport 1514 -s your_agent_ip -j ACCEPT
然后在 agent 上,使用您的 OSSEC 服务器的 IP 输入以下内容。
iptables -A INPUT -p UDP --dport 1514 -s your_server_ip -j ACCEPT
接下来,允许所有出站流量通过代理和服务器上的防火墙。
iptables -A OUTPUT -j ACCEPT
最后,再次将删除规则添加到两者。
sudo iptables -A INPUT -j DROP
由于您在先决条件期间安装了 iptables-persistant
,因此这些规则在重新启动后应该仍然存在。
第 8 步 — 重新启动 OSSEC 代理和服务器
现在服务器和代理已配置为进行通信,请重新启动它们以使更改生效:
/var/ossec/bin/ossec-control restart
除了能够从代理本身重新启动 OSSEC 代理之外,您还可以使用 /var/ossec/bin/agent_control -R 001
从 OSSEC 服务器重新启动它,其中 001 是代理的 ID。
在 OSSEC 服务器上,您可以通过键入以下内容列出活动代理:
/var/ossec/bin/list_agents -c
如果您得到如下所示的输出,那么您就知道服务器和代理正在通话。
agentUbuntu-111.111.111.111 is active.
结论
此时,您应该会收到来自服务器的警报,其中包含来自服务器和代理的通知。 与代理有关的警报主题行类似于 OSSEC Notification - (agentUbuntu) 111.111.111.111 - Alert level 3
。 这些电子邮件的正文以 OSSEC HIDS Notification
开头。
在您确定服务器和代理可以通信后,您可以进一步自定义这两种安装。 可以在 OSSEC 服务器和代理上进行的修改以在文件添加时发出警报并实时发出警报,这与您可以在 本地 OSSEC 安装上进行的修改相同。 您可以查阅 如何在 Ubuntu 14.04 上安装和配置 OSSEC 安全通知中的相关部分,了解如何进行这些修改的步骤。
如果您有两个以上的 Droplet 需要监控,您可以使用本文中给出的相同步骤将它们作为 OSSEC 代理添加到设置中。 如果您在设置时遇到任何问题,首先要在错误日志中查找线索,该日志位于 /var/ossec/logs/ossec.log
。
本文仅介绍在服务器代理模式下设置 OSSEC 的基础知识。 更多信息可在 http://ossec-docs.readthedocs.org 获得。