【企业安全实战】开源HIDS OSSEC部署与扩展使用
字数 1944
更新时间 2026-02-06 13:52:14

OSSEC开源HIDS部署与扩展使用实战指南

一、概述

OSSEC是一款开源基于主机的入侵检测系统(HIDS),在企业安全建设初期特别适合人手不足的安全团队快速构建安全监控体系。本指南将详细介绍OSSEC的部署配置、功能使用和扩展实践。

二、OSSEC核心功能详解

2.1 日志监控分析

OSSEC日志检测采用实时检测机制,客户端通过1514端口将监控日志发送到服务端。

配置方法

在agent的ossec.conf或agent.conf中配置<localfile>标签:

<localfile>
  <location>/var/log/secure</location>
  <log_format>syslog</log_format>
</localfile>

配置参数说明:

  • location:日志文件路径,支持strftime格式和通配符
  • log_format:日志格式(syslog、command、full_command等)
  • command:执行的命令(仅限command/full_command格式)
  • alias:命令别名,替换日志消息中的命令
  • frequency:命令运行最小时间间隔
  • check_diff:比较输出变化并生成警告

命令监控实例

磁盘空间检查配置:

<localfile>
  <log_format>command</log_format>
  <command>df -P</command>
</localfile>

对应检测规则:

<rule id="531" level="7" ignore="7200">
  <if_sid>530</if_sid>
  <match>ossec: output: 'df -P': /dev/</match>
  <regex>100%</regex>
  <description>Partition usage reached 100% (disk space monitor).</description>
  <group>low_diskspace,</group>
</rule>

端口监听监控配置:

<localfile>
  <log_format>full_command</log_format>
  <command>netstat -tan |grep LISTEN |egrep -v '(127.0.0.1| ::1)' | sort</command>
</localfile>

开机启动项监控配置:

<localfile>
  <log_format>full_command</log_format>
  <command>/bin/cat /etc/rc.local</command>
  <frequency>10</frequency>
</localfile>

2.2 文件完整性检测

Agent周期性扫描系统文件,将校验和发送到Server端进行比对。

配置参数

<syscheck>
  <directories check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
  <directories check_all="yes" realtime="yes">/bin,/sbin</directories>
</syscheck>

关键属性:

  • realtime:实时监控
  • report_changes:报告文件变化
  • check_all:检查所有属性
  • check_sum:监测MD5和SHA1变化
  • check_size:监测文件大小
  • check_owner:监测属主
  • check_group:监测属组
  • check_perm:监测文件权限
  • frequency:检测周期
  • scan_time:扫描开始时间
  • alert_new_files:新文件创建时告警

Prelink误报处理

由于Prelink会修改二进制文件导致MD5变化,需要配置:

<prefilter_cmd>/usr/sbin/prelink -y</prefilter_cmd>

2.3 Rootkit检测

检测原理

  1. 文件对比:对比rootkit_files.txt中的特征文件
  2. 二进制特征:检测rootkit_trojans.txt中的特征
  3. 系统扫描:检测异常文件、权限、隐藏进程等

配置文件

<rootcheck>
  <rootkit_files>/var/ossec/etc/shared/rootkit_files.txt</rootkit_files>
  <rootkit_trojans>/var/ossec/etc/shared/rootkit_trojans.txt</rootkit_trojans>
  <system_audit>/var/ossec/etc/shared/system_audit_rcl.txt</system_audit>
</rootcheck>

误报处理

添加规则屏蔽误报:

<rule id="517" level="0">
  <if_sid>510</if_sid>
  <match>hidden from /proc</match>
  <description>Ignored process hidden entries.</description>
  <group>rootcheck,</group>
</rule>

2.4 主动响应联动

配置结构

<ossec_config>
  <command>
    <name>host-deny</name>
    <executable>host-deny.sh</executable>
    <expect>srcip</expect>
    <timeout_allowed>yes</timeout_allowed>
  </command>
  
  <active-response>
    <command>host-deny</command>
    <location>local</location>
    <level>5</level>
    <timeout>60</timeout>
  </active-response>
</ossec_config>

参数说明

Command配置:

  • name:响应脚本名称
  • executable:可执行文件路径
  • expect:传递参数(srcip/user)
  • timeout_allowed:是否支持超时

Active-response配置:

  • disabled:是否禁用
  • command:执行的命令名称
  • location:执行位置(local/server/defined-agent/all)
  • level:触发级别
  • timeout:动作持续时间

响应脚本参数

  • $1:动作(add/delete)
  • $2:用户参数
  • $3:源IP地址
  • $4:时间戳
  • $5:规则号

三、批量部署方案

3.1 非交互式安装配置

创建preloaded-vars.conf文件:

USER_LANGUAGE="cn"
USER_NO_STOP="y"
USER_INSTALL_TYPE="agent"
USER_DIR="/var/ossec"
USER_ENABLE_ACTIVE_RESPONSE="y"
USER_ENABLE_SYSCHECK="y"
USER_ENABLE_ROOTCHECK="y"
USER_AGENT_SERVER_IP="10.111.111.111"

3.2 自动密钥认证

服务端SSL证书生成:

