# 前言
OSSEC是一款开源的基于主机的入侵检测系统,可以简称为HIDS。它具备日志分析,文件完整性检查,策略监控,rootkit检测,实时报警以及联动响应等功能。它支持多种操作系统:Linux、Windows、MacOS、Solaris、HP-UX、AIX。属于企业安全之利器。
详细的介绍和文档可以参考官网网站:
http://www.ossec.net/ (opens new window)
# 一、搭建环境
参看文章:
ossec官方安装文档 (opens new window)
全网最详细的最新稳定OSSEC搭建部署(ossec-server(CentOS7.X)和ossec-agent(CentOS7.X) (opens new window)
系统:Centos7
计算机 | ip |
---|---|
ossec-server | 172.16.30.23 |
ossec-agent | 172.16.30.24 |
安装软件及版本:
ossec3.0
mariadb5.5.6
安装方式:
ossec-server: 服务端使用docker安装
ossec-agent:客户端使用yum安装
数据库:安装在ossec-server服务端
# 二、搭建流程
# 1、安装前环境准备(服务器和客户端都需要操作)
# 关闭selinux
代码语言:javascript复制setenforce 0
sed -i 's#enforcing#disabled#g' /etc/selinux/config
# 关闭防火墙
代码语言:javascript复制systemctl stop firewalld.service
systemctl disable firewalld.service
# 2、数据库安装和ossec数据库配置
# 在ossec服务端安装数据库
# 使用yum安装mariadb
代码语言:javascript复制yum install -y mariadb-server mariadb mariadb-devel
systemctl start mariadb
systemctl enable mariadb
# 初始化mariadb
代码语言:javascript复制mysql_secure_installation
#设置root,密码root(自行修改)
# 创建ossec的数据库及授权
代码语言:javascript复制mysql -uroot -proot
create database ossec;
grant all on ossec.* to ossec@localhost; #授权
set password for ossec@localhost=password('ossec'); #给ossec帐号创建密码
flush privileges;
exit
# 添加ossec数据库表结构
下载ossec二进制文件,主要使用其中mysql.schema文件,ossec-hids-3.0.0.tar.gz的下载地址:
ossec官网下载地址:https://github.com/ossec/ossec-hids/archive/3.0.0.tar.gzhttps://github.com/ossec/ossec-hids/archive/3.0.0.tar.gz
ossec-hids-3.0.0.tar.gz百度云下载地址:链接:百度网盘 请输入提取码 (opens new window)
密码:38r8
下载ossec-hids-3.0.0.tar.gz后进行操作:
代码语言:javascript复制cd /usr/local/src
tar zxf ossec-hids-3.0.0.tar.gz
cd ossec-hids-3.0.0
mysql -uossec -p ossec < ./src/os_dbd/mysql.schema
ossec表结构添加完成
# 3、ossec-server服务端安装
# 使用docker安装ossec服务端
# docker安装完成后,使用以下命令安装ossec-sever的安装:
代码语言:javascript复制docker run --name ossec-server -d -p 1514:1514/udp -p 1515:1515
-e SYSLOG_FORWADING_ENABLED=true -e SYSLOG_FORWARDING_SERVER_IP=172.16.30.23
-v /var/ossec/data:/var/ossec/data xetusoss/ossec-server
docker命令解释:
代码语言:javascript复制--name:该docker容器命名为ossec-server
-d:后台运行
-p 1514:1514/udp -p 1515:1515 : 映射宿主机和docker容器端口号
-e SYSLOG_FORWADING_ENABLED=true -e SYSLOG_FORWARDING_SERVER_IP=172.16.30.23 :
-v /var/ossec/data:/var/ossec/data : 挂载容器路径
xetusoss/ossec-server : 使用镜像仓库地址
# docker容器启动成功后,进入ossec-sever容器操作:
代码语言:javascript复制dokcer ps
# 进入docker容器的命令
docker exec -it ossec-server bash
# 在docker容器对ossec-server服务端进行配置操作:
代码语言:javascript复制# 添加ossec对数据库的支持
/var/ossec/bin/ossec-control enable database
# 给ossec.conf文件授权
chmod u w /var/ossec/etc/ossec.conf
# 编辑ossec.conf文件
vi /var/ossec/data/etc/ossec.conf
## 在ossec.conf添加MySQL配置:
<database_output>
<hostname>172.16.30.23</hostname>
<username>ossec</username>
<password>ossec</password>
<database>ossec</database>
<type>mysql</type>
</database_output>
## 在ossec.conf添加ip网段配置
<remote>
<connection>syslog</connection>
<allowed-ips>172.16.0.0/16</allowed-ips>
</remote>
## 添加邮件信息
<global>
<email_notification>no</email_notification>
<email_to>ser365@qq.com</email_to>
<smtp_server>smtp.your_domain.com.</smtp_server>
<email_from>ossecm@ossec.your_domain.com.</email_from>
</global>
# 在服务端添加代理端主机:
代码语言:javascript复制# 在ossec-server的docker环境里
/var/ossec/bin/manage_agents
# 在出现的选择中选A,添加agent,分别给填写:
ossec-agent #自己取的名字
172.16.30.22 #agent服务器的IP
022 #自己规定的ID
# 在服务端获取代理端的key
代码语言:javascript复制# 在ossec-server的docker环境里
/var/ossec/bin/manage_agents`
# 在出现的选择中选E,在随后的提示里输入ID号:022,
就能得到ID为022的agent主机的KEY
# 启动ossec服务端
代码语言:javascript复制# 在ossec-server的docker环境里
/var/ossec/bin/ossec-control start
# 4、oss-agent客户端安装
# 使用yum安装ossec-agent
ossec-agent是使用yum安装,在要监控的agent服务器中操作:
代码语言:javascript复制wget -q -O - https://updates.atomicorp.com/installers/atomic |sh
yum install ossec-hids ossec-hids-client
# 配置ossec-agent配置文件
配置ossec-agent的配置文件,我们需要删除ossec-agent.conf的配置信息,因为这与ossec-server服务器上的配置重复了,不处理会在启动出现报错。
代码语言:javascript复制vim /var/ossec/etc/ossec-agent.conf
# 将ossec-agent.conf文件里的内容删减到只剩:
<!-- OSSEC example config -->
<ossec_config>
<client>
<server-ip>172.16.30.23</server-ip>
</client>
</ossec_config>
# 在agent添加key
代码语言:javascript复制/var/ossec/bin/manage_agents
# 输入I,将ID022的agent机器的KEY加入
# 启动ossec-agent客户端
代码语言:javascript复制/var/ossec/bin/ossec-control start
# 三、ossec的server和agent连接查看
# 查看ossec连接情况
在ossec服务端,查看agent的连接情况
代码语言:javascript复制# 在ossec-serverdocker环境里
/var/ossec/bin/agent_control -l
#
OSSEC HIDS agent_control. List of available agents:
ID: 000, Name: cacee8d64533 (server), IP: 127.0.0.1, Active/Local
ID: 001, Name: DEFAULT_LOCAL_AGENT, IP: 127.0.0.1, Never connected
ID: 022, Name: ossec-agent22, IP: 172.16.30.22, Active
# 显示ID:022的活动状态为Active,即为连接成功在活动中