OSSEC入侵检测介绍
OSSEC是一款开源的多平台基于主机的入侵检测系统,可以简称为HIDS。它具备日志分析,文件完整性检查,策略监控,rootkit检测,实时报警以及联动响应等功能。它支持多种操作系统:Linux、Windows、MacOS、Solaris、HP-UX、AIX。可以采用C/S模式来运行。客户机通过客户端程序将数据发回到服务器端进行分析。OSSEC默认具有一个ossec-logtest工具用于测试OSSEC的泛化及告警规则。该工具一般默认安装于目录 /var/ossec 中。
官方文档说明:Supported Systems — OSSEC
OSSEC官方主页:http://www.ossec.net
检测原理:
代理(agent)会使用1514端口发送日志给服务端(server),然后服务端分析这些日志并且整理到alerts.log文件。
尝试使用Ubuntu配置了OSSEC,碰见很多问题并解决了,发表博客让后来者不要踩那么多坑
环境 :
server :Ubuntu22.04 64位 内存4GB 处理器4 硬盘60G
agent: 1.Windows11 64位 2.Ubuntu22.04 64位
服务端配置
一、配置安装依赖项(server)
- OSSEC依赖包 & mysql 环境
sudo apt-get install build-essential make zlib1g-dev libpcre2-dev
sudo apt-get install mysql-server libmysqld-dev
sudo apt-get install libevent-dev
sudo apt-get install libsystemd-dev
sudo apt-get install libssl-dev
sudo apt install libsystemd-dev
- 安装Apache并配置防火墙
sudo apt update
sudo apt install apache2
确保防火墙允许HTTP和HTTPS流量。 可以检查UFW是否具有Apache的应用程序配置文件,如下所示
sudo ufw app list
查看Apache Full配置文件,它应该显示它启用到端口80和443流量:
sudo ufw app info "Apache Full"
允许此配置文件的传入HTTP和HTTPS流量:
sudo ufw allow in "Apache Full"
- 安装PHP
sudo apt install php libapache2-mod-php php-mysql
二、下载安装OSSEC
1、下载最新发行版 or 3.7.0版本
可以选择一个稳定的版本下载,我使用的是 3.7.0版本
git clone https://github.com/ossec/ossec-hids 下载最新版本
wget https://github.com/ossec/ossec-hids/archive/3.7.0.tar.gz 下载3.7.0版本
tar -zxvf 3.7.0.tar.gz
2、进入目录,运行install.sh
cd ossec-hids-3.7.0
sudo ./install.sh
3、开启OSSEC
sudo /var/ossec/bin/ossec-control start
三、配置OSSEC
默认的OSSEC配置文件位于/var/ossec/etc/ossec.conf。
默认情况下,当一个新文件添加到服务器时,OSSEC不会发送电子邮件警告。
我们需要修改配置文件
nano /var/ossec/etc/ossec.conf
替换以下代码
<syscheck>
<!-- Frequency that syscheck is executed - default to every 22 hours -->
<frequency>79200</frequency>
替换为:
<syscheck>
<!-- Frequency that syscheck is executed - default to every 60 seconds -->
<frequency>60</frequency>
<alert_new_files>yes</alert_new_files>
默认情况下,OSSEC不会发送实时警报。要启用此设置,请查找以下行
<!-- Directories to check (perform all possible verifications) -->
<directories check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
<directories check_all="yes">/bin,/sbin</directories>
替换为:
<directories report_changes="yes" realtime="yes" check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
<directories report_changes="yes" realtime="yes" check_all="yes">/var/www,/bin,/sbin</directories>
完成后,保存 Ctrl+S 关闭Ctrl+X文件。
可以需要编辑规则文件local_rules.xml,并为添加到系统中的新文件添加规则。
nano /var/ossec/rules/local_rules.xml
之间添加以下规则部分:
<rule id="554" level="7" overwrite="yes">
<category>ossec</category>
<decoded_as>syscheck_new_entry</decoded_as>
<description>File added to the system.</description>
<group>syscheck,</group>
</rule>
保存文件。然后,重新启动OSSEC控制服务来应用所有更改
/var/ossec/bin/ossec-control restart
四、安装OSSEC Web UI
OSSEC HIDS有一个简单的WebUI界面,需要下载。这里有一个坑,如果下载原版本的UI在高php版本会出现无法出现控制页面的BUG,因为这个UI界面是在很早之前做的已经不支持高版本的PHP所以需要修改PHP源码或者是降低PHP版本。寻找到了一个修改后的UI版本
git clone https://github.com/ossec/ossec-wui.git 原版本
git clone https://github.com/H3L0Studios/Ossec-WUI-Fixed.git 修改后的版本
cd Ossec-WUI-Fixed
tar -zxvf ossec-wui.tar.gz 解压
把文件复制到Apache的目录
cp -r ossec-wui /var/www/html/ossec
进入并开始安装
cd /var/www/html/ossec
sudo ./setup.sh
出现如下界面,设置好用户名密码即可:
设置管理员用户名/密码和Web服务器用户名:
trap: SIGHUP: bad trap
Setting up ossec ui...
Username: admin
New password: <ENTER PASSWORD>
Re-type new password:<CONFIRM PASSWORD>
Adding password for user admin@123
Enter your web server user name (e.g. apache, www, nobody, www-data, ...)
www-data
You must restart your web server after this setup is done.
Setup completed successfully.
启用Apache重写模块:
sudo a2enmod rewrite
sudo systemctl restart apache2
查看Apache运行状态:
sudo systemctl status apache2.service
在Web浏览器中打开http://IP/ossec 进入管理面板
(此处是加了agent后的图)
五、服务端添加代理端主机
1.进入配置环境
/var/ossec/bin/manage_agents
****************************************
* OSSEC HIDS v3.8.0 Agent manager. *
* The following options are available: *
****************************************
(A)dd an agent (A). 添加agent
(E)xtract key for an agent (E). 导出agent的key
(L)ist already added agents (L). 列出存在的已经添加的agent
(R)emove an agent (R). 删除agent
(Q)uit. 离开
Choose your action: A,E,L,R or Q: q
# 在出现的选择中选A,添加agent,分别给填写:
test #自己取的名字
192.168.159.1 #agent服务器的IP
001 #自己规定的ID
/var/ossec/bin/manage_agents
# 在出现的选择中选E,在随后的提示里输入ID号:001
就能得到ID为001的agent主机的KEY
客户端配置
windows 客户端
Download OSSEC - OSSEC
进入官网下载agent客户端
下载安装,以管理员打开
填写服务端的IP和前面获得的key
成功连接
可以去UI界面查看 (截图不太一样因为第一次搞的时候翻车了)
Linux客户端
1.安装依赖包(与上面一样不过不需要安装apche和php
2.下载最新发行版 or 3.7.0版本
可以选择一个稳定的版本下载,我使用的是 3.7.0版本
git clone https://github.com/ossec/ossec-hids 下载最新版本
wget https://github.com/ossec/ossec-hids/archive/3.7.0.tar.gz 下载3.7.0版本
tar -zxvf 3.7.0.tar.gz
3.进入目录,运行install.sh
sudo ./install.sh
4.安装的时候选择agent 后输入服务端IP地址即可
1- 您希望哪一种安装 (server, agent, local or help)? agent
- 选择了 Agent(client) 类型的安装.
2- 正在初始化安装环境.
- 请选择 OSSEC HIDS 的安装路径 [/var/ossec]: /var/ossec
- OSSEC HIDS 将安装在 /var/ossec .
3- 正在配置 OSSEC HIDS.
3.1- 请输入 OSSEC HIDS 服务器的IP地址或主机名: 服务器的IP地址
- 添加服务器IP 服务器的IP地址
3.2- 您希望运行系统完整性检测模块吗? (y/n) [y]: y
- 系统完整性检测模块将被部署.
3.3- 您希望运行 rootkit检测吗? (y/n) [y]: y
- rootkit检测将被部署.
3.4 - 您希望开启联动(active response)功能吗? (y/n) [y]: y
开启OSSEC
sudo /var/ossec/bin/ossec-control start
5.导入生成的KEY
/var/ossec/bin/manage_agents
将服务端生成的KEY,在客户端中导入
6.开启OSSEC
sudo /var/ossec/bin/ossec-control start
注意要先导入key再启动不然会出现
ossec-syscheckd(1210): ERROR: Queue '/var/ossec/queue/ossec/queue' not accessible: 'Connection refused'.
成功导入Linux agent
问题解决
OSSEC Web UI 出现无法打开管理面板问题
前面已经提到了这里做个总结,下载原版本的UI在高php版本会出现无法出现控制页面的BUG,因为这个UI界面是在很早之前做的已经不支持高版本的PHP所以需要修改PHP源码或者是降低PHP版本。
添加agent连接不上的情况
添加的agent连不上可能的原因是1.网络不通,可以互相ping一下,或者是2.防火墙的问题,也可能是agent设置文件可以参考这篇使用文档
Agent systems behind NAT or with dynamic IPs (DHCP) — OSSEC
解决方法3: agent服务器的IP选择any 设置any表示,所有IP下的agent都可以连接。
# 在出现的选择中选A,添加agent,分别给填写:
test2 #自己取的名字
any #agent服务器的IP
002 #自己规定的ID
/var/ossec/bin/manage_agents
# 在出现的选择中选E,在随后的提示里输入ID号:001
就能得到ID为002的agent主机的KEY
设置为any都可以连接上
如果都不是可以自行查阅日志发现问题
tail -n 100 /var/ossec/logs/ossec.log
Linux agent 导入KEY报错:manage_agents: ERROR: Cannot unlink /queue/rids/sender: No such file or directory
需要在rids下创建sender 文件
touch /var/ossec/queue/rids/sender
再进行导入KEY
/var/ossec/bin/manage_agents
参考文献
Ubuntu安装OSSEC和OSSEC Web UI_ubuntu安装ossec+-CSDN博客
版权归原作者 墨言ink 所有, 如有侵权,请联系我们删除。