1. 目的
方便运维人员、系统管理员和安全人员,快速掌握 OSSEC HIDS 的部署及使用,特此编写本指导。
2. 概述
本文从 OSSEC 的部署到高级使用方面进行编写,由浅入深。
3. 功能
OSSEC 属于基于主机和应用的入侵检测系统,通过监视企业重要服务器和各种应用以避免企业资源被攻击、滥用和误用。
OSSEC 是一款开源的多平台的入侵检测系统,可以运行于 Windows, Linux, OpenBSD/FreeBSD, 以及 MacOS 等操作系统中。包括了日志分析、全面检测、rootkit 检测。作为一款 HIDS,OSSEC 应该被安装在一台实施监控的系统中。
主要功能有日志分析、完整性检查、rootkit 检测、基于时间的警报和主动响应。OSSEC 部署方式为 C/S。
- 官网: http://ossec.github.io/
- 下载页面: http://ossec.github.io/downloads.html
- 书籍: http://www.amazon.com/OSSEC-Host-Based-Intrusion-Detection-Guide/dp/159749240X
- 帮助文档: http://ossec-docs.readthedocs.org/en/latest/manual/index.html
4. 逻辑结构图
5. OSSEC 工作原理
Administrator:是一个 Unix 和 Linux 平台下的命令行用户界面(GUI),主要起管理维护作用,对 OSSEC 的大部分管理、配置工作都在这里进行。它的主要作用为建立和断开与 Manager 的连接、组织和配置代理(Agent)、创建和管理各种类型策略、管理 OSSEC 用户和用户优先级、在需要的时候更新 Manager 的许可证优先级等等。
Event Viewer:这是一个单独的 Unix、Linux 平台下的图形化用户界面,用于查看从 Agent 中获取的各种事件数据,也就是报警的窗口。这是 OSSEC 比较独特的一点。一般来说入侵检测系统的管理配置与事件查看功能会结合在一起,用户在看到事件查看模块中的报警后,可以利用管理配置模块来进行策略的调配或者采取其他行动。OSSEC 这种分开的做法是出于对管理员职责划分的考虑,在某些企业里可能会把安全管理员分为不同的级别,级别高的管理员可以做所有的事情,而级别低的管理员只允许进行日常的状态与安全情况的监护,但不能实际采取操作去处理问题,他必须向上汇报情况,由上级管理员来处理。这时一个只能显示报警而不能进行实际策略的更改的 Event Viewer 就比较合适了。
Manager:是一个运行在后台的应用软件,Manager 没有图形化界面,其主要功能是维护与所有注册代理(Agent)的安全通讯维护域的主列表和把相应的策略分发到每一个代理(Agent);把有关域和策略的变化通知给相应的代理(Agent);接收和存储来自于代理的事件数据;作为 OSSEC Administrator、OSSEC Event Viewer 和 Agent 之间通讯的桥梁,维护策略列表和所属域。
Agent(代理):主要起如下作用:监视时间收集器;在发现攻击时,执行相应的动作如通知用户、发送 E-mail、通知管理员、终止会话、关闭机器等。从 Manager 中接受安全升级(Security Update)。建立与 Manager 的安全连接,同时加密数据以便数据可以在网络中安全传送。OSSEC 代理被安装在服务器或工作站中,这些代理可以监视该系统中的所有行为,包括和操作系统的交互通信以及特定的应用,从而可以主动保护企业资源和业务免受非法使用和破坏。
其工作原理可以很形象地用如下流程描述:
6. 前期准备
6.1. 环境准备
需要两台 CentOS 6.5 虚拟机或服务器
服务器端
- IP: 192.168.142.129
- 机器名: ossec-server
客户端
- IP: 192.168.142.130
- 机器名: ossec-agent
6.2. 关闭 SELinux
6.3. 先决条件
启动 httpd、mysql、sendmail 服务
7. 服务端部署
7.1. 下载 OSSEC
首先通过官网的链接下载当前的最新稳定版本 2.8.2 的服务端包,同时解压。
7.2. 目录说明
7.3. 安装过程
为了使OSSEC支持MySQL,需要在安装前执行make setdb
命令:
看到如下的信息说明可以正常支持MySQL:
下面进入安装步骤,执行install.sh
脚本:
直到碰到上面内容,说明安装完成。
7.4. 添加数据库支持
数据库主要提供日志存储,analogi图形化展示结果
7.5. 配置OSSEC
导入MySQL表结构到MySQL中:
修改部分配置文件的权限,否则会启动服务失败:
然后我们编辑ossec.conf
文件,在ossec_config
中添加MySQL配置:
由于我们在前面的安装过程中支持接受远程机器的syslog,所以我们还需要对ossec.conf
文件中的syslog部分进行配置,修改ossec.conf
文件,按照下面的内容进行修改,把我们网段可以全添加进去:
在实际的实验过程中启动ossec服务端必须先添加一个客户端,否则直接启动服务端是会失败的,通过如下命令查看日志会发现如下错误:
8. 客户端部署
8.1. 下载客户端
8.2. 安装过程
它会列出所有连接的客户端:
到此,OSSEC服务端和客户端就安装完成了。
8.3. 客户端配置
有时需要对客户端进行一些特殊配置,比如只监控某些日志文件,或者设置一些特殊的告警级别等。这些都需要修改客户端的ossec.conf
配置文件。
以监控Apache的access日志为例,编辑/var/ossec/etc/ossec.conf
文件,在localfile部分添加:
然后重启客户端:
服务端就会开始接收并分析客户端Apache的access日志了。
9. OSSEC Web界面
OSSEC有一些基于Web的前端界面供用户使用,提供了方便的可视化操作和状态查看。下面介绍两种Web前端。
9.1. OssecWUI
OssecWUI是一款轻量级的基于Web的OSSEC前端,提供了基本的状态查看和配置功能。它使用PHP开发,对服务器的要求较低。
安装步骤:
- 下载OssecWUI:
- 将OssecWUI目录复制到Apache的DocumentRoot目录下,如
/var/www/html/ossecwui
- 修改
ossecwui/config.php
文件,配置OSSEC的路径和其他参数。 - 在浏览器访问
http://serverIP/ossecwui
即可使用。
9.2. OSSEC Web UI
OSSEC Web UI是一款功能更加完善的Web前端,它基于Java开发,提供了日志分析、图形化报表、报警管理等丰富功能。但它对服务器的要求也更高。
安装步骤:
- 下载OSSEC Web UI,解压到目录如:
/opt/ossec-wui
- 安装Java运行环境和MySQL数据库支持。
- 导入MySQL的初始化数据:
- 修改
/opt/ossec-wui/config/ossec.xml
文件,配置OSSEC路径和MySQL连接信息。 - 启动OSSEC Web UI:
- 在浏览器访问
http://serverIP:8008
即可使用。
通过Web界面,我们可以方便的查看OSSEC的状态、分析日志、配置报警等,提高了OSSEC的可用性和易用性。
以上就是OSSEC的完整安装部署步骤,包括服务端、客户端的安装,MySQL数据库支持的配置,以及Web界面的使用等内容。OSSEC作为一款优秀的开源主机入侵检测系统,相信会为您的系统安全保驾护航。