XieJava's blog

记录最好的自己


  • 首页

  • 分类

  • 标签

  • 归档

  • 关于

为了管好IP我上了一套开源的IP管理系统phpIPAM

发表于 2025-12-19 | 更新于: 2025-12-19 | 分类于 技术 , 运维 | | 阅读次数:
字数统计: 957 | 阅读时长 ≈ 3

通常,网络或系统管理员会使用一个电子表格来记录IP地址的分配信息,然而,随着网络中的设备越来越多依赖于电子表格并不方便,十分容易出错,想管理好这些加入网络中的设备,就得有个更方便的工具。就我家里的网络而言,接入的设备就已经接近40个了,亟需找这么一个工具来记录和管理这些IP,目前找到的比较好用又轻量化的IP管理工具就是phpIPAM。

一、什么是phpIPAM

phpIPAM(PHP IP Address Manager)是一个开源的网络 IP 地址管理工具,其目标是提供轻松,现代和有用的IP地址管理。它是基于php的应用程序,带有MySQL数据库后端,使用jQuery库,ajax和HTML5 / CSS3功能。主要用于企业级 IP 地址空间的规划、管理和跟踪。

为什么要用phpIPAM

问题场景 无 phpIPAM 有 phpIPAM
IP分配冲突 人工记录 Excel,容易重复 系统自动管理,避免冲突
查找可用 IP 手动测试多个 IP 一键查找空闲 IP
网络规划 凭经验划分,不精确 可视化规划,最优利用
故障排查 不知道 IP 使用者 快速定位设备负责人

phpIPAM核心功能如下:
\[图片\]

官网:
https://www.phpipam.net/
https://hub.docker.com/r/phpipam/phpipam-www/

二、安装phpIPAM

安装phpIPAM可以用docker方式快速安装,根据官网的docker-compose.yml稍微做了优化,主要是加了mysql的健康检查,因为在安装的过程中数据库没有就绪或容器启动顺序有问题会导致安装失败。
docker-compose.yml文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
version: '3.8'
services:
phpipam-web:
image: phpipam/phpipam-www:latest
ports:
- "8488:80"
environment:
- TZ=Asia/Shanghai
- IPAM_DATABASE_HOST=phpipam-db
- IPAM_DATABASE_PASS=12345678
depends_on:
- phpipam-db
restart: unless-stopped

phpipam-cron:
image: phpipam/phpipam-cron:latest
environment:
- TZ=Asia/Shanghai
- IPAM_DATABASE_HOST=phpipam-db
- IPAM_DATABASE_PASS=12345678
- SCAN_INTERVAL=1h
depends_on:
phpipam-db:
condition: service_healthy
restart: unless-stopped

phpipam-db:
image: mariadb:10.5
environment:
- MYSQL_ROOT_PASSWORD=12345678
- MYSQL_DATABASE=phpipam
- MYSQL_USER=phpipam
- MYSQL_PASSWORD=12345678
volumes:
- db_data:/var/lib/mysql
restart: unless-stopped
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5

volumes:
db_data:

将docker-compose.yml文件考到安装目录如/home/app/phpipam
执行docker compose up -d 就可以顺利安装完成
安装完成后通过 docker compose ps 查看 phpipam的几个容器是否都正常启动了。
docker-compose

可以通过docker compose logs查看日志

三、初始化phpIPAM

因为在docker-compose.yml文件中映射的宿主机的端口是8488
在浏览器中输入 http://服务器IP:8488/
1.选择新的phpipam安装
新的phpipam安装

2.安装pfpipam数据库
安装pfpipam数据库

3.设置数据库
设置数据库

4.提示数据库安装成功
数据库安装成功

5.设置管理员密码
设置管理员密码

6.用前面设置的管理员密码进行登录
用户名密码登录

7.可以在用户的账户详情中选择语言为“Chinese(zh_CN.UTF-8)”切换成中文
设置成中文

四、使用phpIPAM

典型的IP管理流程如下:
IP管理流程

1.添加子网添加子网

2.添加子网信息,注意可以将Check hosts status、Discover new hosts、Resolve DNS name都打开。
添加子网信息

3.在子网管理界面点击“Scan subnet for new hosts” 扫描子网的主机
扫描子网

4.点击“Scan subnet”
phpIPAM就会通过Ping scan的方式探测子网内存活的主机
扫描子网

在子网的管理界面就可以看到子网内存活的IP和空闲的IP
子网管理界面

IP列表
IP列表

子网的可视化界面,可以很直观的看到子网内在用的IP和空闲的IP
子网可视化界面

总的来说,phpIPAM安装简单使用方便,是个不错的IP管理工具。phpIPAM 本质上是一个 “网络的 CMDB”,让无形的 IP 地址变得可视、可控、可管理。对于任何有一定规模网络环境,它都是提升管理效率和规范性的重要工具。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

5分钟,我搭了一套AI知识库

发表于 2025-12-09 | 更新于: 2025-12-10 | 分类于 技术 , AI | | 阅读次数:
字数统计: 2.1k | 阅读时长 ≈ 7

一直以来都想把我的文档都集中起来建一套知识库,方便统一的搜索查询和调用。我用过很多的文档编写管理工具有在线的、离线的,包括有有道云笔记、语雀、飞书、Notion、Obsidian等。这些工具编写管理文档还可以但是要做为一个知识库还远远不够。我认为知识库不但要解决“知识存哪里” 的问题,更要解决 “知识怎么用” 的痛点,能够将多源的知识内容进行聚合,方便检索查询和使用。

我需要的知识库系统能够具备以下能力:

  • 多源内容聚合的能力:能够将我的博客网站、飞书、语雀、离线的文档等都能导入到知识库中。
  • 方便快捷的搜索能力:AI辅助搜索,能够随时快速找到我想要的东西,AI辅助问答,能够基于已有的知识快速给出比较靠谱的答案。
  • 便捷强大的编辑能力:能够通过富文本、Markdown随时记录文本,通过AI来辅助创作。

几番比较找到了PandaWiki,这款开源AI大模型驱动的知识库搭建系统,我觉得满足了目前我对知识库的要求,其安装方便、使用便捷、免费开源,零成本就能拥有自己的AI知识库,目前在github上斩获了8.4K的Star说明了受欢迎的程度。

一、什么是PandaWiki

PandaWiki 是一款 AI 大模型驱动的开源知识库搭建系统,帮助你快速构建智能化的 产品文档、技术文档、FAQ、博客系统,借助大模型的力量为你提供 AI 创作、AI 问答、AI 搜索等能力,具备富文本编辑、第三方集成和内容导入能力,采用AGPL-3.0开源协议。

它的核心价值在于将 AI 能力与知识库深度融合,不仅解决了 “知识存哪里” 的问题,更攻克了 “知识怎么用” 的痛点。
PandaWiki
PandaWiki 的功能设计围绕 “智能化” 与 “便捷性” 展开,核心可概括为三大 AI 功能与五大实用特性,覆盖知识库从搭建到使用的全场景需求:

