上次我们介绍到USM之IDS suricata,今天我要与大家分享的是安全管理平台百宝箱中的主机IDS检测系统[HIDS],主机IDS检测系统是对网络IDS检测系统的补充。下面就让我们一起聊一聊Ossec吧。
1、简介
OSSEC是一款开源的IDS检测系统,包括了日志分析、完整性检查、rook-kit检测,基于时间的警报和主动响应。OSSEC最大的优势在于它几乎可以运行在任何一种操作系统上,比如Windows, Linux, OpenBSD,FreeBSD, 以及 MacOS。
环境:
server: centos 6.7 x86_64 172.31.30.100 【具说OpenBSD安全性最好】
agent: fedora 27 x86_64 172.31.30.101
ossec_version: 2.8.3
下载地址
wget https://codeload.github.com/ossec/ossec-hids/tar.gz/v2.8.3
源码最新版:https://codeload.github.com/ossec/ossec-hids/tar.gz/2.9.3
2、ossec 架构
-
ossec三种工作模式
- server【服务端】
- agent【代理端】
- local【本地模式】
-
一台server默认可有代理256台,最多支持2048台,需先执行sysctl -w kern.maxfiles=2048
3、安装
-
ossec server端安装
1.关闭selinux,关闭iptables
-
2.解压安装
# tar xvzf ossec-hids-2.8.3.tar.gz
# cd ossec-hids-2.8.3
# ./install.sh
-
3.启动ossec
# service ossec start
- 4.查看进程
# ps -aux |grep ossec
ossec client端安装
# tar xvzf ossec-hids-2.8.3.tar.gz
# cd ossec-hids-2.8.3
# ./install.sh
部署拓扑
可视化分析
ossec server添加ossec client
1.服务器端操作# /var/ossec/bin/manage_agents
****************************************
* OSSEC HIDS v2.8 Agent manager. *
* The following options are available: *
****************************************
(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 【添加agent】
- Adding a new agent (use '\q' to return to the main menu).
Please provide the following:
* A name for the new agent: node1 【agent名称】
* The IP Address of the new agent: 172.31.30.101 【agentIP地址】
* An ID for the new agent[001]:
Agent information:
ID:001
Name:web
IP Address:172.31.30.101
Confirm adding it?(y/n): y 【是】
Agent added.
****************************************
* OSSEC HIDS v2.8 Agent manager. *
* The following options are available: *
****************************************
(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: E 【创建KEY】
Available agents:
ID: 001, Name: web, IP: 172.31.30.101
Provide the ID of the agent to extract the key (or '\q' to quit): 001 【输入agent ID】
这个key用于客户端连接服务器
Agent key information for '001' is:
MDA2IG5vZGU1IDE3Mi4yOC4yMC4xMDcgOGIxZDc0MjgyZTFkZjRhZjE0ODU2MzAwMjc4ZTNlNjBhZWJiMmZhOTY3N2UxYjFhMGI2MmRlZmRjOGJkNmIzNQ==
** Press ENTER to return to the main menu.
****************************************
2.客户端操作
1)导入 key# /var/ossec/bin/manage_agents
****************************************
* OSSEC HIDS v2.6 Agent manager. *
* The following options are available: *
****************************************
(I)mport key from the server (I).
(Q)uit.
Choose your action: I or Q: I 【导入KEY】将服务端KEY复制到下面并按回车MDA2IG5vZGU1IDE3Mi4yOC4yMC4xMDcgOGIxZDc0MjgyZTFkZjRhZjE0ODU2MzAwMjc4ZTNlNjBhZWJiMmZhOTY3N2UxYjFhMGI2MmRlZmRjOGJkNmIzNQ==
2)启动ossec# /var/ossec/bin/ossec-control start
3)查看端口# netstat -antup|grep ossec
- 启动 OSSEC HIDS:
/var/ossec/bin/ossec-control start - 停止 OSSEC HIDS:
/var/ossec/bin/ossec-control stop
配置完成!
4、操作命令
# bin/ossec-control
> start: 启动各项服务
> stop: 停止各项服务
> restart: 重启各项服务
> status: 查看各项服务状态
> enable: [database|client-syslog|agentless|debug] 启动功能支持
> disable: [database|client-syslog|agentless|debug] 关闭功能支持
# bin/agent_control (仅服务端有)
-l 列举所有可用的agents,服务端会有一个local,表示自身也作为一个agent被监控
-lc 仅列举活跃的agents
-i 显示对应id的Agent的信息
-R 重启对应id的Agent
-r -a 在所有agents上立即运行完整性和rootkit检查
-r -u 在指定的agent上立即运行完整性和rootkit检查
-b 阻止指定的ip地址
-f 配合-b使用,指定运行哪个响应
-L 列举可用的联动
-s 更改输出到CSV(用,分隔)
# bin/manage_agents
-V 显示ossec版本信息
-l 列举可用的agents,这里不会显示local的信息
-e 得到某个agent的key(服务器用)
-r 移除某个agent(服务器用)
-i 导入key(客户端用)
-f 从文件导入keys(服务器用),文件格式为IP,NAME
5、配置web访问
安装依赖包# yum -y install wget lrzsz gcc mysql mysql-server mysql-devel httpd php php-mysql postgresql
ossec-wui web界面# wget https://github.com/ossec/ossec-wui/archive/0.9.tar.gz
# tar -xf ossec-wui-0.9.tar.gz
# cd /var/www/html/ossec/ossec-wui
设置web用户名密码# ./setup.sh
Setting up ossec ui...
Username: admin
New password:
Re-type new password:
Adding password for user admin
Setup completed successfuly.
添加web用户# vi /etc/group
ossec:x:500:apache
设置权限# chmod 770 tmp/
# chgrp apache tmp/
# vi /etc/httpd/conf.d/ossec.conf
Order deny,allow
Deny from all
Allow from 172.31.30.0/24
Options FollowSymLinks
AllowOverride None
Order deny,allow
allow from all
Options -MultiViews
AuthName "OSSEC AUTH"
AuthType Basic
AuthUserFile /var/www/html/ossec/ossec-wui/.htpasswd
Require valid-user
OSSEC的图形界面
访问URL: http://172.31.30.100/ossec/ossec-wui/
6、总结
如何深入使用OSSEC,就需要对OSSEC的规则进行细分和梳理,配置好相应的事件报警规则,采集到主机报警信息后,我们就可以进行安全防护和安全分析了。OSSEC除了主机检测系统功能外,一般还被用在SEM/SIM(安全事件管理(SEM: Security Event Management)/安全信息管理(SIM:SecurityInformation Management))解决方案中。今后我们会把OSSEC应用到USM中,作为统一安全管理平台的核心插件之一。
常见问题解决方法
1)agent未连接(Disconnected或Never connected)的状态# /var/ossec/bin/ossec-control restart
# /etc/init.d/ossec restart
用ngrep命令查看服务端的1514端口的流量信息,看看是否有日志传输过来,一般等10s左右。# ngrep -q -d any port 1514
2)查看ossec是否支持mysql# cd /u01/ossec-hids-2.8.3/src
# make setdb
Info: Compiled with MySQL support.
3)文件描述符限制
linux系统默认最大打开文件数为1024,需要修改内核参数为2048# ulimit -n 2048
# sysctl -w kern.maxfiles=2048
# sysctl -w net.core.rmem_default=5123840
# sysctl -w net.core.rmem_max = 5123840
设置开机自启动,在该文件最后添加# vi /etc/profile
ulimit -n 2048# vi /etc/security/limits.conf
ossec soft nofile 2048
ossec hard nofile 2048
ossecr soft nofile 2048
ossecr hard nofile 2048
设置完成之后,执行命令生效# source /etc/profile
# sysctl -p
查看是否成功设置open files为2048# ulimit -a