openssl genrsa -out /var/ossec/etc/sslmanager.key 2048
openssl req -new -x509 -key /var/ossec/etc/sslmanager.key \
  -out /var/ossec/etc/sslmanager.cert -days 365

启动认证服务:

/var/ossec/bin/ossec-authd

客户端自动注册:

/var/ossec/bin/agent-auth -m 192.168.192.193 -p 1515 -A 192.168.192.196

3.3 SaltStack部署模板

include:
  - mk_Downloads

install_packages:
  pkg.latest:
    - pkgs:
      - openssl-devel
      - gcc
      - prelink

install_ossec:
  cmd.run:
    - name: tar zxf ossec.tar.gz && cd ossec && sh install.sh
    - cwd: /root/Downloads
    - unless: test -e /var/ossec/bin/ossec-control
    - require:
      - file: /root/Downloads/ossec.tar.gz

agentauth:
  cmd.run:
    - name: /var/ossec/bin/agent-auth -m 10.59.0.248 -p 1515 -A $(ifconfig | egrep -o '10\.(59|211|200).[0-9]{1,3}.[0-9]{1,3}' | head -n 1)
    - unless: test -s /var/ossec/etc/client.keys
    - require:
      - cmd: install_ossec

四、数据库与Web界面集成

4.1 MySQL数据库配置

编译支持MySQL:

cd src
make TARGET=server DATABASE=mysql install
/var/ossec/bin/ossec-control enable database

数据库初始化:

CREATE DATABASE ossec;
GRANT INSERT,SELECT,UPDATE,CREATE,DELETE,EXECUTE ON ossec.* TO ossec@127.0.0.1;
SET PASSWORD FOR ossec@127.0.0.1 = PASSWORD('hehe123');
FLUSH PRIVILEGES;

导入表结构:

mysql -u root -phehe123 -D ossec < /tmp/ossec-hids-2.9.0/src/os_dbd/mysql.schema

配置文件添加:

<database_output>
  <hostname>127.0.0.1</hostname>
  <username>ossec</username>
  <password>hehe123</password>
  <database>ossec</database>
  <type>mysql</type>
</database_output>

4.2 WebUI安装部署

依赖安装:

yum -y install gcc gcc-c++ apr-devel apr-util-devel pcre pcre-devel openssl openssl-devel

Apache编译安装:

# 安装apr
./configure --prefix=/usr/local/apr
make && make install

# 安装apr-util  
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install

# 安装httpd
./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr \
  --with-apr-util=/usr/local/apr-util --enable-dav --enable-so \
  --enable-maintainer-mod --enable-rewrite
make && make install

OSSEC-WUI部署:

tar zxvf ossec-wui-0.9.tar.gz
mv ossec-wui-0.9 /var/www/html/ossec-wui
cd /var/www/html/ossec-wui
./setup.sh
service httpd start

五、监控功能扩展

5.1 反弹Shell检测

监控存在网络连接的Bash进程:

<localfile>
  <log_format>full_command</log_format>
  <command>netstat -antlp | grep ESTABLISHED | egrep '/(bash|sh)'</command>
</localfile>

5.2 文件监控扩展配置

关键目录监控:

<syscheck>
  <directories check_all="yes" realtime="yes">/etc,/usr/bin,/usr/sbin</directories>
  <directories check_all="yes">/root/users.txt,/bsd,/root/db.html</directories>
</syscheck>

自定义告警级别:

<rule id="100345" level="12">
  <if_matched_group>syscheck</if_matched_group>
  <match>/var/www/htdocs</match>
  <description>Changes to /var/www/htdocs - Critical file!</description>
</rule>

5.3 系统配置审计

利用system_audit文件进行合规性检查:

<system_audit>/var/ossec/etc/shared/cis_rhel_linux_rcl.txt</system_audit>
<system_audit>/var/ossec/etc/shared/cis_debian_linux_rcl.txt</system_audit>

六、运维管理要点

6.1 服务管理命令

Agent管理:

# 查看Agent状态
/var/ossec/bin/agent_control -l

# 重启Agent检测
/var/ossec/bin/agent_control -r -u [agent_id]

# 查看特定Agent信息
/var/ossec/bin/agent_control -i [agent_id]

服务控制:

/var/ossec/bin/ossec-control start    # 启动服务
/var/ossec/bin/ossec-control stop     # 停止服务  
/var/ossec/bin/ossec-control restart  # 重启服务

6.2 日志文件位置

  • 告警日志/var/ossec/logs/alerts/alerts.log
  • 系统日志/var/ossec/logs/ossec.log
  • 差异比对/var/ossec/queue/diff/
  • 文件校验/var/ossec/queue/syscheck/
  • Rootkit检测/var/ossec/queue/rootcheck/

6.3 性能优化建议

  1. 调整扫描频率:根据业务负载调整syscheck频率
  2. 合理配置目录:避免监控过多非关键目录
  3. 使用实时监控:对关键目录启用realtime监控
  4. 优化规则配置:合理设置规则级别和忽略条件

本指南涵盖了OSSEC的核心功能配置、批量部署方案、数据库集成以及监控扩展实践,为企业安全团队提供完整的HIDS建设参考方案。

 全屏