类别 具体功能 价值说明
AI 核心功能 AI 创作 辅助生成、优化文档内容,降低内容生产门槛,提升写作效率
AI 问答 支持用户以自然语言提问,AI 基于知识库内容精准作答,而非返回杂乱链接
AI 搜索 依托 AI 大模型实现语义化搜索,精准匹配用户需求,解决传统关键词搜索的局限性
实用特性 富文本编辑 支持 Markdown 与 HTML 语法,满足不同用户编辑习惯;文档可导出为 Word、PDF、Markdown 格式
多渠道内容导入 支持通过飞书文档、Notion、URL、Sitemap、RSS 及离线文件导入内容,省去重复复制粘贴操作
第三方平台集成 可接入钉钉、飞书、企业微信、Discord 等平台的聊天机器人,实现 “随处查知识”
高度自定义 支持配置 Wiki 网站配色、背景图、水印、页脚(企业名称、ICP 备案、品牌 Logo 等),打造专属风格
数据统计与反馈 管理后台可实时查看 Wiki 网站的访问次数、用户分布、问答记录及反馈信息,便于优化内容

PandaWiki 的最大优势之一是 “低门槛”—— 无需复杂代码开发,提供了一键部署安装脚本,全程耗时不超过 5 分钟,即使是非技术人员也能轻松上手。

二、PandaWiki的安装部署

1、部署前的准备

PandaWiki的官方文档见 https://pandawiki.docs.baizhi.cloud/node/01971602-bb4e-7c90-99df-6d3c38cfd6d5

PandaWiki安装需Linux系统、x86_64架构,依赖Docker 20.10.14+和Docker Compose 2.0.0+,推荐1核2G内存10G磁盘。
安装 PandaWiki 系统环境要求如下:

  • 操作系统:Linux
  • CPU 指令架构:x86_64、aarch64
  • 软件依赖:Docker 20.10.14 版本以上
  • 软件依赖:Docker Compose 2.0.0 版本以上
  • 推荐配置:2 核 CPU / 4 GB 内存 / 20 GB 磁盘
  • 最低配置:1 核 CPU / 2 GB 内存 / 5 GB 磁盘

我的配置是ubuntu系统2核CPU/4GB内存/100GB磁盘。

2、安装PandaWiki

官方提供了一键自动安装命令,可以非常便捷无脑的就把系统给装上。
使用 root 权限登录你的服务器,然后执行以下命令。

1
bash -c "$(curl -fsSLk https://release.baizhi.cloud/panda-wiki/manager.sh)"

安装界面
选择“安装”,回车
安装
系统检测到没有安装docker,输入“y”,系统自动安装docker
自动安装docker

默认安装路径位于 /data/pandawiki
到显示所有容器安装完成并启动就会显示如下信息

1
2
3
4
5
SUCCESS  控制台信息:
SUCCESS 访问地址(内网): https://*.*.*.*:2443
SUCCESS 访问地址(外网): https://*.*.*.*:2443
SUCCESS 用户名: admin
SUCCESS 密码: **********************

修改默认密码

如果需要修改admin的密码可以修改安装目录下.env文件中的 ADMIN_PASSWORD 后,执行

bash docker compose up -d

即可生效。

使用浏览器打开上述内容中的 “访问地址”,就可以看到 PandaWiki 的控制台登录入口。

Panda登录地址

三、PandaWiki的使用

1、配置 AI 大模型

由于 PandaWiki 的 AI 功能(创作、问答、搜索)均依赖 AI 大模型,首次使用需先完成模型配置,否则相关功能无法正常使用。其支持的模型类型及推荐方案如下:

  • Chat 模型:用于对话与内容生成,如 ChatGPT-4、Deepseek-r1、Deepseek-v3 等
  • Embedding 模型:将文档转化为向量,支撑智能搜索与内容关联,如 BGE-M3
  • Reranker 模型:对搜索结果二次排序,提升检索精准度,如 BGE-Reranker-V2-M3

我这里直接使用PandaWiki默认的模型“自动配置”。自动配置需要点击“获取百智云API Key”来获取API Key,注册登录百智云就可以获取5元的免费额度。当然通过手动配置用其他的模型API也可以。
配置大模型

2、启用创建门户网站

启用创建门户网站PandaWiki会自动帮创建一个门户网站,可以自定义门户网站的模板,“启用HTTP”输入暴露的端口80就可以开启门户网站,注意不要和2443端口重了,2443是后台admin的管理服务。
创建门户网站

通过简单的配置就可以生成一个wiki网站,如果有域名就可以通过域名访问了,没有域名就通过IP访问。
我这里配了域名,可以通过wiki.xiejava.dpdns.org访问。
wiki门户网站

3、导入文档到PandaWiki创建知识库

PandaWiki 支持从第三方文档中导入文档,目前支持以下几种方式

  • 通过离线文件导入
  • 通过 URL 导入
  • 通过 RSS 导入
  • 通过 Sitemap 导入
  • 通过 Notion 导入
  • 通过 Epub 导入
  • 通过 MiniDoc 导入
  • 通过 Wiki.js 导入
  • 通过 Confluence 导入
  • 通过飞书文档导入
  • 通过语雀导入
  • 通过思源笔记导入

官方都有详细的说明文档
我这里将我的博客文档通过离线方式进行导入。
离线导入文件

在离线文件导入界面选择要导入的文件,支持的格式包括.txt、.md、.xlx、.xlsx、.docx、.pdf 。
注意:每个文件的大小不能超过 20 MB。
导入文件

选择要导入的文件后,会对.md文件自动进行解析。
解析文件

解析完了点击“批量导入”,就可以将文件导入到知识库,并且展示的是解析后的富文本形式。
批量导入

批量导入处理中
批量导入中

新导入的文件虽然是可以被可见、被访问、被问答,但是还没有进行增强学习处理需要进一步的学习
发布和学习

PandaWiki的文档处理状态如下图:
文档处理状态

选择需要学习的文档点“确认”进行学习
学习和发布

当学习和发布完成后,可以在web门户网站进行AI检索和AI问答了。
AI问答

AI问答

我们可以将pandawiki直接当一个博客网站来使用,它对markdown的解析和展示还挺好的。
pandawiki博客站点

欢迎访问我的wiki站点 https://wiki.xiejava.dpdns.org 在这里我将和你一起分享IT技术,感受AI带来的便捷。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

企业级私有docker镜像仓库Harbor的搭建和使用

发表于 2025-12-04 | 更新于: 2025-12-10 | 分类于 技术 , 架构 | | 阅读次数:
字数统计: 1.4k | 阅读时长 ≈ 5

一、什么是Harbor

简单来说,Harbor 是一个开源的企业级私有 Docker 镜像仓库服务。我们可以把它理解成一个 “私有的、安全的、功能强大的 Docker Hub”。

  • 私有: 它部署在你自己的基础设施(如公司的数据中心或私有云)上,你完全掌控其中的所有镜像,不对外公开。
  • 企业级: 这意味着它不仅仅是一个简单的存储服务器。它提供了企业所需的高级功能,如权限控制、安全扫描、镜像复制、图形化操作界面等。
  • 镜像仓库: 它是专门用来存储、管理和分发 Docker 镜像的地方。你可以向 Harbor 中推送(上传)镜像,也可以从 Harbor 中拉取(下载)镜像。

