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