目前国内的上网环境公共的Docker Hub不能直接访问了,对于公司和个人开发者来说有必要搭建私有的Docker镜像仓库,使用 Harbor 几乎是必须的。公司自己开发的应用程序镜像可能包含敏感代码和配置,绝不能放到公共仓库。Harbor 提供了一个安全的私有环境来存放这些资产。Harbor 可以配置为 Docker Hub、Google Container Registry(GCR)等公有仓库的代理缓存。当公司内第一个开发者拉取某个公有镜像(如 nginx:latest)时,Harbor 会从公网下载并缓存到本地。后续所有开发者再拉取这个镜像时,都会直接从内网的 Harbor 服务器高速获取,极大地节省了公网带宽,加快了拉取速度。

Harbor 将一个简单的镜像存储服务,升级为一个安全、高效、可靠的企业级镜像生命周期管理平台,是现代云原生应用开发和运维不可或缺的基础设施组件。

本文介绍如何通过Harbor搭建和使用自己的私有镜像仓库。

二、安装Harbor

准备一台linux的服务器,我这里是ubuntu 24.04 IP地址是192.168.0.49
Harbor的docker安装要求
On a Linux host: docker 20.10.10-ce+ and docker-compose 1.18.0+ .

1、安装docker

执行以下命令一键安装docker

1
2
sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
service docker start

配置国内镜像加速

1
vim /etc/docker/daemon.json
1
2
3
4
5
{
"registry-mirrors": [
"https://docker.1ms.run"
]
}
1
service docker restart

2、安装Harbor

下载harbor安装包,下载地址如下:
https://github.com/goharbor/harbor/releases/download/v2.14.1/harbor-offline-installer-v2.14.1.tgz
将下载的harbor安装包上传到安装harbor的目标服务器的目录下
如/home/app/harbor
解压上传的harbor安装包

1
tar -zxvf harbor-offline-installer-v2.14.1.tgz

备份配置文件

1
cp harbor.yml.tmpl harbor.yml

修改配置文件

1
vim harbor.yml

修改harbor.yml配置文件

执行安装脚本

1
./install.sh

安装完成后通过浏览器即可以访问harbor的管理界面
harbor登录界面

默认的用户名和密码是admin/Harbor12345

三、使用Harbor

1、通过Harbor代理拉取镜像

先在仓库管理中建一个目标,目标是从docker的加速镜像站点去拉取镜像,我这里配置目标URL是https://docker.1ms.run,点击测试链接,提示“测试连接成功”表示目标URL站点没有问题,就可以点击确定。
新建目标

这样我们就有了一个目标的加速仓库
新建目标成功

在“项目”中点击“新建项目”,在镜像代理中开启“镜像代理”,选择我们开始在仓库管理中新建的目标仓库。
开启镜像代理

在配置管理生成软件物料清单中勾选“在推送镜像时自动生成软件物料清单”,这样我们在拉取镜像时harbor会自动帮我们缓存镜像到本地的harbor仓库,下次拉取时速度就非常快了。
勾选物料清单

在另外一台需要拉取镜像的机器上配置docker的镜像仓库,将地址配置为Harbor的地址

1
vim /etc/docker/daemon.json
1
2
3
4
5
6
{
"registry-mirrors": [
"http://192.168.0.49"
],
"insecure-registries": ["192.168.0.49"]
}

重启docker服务

1
service docker restart

拉取目标镜像,这里要带上harbor中的项目名称,docker1ms/nginx:1.22

1
docker pull docker1ms/nginx:1.22

拉取镜像

在harbor的管理界面可以看到,通过拉取镜像,harbor通过代理镜像源对镜像进行了拉取并缓存到harbor仓库,下次拉取速度更快了。
harbor镜像缓存

2、上传镜像到Harbor仓库

另一个在工作中最常用的场景就是将自己的镜像上传到镜像仓库,以便其他人拉取使用。
下面就以在本地已经存在的docker1ms/busybox:latest为例,上传到自己的harbor仓库。
我的harbor仓库的地址是192.168.0.49,上传到默认的library项目中
为镜像打上带仓库地址和项目名的tag

1
docker tag docker1ms/busybox:latest 192.168.0.49/library/busybox:latest

为镜像打标签

客户端登录到harbor

1
docker login 192.168.0.49

输入harbor的用户名和口令进行登录
登录到harbor仓

登录成功后,通过push命令上传镜像到本地harbor仓库

1
docker push 192.168.0.49/library/busybox:latest

push镜像

到harbor管理界面查看push到仓库中的镜像
push到仓库中的镜像

可以看到busybox镜像已经成功push到harbor的library项目中了。
成功push

在Artifacts中可以看到push上来的镜像物料详情,可看到这个busybox镜像的大小是2.1MB
物料清单

我们可以直接拉取harbor中我们刚push上去的镜像
可以看到如果是默认仓库library项目直接可以docker pull 镜像名就可以拉取

1
docker pull busybox:latest

拉取镜像

至此,我们通过安装自己私有的镜像仓库Harbor,实现了docker镜像代理下载和上传自己的镜像到Harbor仓库,覆盖了我们平时工作中的大部分场景。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

开源安全管理平台wazuh-检测SQL注入攻击

发表于 2025-10-22 | 更新于: 2025-12-10 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 742 | 阅读时长 ≈ 3

Wazuh是一个功能强大的开源安全平台,它集成了安全信息与事件管理(SIEM)和扩展检测与响应(XDR)的能力,旨在为本地、虚拟化、容器化及云环境中的工作负载提供统一的威胁预防、检测和响应解决方案。

SQL 注入是一种攻击,在这种攻击中,威胁行为者将恶意代码插入传输到数据库服务器的字符串中进行解析和执行。成功的 SQL 注入攻击可以未经授权访问数据库中包含的机密信息。

我们可以使用 Wazuh 从 Web 服务器日志中检测 SQL 注入攻击,这些日志包含 select、union 和其他常见 SQL 注入模式等模式。本文通过POC来验证wazuh检测SQL注入攻击。

一、环境准备

POC测试环境拓扑如下图所示:

POC测试环境拓扑

主机 说明
安全管理平台wazuh-server
(192.168.0.40)
All in one安装wazuh,监控wazuh-agent上报的告警信息进行威胁检测
DVWA靶机
(192.168.0.43)
被监控主机安装wazuh-agent,安装DVWA靶机,模拟被攻击

DVWA靶机安装参考《CentOS7+LAMP+DVWA靶机搭建》
首先安装LAMP环境

1
2
apt update
apt install -y apache2 mariadb-server mariadb-client php php-mysqli php-gd libapache2-mod-php

下载DVWA的软件包
进入到默认的web发布目录

1
2
cd /var/www/html
git clone https://github.com/digininja/DVWA.git

将config/config.inc.php.dist复制成config/config.inc.php并配置环境

1
cp config.inc.php.dist config.inc.php

用root用户登录数据库,然后执行以下命令创建dvwa数据库:

1
2
3
4
5
6
7
8
9
10
11
mysql> create database dvwa;
Query OK, 1 row affected (0.00 sec)

mysql> create user dvwa@localhost identified by 'p@ssw0rd';
Query OK, 0 rows affected (0.01 sec)

mysql> grant all on dvwa.* to dvwa@localhost;
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

默认用户 = admin
默认密码 = password
将安全级别设为 Low(最易注入)

二、wazuh配置

将以下行添加到 Wazuh 代理 /var/ossec/etc/ossec.conf 文件中。允许 Wazuh-agent 代理监控 Apache 服务器的访问日志:

1
2
3
4
5
6
<ossec_config>
<localfile>
<log_format>apache</log_format>
<location>/var/log/apache2/access.log</location>
</localfile>
</ossec_config>

重新启动 Wazuh 代理以使应用配置更改生效:

1
sudo systemctl restart wazuh-agent

三、模拟攻击

访问DVWA的靶机地址http://192.168.0.43/DVWA/login.php
默认用户 = admin
默认密码 = password
登录后找到SQL Injection 输入例如”1' UNION SELECT database(), version()“ 等SQL注入Payload

DVWA-SQL注入

四、效果验证

在wazuh此处的预期结果是规则 ID 为 31164 SQL injection attempt 的告警,但成功的 SQL 注入尝试会生成规则 ID 为 31106 A web attack returned code 200 (success)的告警。

sql注入检测

我们可以点击详情看到具体的SQL注入攻击日志

SQL注入检测日志详情

至此,我们通过POC验证了wazuh检测SQL注入攻击场景。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

开源安全管理平台wazuh-非法可疑进程检测

发表于 2025-10-15 | 更新于: 2025-12-10 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 1.1k | 阅读时长 ≈ 4

Wazuh是一个功能强大的开源安全平台,它集成了安全信息与事件管理(SIEM)和扩展检测与响应(XDR)的能力,旨在为本地、虚拟化、容器化及云环境中的工作负载提供统一的威胁预防、检测和响应解决方案。

Wazuh命令监控功能在端点上运行命令并监控命令的输出。通过监控命令来检测是否有非法可疑进程。

本文通过POC展示Wazuh如何通过配置来实现对非法可疑进行的检测及时预警威胁攻击行为。

一、环境准备

POC测试环境拓扑如下图所示:
POC测试环境拓扑

主机 描述
安全管理平台wazuh-server
(192.168.0.40)
All in one安装wazuh,监控wazuh-agent上报的告警信息进行威胁检测
被监控Kali主机
(192.168.0.65)
被监控kali主机安装wazuh-agent,运行非法可疑进程。

二、wazuh配置

1、kali检测端点配置

1)按照以下步骤配置命令监控并查询被监控kali主机端点上的所有运行进程。
将以下配置块添加到wazuh-agent的/var/ossec/etc/ossec.conf文件,允许wazuh-agent定期获取运行进程列表:

1
2
3
4
5
6
7
8
<ossec_config>
<localfile>
<log_format>full_command</log_format>
<alias>process list</alias>
<command>ps -e -o pid,uname,command</command>
<frequency>30</frequency>
</localfile>
</ossec_config>

这段配置告诉 Wazuh 代理:

  1. 做什么:​ 每 30 秒执行一次命令 ps -e -o pid,uname,command。
  2. 捕获什么:​ 捕获该命令的完整输出。
  3. 如何标记:​ 在输出的每一行前面添加一个标准化的头部 ossec: output: 'process list: '。
  4. 发送给谁:​ 将处理后的日志行(即带有前缀的进程列表)发送给配置的 Wazuh 服务器。

这个配置让 Wazuh 代理定期(每 30 秒)抓取一次完整的系统进程快照,并格式化后发送给服务器,为基于进程行为的入侵检测提供基础数据。

2)重新启动Wazuh代理以使配置生效:

1
sudo systemctl restart wazuh-agent

3)在kali上安装Netcat等工具:

1
sudo apt install ncat nmap -y

2、wazuh server配置

1)将以下规则添加到Wazuh服务器上的 /var/ossec/etc/rules/local_rules.xml 文件中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<group name="ossec,">
<rule id="100050" level="0">
<if_sid>530</if_sid>
<match>^ossec: output: 'process list'</match>
<description>List of running processes.</description>
<group>process_monitor,</group>
</rule>

<rule id="100051" level="7" ignore="900">
<if_sid>100050</if_sid>
<match>nc -l</match>
<description>netcat listening for incoming connections.</description>
<group>process_monitor,</group>
</rule>
</group>

这个配置片段定义了一个监控逻辑,专门用于在系统进程列表中检测监听模式的 netcat(nc -l),一旦发现就产生高优先级告警。规则 100050 负责捕获进程列表数据,规则 100051 负责在其中搜索特定的威胁指标 (nc -l)。

2)重新启动Wazuh管理器以使配置生效:

1
sudo systemctl restart wazuh-manager

三、模拟攻击

在被监控的Kali主机(192.168.0.65)端点上,运行nc -l 8000 30秒。

netcat​(网络工具中的“瑞士军刀”)的命令,它的核心作用是:​在你的计算机上启动一个临时的 TCP 服务端,监听端口 8000,等待其他计算机连接并与之通信。

监听模式的 netcat常被用作后门、端口监听器或进行未经授权的文件传输,是攻击者建立持久访问或进行横向移动的常见工具。

四、效果验证

我们可以在Wazuh威胁狩猎模块仪表板中可看到检测到kali主机上有netcat 进行正在监听的告警并可视化展示出来。
非法可疑进程检测告警

我们点开告警详情可以看到日志中显示通过ps -e -o pid,uname,command,检测到有nc -l 8000的非法进程在运行,进行了netcat listening for incoming connections.告警输出。
非法可疑进程检测告警详情

至此,我们通过一个完整的POC实例验证了wuzuh对非法可疑进程的检测,能够有效发现潜在的威胁。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

开源安全管理平台wazuh-与网络入侵检测系统集成增强威胁检测能力

发表于 2025-10-12 | 更新于: 2025-12-10 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 1.1k | 阅读时长 ≈ 4

Wazuh是一个功能强大的开源安全平台,它集成了安全信息与事件管理(SIEM)和扩展检测与响应(XDR)的能力,旨在为本地、虚拟化、容器化及云环境中的工作负载提供统一的威胁预防、检测和响应解决方案。

Wazuh可以与基于网络的入侵检测系统(NIDS)集成,通过监控和分析网络流量来增强威胁检测。Suricata 是一个开源的高性能网络安全监控工具,由开放信息安全基金会(OISF)开发维护。它被广泛用于实时网络流量分析、威胁检测和防护。Suricata 是现代网络安全架构中的重要组件,特别适合需要高性能实时流量分析的场景,是构建深度防御体系的关键工具。

本文通过POC展示如何将Suricata与Wazuh集成,并模拟对目标主机进行端口扫描,通过Suricata监控和分析网络流量进行威胁检测与Wazuh集成后在Wazuh的威胁狩猎中及时预警威胁攻击行为。

一、环境准备

POC环境拓扑如下图所示:
POC环境拓扑图

主机 描述
安全管理平台wazuh-server
(192.168.0.40)
All in one安装wazuh,监控wazuh-agent、suricata上报的告警信息进行威胁检测
ubuntu应用服务器
(192.168.0.30)
ubuntu应用服务器安装wazuh-agent并与Suricata集成 ,模拟被攻击的服务器
Kali Linux模拟攻击机器
(192.168.0.65)
Kali linux ,模拟攻击机器,模拟发起恶意端口扫描攻击

二、安装Suricata

1、安装Suricata

1
2
3
sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get update
sudo apt-get install suricata -y

2、下载Suricata的扩展检测规则集

1
2
3
cd /tmp/ && curl -LO https://rules.emergingthreats.net/open/suricata-6.0.8/emerging.rules.tar.gz
sudo tar -xvzf emerging.rules.tar.gz && sudo mkdir /etc/suricata/rules && sudo mv rules/*.rules /etc/suricata/rules/
sudo chmod 777 /etc/suricata/rules/*.rules

3、配置Surcata

在 /etc/suricata/suricata.yaml 文件中修改 Suricata 设置并设置以下变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
HOME_NET: "<UBUNTU_IP>"
EXTERNAL_NET: "any"

default-rule-path: /etc/suricata/rules
rule-files:
- "*.rules"

# Global stats configuration
stats:
enabled: yes

# Linux high speed capture support
af-packet:
- interface: ens2

接口表示您想要监控的网络接口。将值替换为 Ubuntu 端点的接口名称。

设置为流量检测的网卡

可以通过ifconfig查看Ubuntu的网络接口,例如,我这里是ens2。
查看网络接口

4、重启Suricata服务

1
sudo systemctl restart suricata

三、wazuh与Suricata集成

将以下配置添加到Wazuh代理的/var/ossec/etc/ossec.conf文件中。这允许Wazuh代理读取Suricata日志文件:

1
2
3
4
5
6
<ossec_config>
<localfile>
<log_format>json</log_format>
<location>/var/log/suricata/eve.json</location>
</localfile>
</ossec_config>

配置wazuh接受suricata数据

重新启动Wazuh代理以使配置生效

1
sudo systemctl restart wazuh-agent

四、模拟攻击

请注意:本文介绍的模拟攻击仅限于自己搭建测试环境进行POC验证。请不要使用这些工具和方法对其它目标主机进行测试,使用这些工具前,务必获得目标系统的明确书面授权,未经授权的测试属违法行为。

端口扫描是渗透测试的第一步,通过端口扫描可以快速发现目标主机的攻击面。使用 nmap进行端口扫描是网络安全中最基础且关键的操作之一。我们在Kali Linux主机上通过nmap对目标靶机192.168.0.30进行端口扫描看开放有哪些端口。

1
nmap -p- -sV -O -A -T4 -Pn -oX full_scan.xml 192.168.0.30

五、效果验证

在Kali Linux主机上通过nmap对目标靶机192.168.0.30进行端口扫描的过程中,我们在192.168.0.40的wazuh server的威胁狩猎界面可以看到suricata通过流量检测识别到端口扫描的攻击行为,并通过wazuh的可视化界面进行告警的展示。

surcata告警

点击可以查看告警的详情,可以看到是通过suricata发现的来自源IP192.168.0.65的nmap扫描行为。

suricata告警详情

至此,我们通过wasuh与网络入侵检测系统(suricata)进行集成,并模拟对目标主机进行端口扫描,验证了通过Suricata监控和分析网络流量进行威胁检测与Wazuh集成后在Wazuh的威胁狩猎中及时预警威胁攻击行为。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

开源安全管理平台wazuh-暴力破解检测与响应

发表于 2025-10-11 | 更新于: 2025-12-10 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 1.5k | 阅读时长 ≈ 5

Wazuh是一个功能强大的开源安全平台,它集成了安全信息与事件管理(SIEM)和扩展检测与响应(XDR)的能力,旨在为本地、虚拟化、容器化及云环境中的工作负载提供统一的威胁预防、检测和响应解决方案。

暴力破解是网络安全领域一种常见且顽固的威胁,像Linux端点的SSH这样的服务通常容易受到暴力破解攻击,攻击者利用它来非法访问端点和服务。有效应对暴力破解需要“侦测”和“防护”双管齐下。Wazuh通过关联多个认证失败事件来识别暴力破解攻击并可以配置主动响应以阻止攻击者的IP地址。

本文通过POC来验证wazuh对暴力破解检测与响应能力

一、环境准备

POC环境如下图所示:

POC拓扑图

主机 描述
安全管理平台wazuh-server
(192.168.0.40)
All in one安装wazuh,监控wazuh-agent上报的告警信息进行暴力破解检测并联动wazuh-agent进行封堵响应
ubuntu应用服务器
(192.168.0.30)
ubuntu应用服务器ssh服务,安装wazuh-agent ,模拟被攻击的服务器
Kali Linux模拟攻击机器
(192.168.0.65)
Kali linux ,模拟攻击机器

二、wazuh 配置

Wazuh使用主动响应模块在受监控端点上运行脚本或可执行文件,对某些触发器采取行动。在本用例中,我们模拟对ubuntu应用服务器端点的SSH暴力破解攻击,并配置主动响应模块以阻止攻击端点的IP地址。目标是防止SSH暴力破解攻击。

Wazuh附带一套用于主动响应的默认脚本。这些脚本位于Linux/Unix端点的/var/ossec/active-response/bin/目录中。firewall-drop主动响应脚本与Linux/Unix操作系统兼容。它使用iptables来阻止恶意IP地址。

Wazuh server配置

1、打开Wazuh服务器/var/ossec/etc/ossec.conf文件,并验证在<ossec_config>块中存在名为firewall-drop的<command>块,其配置如下:

1
2
3
4
5
<command>
<name>firewall-drop</name>
<executable>firewall-drop</executable>
<timeout_allowed>yes</timeout_allowed>
</command>

<command>块包含有关在Wazuh代理上执行的操作的信息:

  • <name>:为命令设置名称。在本例中,为firewall-drop。
  • <executable>:指定在触发时必须运行的响应脚本或可执行文件。在本例中,是firewall-drop可执行文件。
  • <timeout_allowed>:允许在一段时间后超时。在此处,此标签设置为yes,表示状态性主动响应。

2、将以下 <active-response> 块添加到 Wazuh 服务器 /var/ossec/etc/ossec.conf 配置文件中:

1
2
3
4
5
6
7
8
9
<ossec_config>
<active-response>
<disabled>no</disabled>
<command>firewall-drop</command>
<location>local</location>
<rules_id>5763</rules_id>
<timeout>180</timeout>
</active-response>
</ossec_config>
  • <comand>:指定要配置的命令。这是在上一步骤中定义的防火墙丢弃命令 firewall-drop。
  • <location>:指定命令执行的位置。使用本地值表示命令在触发事件发生的监控端点处执行。
  • <rules_id>:如果规则ID 5763 - SSHD暴力破解尝试访问系统触发,则活动响应模块将执行该命令。
  • <timeout>:指定活动响应操作必须持续的时间。在本用例中,模块将阻止执行暴力破解攻击的端点IP地址180秒。

3、重新启动Wazuh管理器服务以应用更改:

1
sudo systemctl restart wazuh-manager

三、模拟攻击

我们通过Kali Linux自带的Hydra进行模拟攻击。

请注意:本文介绍的模拟攻击仅限于自己搭建测试环境进行POC验证。请不要使用这些工具和方法对其它目标主机进行测试,使用这些工具前,务必获得目标系统的明确书面授权,未经授权的测试属违法行为。

Hydra 配合 SecLists 工具包,可以显著提升密码破解测试的效率和成功率。
SecLists 是一款在安全测试中非常受欢迎的开源集合项目,提供了各种类型的字典列表,包括但不限于用户名、密码、目录路径、子域名等。Hydra 则是一款强大的网络登录破解工具,支持多种协议。将两者结合,可以针对各种网络服务进行高效的密码暴力破解测试。
在 Kali Linux 中,SecLists 通常位于 /usr/share/seclists目录。如果系统未安装,可以使用以下命令安装:

1
sudo apt update && sudo apt install seclists

在Kali Linux(192.168.0.65)上执行hydra 对 192.168.0.30 进行模拟攻击

1
hydra -L /usr/share/seclists/Usernames/top-usernames-shortlist.txt -P /usr/share/seclists/Passwords/Common-Credentials/top-20-common-SSH-passwords.txt 192.168.0.30 ssh -t 4 -vV

四、效果验证

可以看到触发了wazuh的告警规则,在Wazuh仪表板中看到多次的登录失败的告警数据,并生成了试图暴力破解的攻击告警。
告警

在详情中可以清楚的看到多次尝试暴力破解ssh登录
告警详情

可以看到wazuh检测到有ssh暴力破解的行为并自动调用防火墙对攻击IP进行封堵,封堵180秒。
封堵

在Hydra的攻击日志可以看到,被wazuh进行响应封堵后ssh超时报错,说明已经成功阻断阻止了攻击行为。
阻止效果

至此,我们通过一个实际的POC实例验证了wazuh对ssh暴力破解攻击行为的检测和响应,通过“侦测”和“防护”双管齐下能有效减轻ssh暴力破解威胁攻击风险。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

开源安全管理平台wazuh-文件完整性监控FIM

发表于 2025-10-08 | 更新于: 2025-12-10 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 1.1k | 阅读时长 ≈ 4

Wazuh是一个功能强大的开源安全平台,它集成了安全信息与事件管理(SIEM)和扩展检测与响应(XDR)的能力,旨在为本地、虚拟化、容器化及云环境中的工作负载提供统一的威胁预防、检测和响应解决方案。
文件完整性监控(File integrity monitoring FIM)有助于审计敏感文件和满足合规性要求。Wazuh内置了一个FIM模块,用于监控文件系统变化,以检测文件的创建、修改和删除。
本文通过POC来验证Wazuh的FIM功能,使用Wazuh FIM模块来检测Ubuntu和Windows端点上监控目录的变化。Wazuh FIM模块通过使用who-data审计获取有关更改用户和进程的信息来丰富告警数据。

一、环境准备

POC环境如下图所示:
POC环境拓扑图

主机 描述
安全管理平台wazuh-server
(192.168.0.40)
All in one安装wazuh,监控wazuh-agent上报的告警信息进行文件完整性监控(FIM)
被监控Windows 11机器
(192.168.0.16)
安装wazuh-agent,通过Wazuh FIM模块在此端点监控一个目录,以检测文件创建、更改和删除。
被监控Ubuntu主机
(192.168.0.41)
安装wazuh-agent,通过Wazuh FIM模块在此端点监控一个目录,以检测文件创建、更改和删除。

二、wazuh配置

1、window机器安装wazuh并配置

1)安装wazuh-agent

在wazuh的管理端找到部署agent界面,选择window的agent安装包

wazuh部署agent界面

wazuh会自动生成部署agent的脚本

自动生成部署agent的脚本

在window11(192.168.0.16)机器上以管理员权限运行powershell,在powershell中运行agent安装脚本

1
Invoke-WebRequest -Uri https://packages.wazuh.com/4.x/windows/wazuh-agent-4.13.0-1.msi -OutFile $env:tmp\wazuh-agent; msiexec.exe /i $env:tmp\wazuh-agent /q WAZUH_MANAGER='192.168.0.40' WAZUH_AGENT_NAME='Lenovo-L13-agent'

运行agent安装脚本

运行NET START Wazuh启动wazuh-agent,过一会就可以在wazuh服务端的dashboard中看到window 11的wazuh-agent注册上来了。

注册agent

2) 配置window端点的wazuh-agent

按照以下步骤配置Wazuh代理以监控以下目录的文件系统更改。如监控C:\Users\xiejava\Desktop的文件更改。
在受监控的Windows端点上编辑C:\Program Files (x86)\ossec-agent\ossec.conf配置文件。在<syscheck>块内添加监控目录。配置Wazuh监控C:\Users\xiejava\Desktop目录。

1
<directories check_all="yes" report_changes="yes" realtime="yes">C:\Users\xiejava\Desktop</directories>

配置FIM监控

使用具有管理员权限的PowerShell重新启动Wazuh代理以使配置更改生效。

1
Restart-Service -Name wazuh

2、ubuntu主机的wazuh-agent配置

由于ubuntu主机(192.168.0.41)已经安装了wazuh-agent,只需要对wazuh-agent进行配置就可以了。
执行以下步骤以配置Wazuh代理以监控/root目录中的文件系统更改。
编辑Wazuh代理的/var/ossec/etc/ossec.conf配置文件。在<syscheck>块中添加监控的目录。配置Wazuh监控/root目录。

1
<directories check_all="yes" report_changes="yes" realtime="yes">/root</directories>

配置ubuntu端点的FIM监控

重新启动Wazuh代理以使配置生效

1
sudo systemctl restart wazuh-agent

三、效果验证

1、windows端点文件完整性监控

1)文件增、删、改

在window 11(192.168.0.16)的机器的桌面上新建一个.txt文件,然后重命名为test-win11.txt,再修改test-win11.txt的内容。

2)可视化告警监控

在wazuh的dashboard中可以看到window 11机器的完整性监控告警。
win11的FIM告警

在详情中可以看到window11机器c:\users\xiejava\desktop\下文件变更的详情。
win11的FIM告警详情

2、ubuntu主机文件完整性监控

1)文件增、删、改

在ubuntu(192.168.0.41)的机器的/root新建一个test.txt文件,然后重命名为test-ubuntu.txt,再修改test-ubuntu.txt的内容。

2)可视化告警监控

在wazuh的dashboard中可以看到ubuntu(192.168.0.41)主机的文件完整性监控告警。
ubuntu端点的FIM告警事件

在Dashboard中可以看到FIM的统计信息包括对文件的新增、删除、修改等。
ubuntu端点的FIMDashboard

在Events中可以看到文件被修改触发的事件
ubuntu端点的FIM告警列表

可以查看具体的事件详情
ubuntu端点的FIM告警详情

至此,我们通过POC实例来验证了Wazuh的文件完整性监控FIM功能,使用Wazuh FIM模块来检测Ubuntu和Windows端点上监控目录的变化。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

开源安全管理平台wazuh-阻止恶意IP访问

发表于 2025-10-07 | 更新于: 2025-12-10 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 1.5k | 阅读时长 ≈ 6

Wazuh是一个功能强大的开源安全平台,它集成了安全信息与事件管理(SIEM)和扩展检测与响应(XDR)的能力,旨在为本地、虚拟化、容器化及云环境中的工作负载提供统一的威胁预防、检测和响应解决方案。
《开源安全管理平台wazuh-安装与配置》介绍了wazuh的安装和配置,本文基于已经完成的wazuh安装配置基础上通过POC来验证wazuh的功能,通过wazuh来阻止已知的恶意IP的访问。

一、环境准备

POC环境如下图所示:

POC拓扑图

主机 描述
安全管理平台wazuh-server
(192.168.0.40)
All in one安装wazuh,监控wazuh-agent上报的告警信息进行可视化展示,并联动wazuh-agent进行主动的拦截阻止
Nginx服务器
(192.168.0.41)
安装Nginx服务及wazuh-agent
Apache2服务器
(192.168.0.43)
安装Apache2服务及wazuh-agent
kali
(192.168.0.65)
Kali (模拟恶意IP主机)

以上除192.168.0.65是kali linux外,其他主机都是ubuntu。

二、wazuh配置

1、wazuh-agent配置

1)安装nginx服务并配置wazuh-agent

在192.168.0.41上安装nginx

1
2
sudo apt updat
sudo apt install nginx

允许防火墙访问

1
2
3
sudo ufw allow 'Nginx Full'
sudo ufw status
sudo ufw app list

验证nginx服务状态

1
sudo systemctl status nginx

用浏览器访问http://192.168.0.41 验证nginx服务是否正常访问
nginx

将以下内容添加到 /var/ossec/etc/ossec.conf 文件中,以配置 Wazuh 代理并监控 nginx访问日志

1
2
3
4
<localfile>
<log_format>syslog</log_format>
<location>/var/log/nginx/access.log</location>
</localfile>

如下图所示:

nginx访问日志路径

重启wazuh-agent使配置生效

1
sudo systemctl restart wazuh-agent

2) 安装apach2并配置wazuh-agent

在192.168.0.43上安装apach2

1
2
sudo apt update
sudo apt install apache2

允许防火墙访问

1
2
3
sudo ufw allow 'Apache'
sudo ufw status
sudo ufw app list

验证nginx服务状态

1
sudo systemctl status apache2

用浏览器访问http://192.168.0.43 验证apache2服务是否正常访问

apache2

将以下内容添加到 /var/ossec/etc/ossec.conf 文件中,以配置 Wazuh 代理并监控 apache2访问日志

1
2
3
4
<localfile>
<log_format>syslog</log_format>
<location>/var/log/apache2/access.log</location>
</localfile>

如下图所示:

apache访问日志路径

重启wazuh-agent使配置生效

1
sudo systemctl restart wazuh-agent

2、wazuh-server配置

1)配置IP信息黑名单

下载Alienvault IP信誉数据库:

1
sudo wget https://iplists.firehol.org/files/alienvault_reputation.ipset -O /var/ossec/etc/lists/alienvault_reputation.ipset

将攻击端点的IP地址(kali的IP地址192.168.0.65)添加到IP信誉数据库中:

1
sudo echo "192.168.0.65" >> /var/ossec/etc/lists/alienvault_reputation.ipset

下载一个将 .ipset 格式转换为 .cdb 列表格式的脚本:

1
sudo wget https://wazuh.com/resources/iplist-to-cdblist.py -O /tmp/iplist-to-cdblist.py

通过运行iplist-to-cdblist.py将ipset转换成.cdb 列表格式blacklist-alienvault

1
sudo python3 /tmp/iplist-to-cdblist.py /var/ossec/etc/lists/alienvault_reputation.ipset /var/ossec/etc/lists/blacklist-alienvault

为生成的文件分配正确的权限:

1
sudo chown wazuh:wazuh /var/ossec/etc/lists/blacklist-alienvault

确认一下恶意IP192.168.0.65是否在黑名单里

恶意IP在信誉库的黑名单中

2)配置响应模块以阻止恶意IP地址

在Wazuh服务器上的 /var/ossec/etc/rules/local_rules.xml 自定义规则集文件中添加一个自定义规则以触发Wazuh主动响应脚本。

1
2
3
4
5
6
7
<group name="attack,">
<rule id="100100" level="10">
<if_group>web|attack|attacks</if_group>
<list field="srcip" lookup="address_match_key">etc/lists/blacklist-alienvault</list>
<description>IP address found in AlienVault reputation database.</description>
</rule>
</group>

将自定义规则集加入到Wazuh server /var/ossec/etc/ossec.conf 的配置文件中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<ossec_config>
<ruleset>
<!-- Default ruleset -->
<decoder_dir>ruleset/decoders</decoder_dir>
<rule_dir>ruleset/rules</rule_dir>
<rule_exclude>0215-policy_rules.xml</rule_exclude>
<list>etc/lists/audit-keys</list>
<list>etc/lists/amazon/aws-eventnames</list>
<list>etc/lists/security-eventchannel</list>
<list>etc/lists/blacklist-alienvault</list>

<!-- User-defined ruleset -->
<decoder_dir>etc/decoders</decoder_dir>
<rule_dir>etc/rules</rule_dir>
</ruleset>
</ossec_config>

将活动响应块添加到Wazuh服务器/var/ossec/etc/ossec.conf 文件:
防火墙丢弃命令与Ubuntu本地iptables防火墙集成,并丢弃来自攻击端点的网络连接60秒

1
2
3
4
5
6
7
8
9
<ossec_config>
<active-response>
<disabled>no</disabled>
<command>firewall-drop</command>
<location>local</location>
<rules_id>100100</rules_id>
<timeout>60</timeout>
</active-response>
</ossec_config>

重新启动Wazuh管理器以应用更改生效:

1
sudo systemctl restart wazuh-manager

三、效果验证

1、模拟攻击

用kali(192.168.0.65)访问 http://192.168.0.41和http://192.168.0.43
攻击端点首次连接到受害者的Web服务器。首次连接后,Wazuh主动响应模块临时阻止对Web服务器的任何后续连接60秒。

模拟攻击

通过浏览器访问可以看到首次访问后每次都会被阻止60秒才能继续访问。

通过curl http://192.168.0.41和curl http://192.168.0.43 首次可以返回信息,每次过60秒才能再次返回信息。

2、可视化效果验证

可以在Wazuh仪表板中可视化警报数据。在威胁狩猎模块,添加过滤器以查询警报。

告警信息

在威胁狩猎模块可以看到有恶意IP地址在信誉库中被匹配到的告警,被防火墙自动阻断响应的告警以及60秒以后自动解除阻断的处置信息。

在详情信息中可以看到攻击阻止的详细信息,通过攻击源IP匹配到了信誉库的黑名单,触发了防火墙封堵规则进行了自动封堵。

告警详情

至此,我们通过一个完整的POC验证了wazuh发现恶意IP攻击到自动封堵阻止攻击的全过程。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

开源安全管理平台wazuh-安装与配置

发表于 2025-09-29 | 更新于: 2025-12-10 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 1.6k | 阅读时长 ≈ 6

Wazuh是一个功能强大的开源安全平台,它集成了安全信息与事件管理(SIEM)和扩展检测与响应(XDR)的能力,旨在为本地、虚拟化、容器化及云环境中的工作负载提供统一的威胁预防、检测和响应解决方案。

Wazuh的核心能力如下:

核心功能 核心功能说明
威胁检测与响应 提供入侵检测(如恶意软件、Rootkit检测)、日志数据分析、文件完整性监控以及主动响应(如自动封禁IP)等能力。
资产与漏洞管理 自动进行资产盘点(端口、进程、应用等),并关联CVE数据库实现漏洞检测,帮助识别系统弱点。
合规性与配置评估​ 支持PCI DSS、GDPR、HIPAA等多种合规标准,提供预定义的检查策略和自动化报告生成功能。
云与容器安全​ 支持通过API监控AWS、Azure、Google Cloud等云环境,并能与Docker引擎集成,监控容器镜像、配置和运行时行为。
架构与可扩展性 采用代理/服务器架构,支持Windows、Linux、macOS等多种操作系统,并拥有灵活的规则引擎,允许用户自定义检测规则。

核心组件与工作方式

Wazuh的典型架构主要包含三个组件,它们协同工作以提供完整的安全防护闭环:
核心组件

  1. Wazuh代理(Agent)​​:这是安装在需要保护的端点(如服务器、笔记本电脑、云实例)上的轻量级软件。它负责收集日志、监控文件完整性、扫描系统配置和漏洞,并将这些数据安全地发送给中央管理器。
  2. Wazuh服务器(Server)​​:作为大脑,服务器接收来自所有代理的数据,并通过内置的解码器和规则引擎进行分析,以识别潜在的安全威胁和异常活动。它还可以管理代理的配置和升级。
  3. Wazuh索引器(Index)​​:Wazuh索引器是一个高度可扩展的全文本搜索和分析引擎。这个中央组件索引并存储由Wazuh服务器生成的警报。
  4. Wazuh仪表盘(dashboard):Wazuh仪表盘是数据可视化和分析的网络用户界面。它包括用于威胁狩猎、合规性(例如,PCI DSS、GDPR、CIS、HIPAA、NIST 800-53)的现成仪表盘,检测到的易受攻击的应用程序,文件完整性监控数据,配置评估结果,云基础设施监控事件以及其他内容。它还用于管理Wazuh配置并监控其状态。

主要应用场景

基于上述特点,Wazuh可以在多种环境中发挥重要作用:

  • 企业网络安全​:保护企业内网中的服务器和终端设备,检测和响应来自内部和外部的安全威胁,如SSH暴力破解、Web应用攻击等。
  • 满足合规性要求​:对于需要遵守PCI DSS、GDPR(通用数据保护条例)等法规的组织,Wazuh的自动化合规检查和报告功能可以显著降低审计复杂度。
  • 云原生环境防护​:在混合云或多云环境中,Wazuh能提供统一的安全视图,监控云基础设施的配置风险(如公开的S3存储桶)和容器化应用的安全。

安装与配置

1、资源要求

wazuh安装的硬件需求高度依赖于受保护端点数量和云工作负载。
以下配置在同一主机上all in one部署Wazuh服务器、Wazuh索引器和Wazuh仪表板。这通常足以监控多达100个端点,并存储90天的可查询/索引警报数据。下表显示了all in one部署的推荐硬件:

Agents CPU RAM Storage (90 days)
1-25 4 vCPU 8 GiB 50 GB
25–50 8 vCPU 8 GiB 100 GB
50–100 8 vCPU 8 GiB 200 GB

Wazuh 的中心组件需要 64 位 Intel、AMD 或 ARM Linux 处理器(x86_64/AMD64 或 AARCH64/ARM64 架构)来运行。Wazuh 推荐以下任何一种操作系统版本:

  • Amazon Linux 2,Amazon Linux 2023
  • CentOS 7,8
  • CentOS Stream 10
  • Red Hat Enterprise Linux 7,8,9,10
  • Ubuntu 16.04,18.04,20.04,22.04,24.04

2、快速安装

Wazuh的安装很简单,直接执行以下命令即可。

1
curl -sO https://packages.wazuh.com/4.13/wazuh-install.sh && sudo bash ./wazuh-install.sh -a

命令执行完成,输出将显示访问用户名密码,并显示确认安装成功的消息。

1
2
3
4
5
INFO: --- Summary ---
INFO: You can access the web interface https://<WAZUH_DASHBOARD_IP_ADDRESS>
User: admin
Password: <ADMIN_PASSWORD>
INFO: Installation finished.

通过web界面就可以访问安装好的wazuh
wazuh登录界面

输入用户名和密码就可以登录到wazuh
wazuh的dashboard

3、修改密码

wazuh安装后会默认给个admin的密码,这个密码比较长也不好记忆。可以通过以下命令对admin的默认密码进行修改。

1
bash wazuh-passwords-tool.sh -u admin -p Secr3tP4ssw*rd

4、安装EDR的agent

Wazuh代理是一种单一且轻量级的监控软件。它是一个多平台组件,可以部署到笔记本电脑、台式机、服务器、云实例、容器或虚拟机。它通过收集关键系统和应用记录、库存数据以及检测异常,为端点的安全性提供可见性。
在wazuh的dashboard界面,找到Agents summary 点击进去后,点击“Deploy new agent” 安装新的agent代理
\[图片\]

将显示agent安装的向导界面。
\[图片\]

选择目标主机的操作系统,填写wazuh的服务的IP后,将自动生成安装agent的脚本命令。
\[图片\]

在目标主机上直接执行命令就可以成功将agent安装。
\[图片\]

通过以下命令启动wazuh-agent

1
2
3
sudo systemctl daemon-reload
sudo systemctl enable wazuh-agent
sudo systemctl start wazuh-agent

再通过 sudo systemctl status wazuh-agent 查看wazuh-agent的运行状态。
\[图片\]

5、验证EDR的效果

wazuh-agent安装完后,就可以在wazuh的dashbord中看到agent采集到的相应的安全风险概览数据了。
\[图片\]

总结与建议

总的来说,Wazuh是一个功能全面、可扩展性强的开源安全平台,特别适合那些希望构建统一、高效且成本可控的安全运营体系的企业或技术团队。后续我将通过一系列POC来验证wazuh的能力。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

12…22>
XieJava

XieJava

219 日志
13 分类
27 标签
RSS
GitHub
友情链接
  • 爱分享读书
  • CSDN
  • 豆瓣
© 2025 XieJava | Site words total count: 441.2k

主题 — NexT.Muse
0%