XieJava's blog

记录最好的自己


  • 首页

  • 分类

  • 标签

  • 归档

  • 关于

为搞清楚凌晨上网都在干啥,我建了一套AI上网行为分析系统

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

近期小孩放假在家,发现晚上还抱着平板不放,每天搞到凌晨。这得要劝说有正常的作息时间,少拿平板做与学习无关的事情,但又不能强制拿平板检查看在哪些时间段都在干啥。于是为了搞清楚其凌晨上网都在干啥,我建了一套AI上网行为分析系统,随时收到上网行为的分析报告。

原理很简单,通过Alloy采集路由器的上网行为日志,用Loki进行日志存储,然后通过n8n建立AI分析工作流,通过Loki的API接口定期获取上网行为日志,给AI大模型进行分析整理然后自动将上网行为分析结果整理发邮件出来。

原理图如下:

上网行为分析系统

接下来看如何实现的完整过程。

一、上网行为的日志采集

要采集上网行为的日志,需要在路由器上进行配置,将上网行为的日志通过syslog的方式外发出来。这里可以参考《通过TPLink路由器进行用户行为审计实战》
另外需要有一套日志分析系统进行采集、存储。这里可以参考《Loki+Alloy+Grafana构建轻量级的日志分析系统》

二、上网行为的自动分析

基于前面介绍的采集到的上网行为数据,我们基于n8n来构建利用LLM大模型的分析能力实现上网行为的分析和整理。
关于如何搭建本地的n8n平台可以参考《飞牛NAS本地化部署n8n打造个人AI工作流中心》
整个n8n的工作流如下图所示:

n8n工作流

1、获取上网行为的数据(HTTP Request)

n8n提供了Http Request节点,可以很方便的调用Http的API接口获取数据。而Loki也是很贴心的提供Http的API接口进行数据的查询。
n8n的Http Request节点配置如下,通过Get方法调用loki的查询接口地址http://192.168.0.30:3100/loki/api/v1/query_range,查询条件设置{exporter="OTLP"} != "apptype:网络基础协议" 意思是排除掉apptype:网络基础协议,因为这部分不是用户的上网行为信息。设置查近2个小时的2000条日志信息。因为用的是开源LLM大模型,一次性处理token的数量有限。如果模型能力强可以设置查更多的数据。

HTTP Request

点击“Execute step”就可以看到通过loki的API接口查到的上网行为的结果数据。

API接口查到的上网行为的结果数据

2、通过AI智能体进行行为分析(AI Agent)

我们要将上网行为的数据交给LLM大模型来进行分析,所以要引入AI智能体的节点。在AI Agent接口,把HTTP Request的结果给AI Agent,然后给出提示词。提示词就是告诉AI大模型要做什么。
我的提示词如下:

“你是一个安全分析专家,根据日志信息能够分析用户的异常行为,请根据得到信息进行用户行为分析,分析发现是否有异常的行为。请特别注意分析凌晨0点至5点时间段,如有用户在此时间段有上网行为,请详细分析在该时间段用了多少时间做了什么。”

AI Agent配置

在这里我用的大模型是google的Gemini2.5flash。

大模型配置

配置Gemini2.5flash的API key就可以使用了Gemini2.5了。如何白嫖Gemini可以参考《国内免代理免费使用Gemini大模型实战》和《使用Gemini Balance让Gemini免费到底》

API key配置

当然也可以配置成其他的大模型。

3、整理分析结果(Markdown)

通过Markdown节点将大模型分析出来的结果进行美化整理成HTML的格式

Markdown节点

4、自动发邮件报告(Send Mail)

加入自动发邮件的节点,将用户上网行为的分析报告通过邮件的方式发送出来。
配置SMTP account信息。
关于如何配置SMTP 信息可以参考以前的博文《通过Django发送邮件》里面有详细的介绍。

SMTP配置

配置邮件的发送者和接收者,邮件主题等信息。

配置sendmail

5、配置AI工作流定时启动(Schedule Trigger)

将n8n的工作流配置为Schedule Trigger根据周期定时触发,我这里设置的是每两个小时触发一次。

Schedule Trigger

三、上网行为分析报告及效果

将n8n的工作流激活后,AI用户上网行为分析系统就开始勤勤恳恳的工作了。

activate工作流

每两个小时从路由器获取上网行为的日志,通过大模型进行上网行为的分析,整理后自动发邮件进行报告了。

执行情况

最后看一下经过大模型分析的上网行为分析报告

上网行为分析报告

也可以配置到网易邮箱大师通过手机收到上网行为分析报告的邮件通知了。

手机端报告

至此,我们通过综合运用alloy+loki构建了日志采集系统采集路由器的用户行为日志,通过n8n构建AI工作流调用Gemini大模型进行用户行为的分析自动发送上网行为的分析报告,构建了自动化的上网行为分析系统。


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


“fullbug”微信公众号

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

Loki+Alloy+Grafana构建轻量级的日志分析系统

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

在现代运维和开发流程中,日志分析是故障排查、性能优化的核心环节。传统的日志系统(如 ELK Stack)虽功能强大,但资源消耗高、配置复杂,对中小规模环境或边缘设备不够友好。Loki+Alloy+Grafana组合则以 “轻量级、低成本、易部署” 为核心优势,成为替代方案的理想选择。

典型的基于 Loki 的日志记录技术栈由 3 个组件组成:

Loki

  • Loki:Grafana Labs 开源的日志聚合系统,借鉴 Prometheus 设计理念,仅索引日志元数据(标签)而非全文,大幅降低存储和计算开销。
  • Alloy:代理或客户端,Grafana 官方推荐的新一代数据采集器Alloy(替代 Promtail),支持日志、指标、追踪多信号采集,配置灵活且资源占用低。
  • Grafana:强大的可视化平台,原生支持 Loki 数据源,提供丰富的日志查询、过滤和仪表盘功能。

对网络设备、安全设备等的告警日志进行分析是在网络运维和安全运营中经常遇到的场景,我们可以通过Loki+Alloy+Grafana来搭建一套轻量级的日志分析系统来收集各类网络设备、安全设备的日志进行分析。现在就以采集TP-Link路由器的上网行为日志为例来构建这套日志分析系统。

日志采集分析

本文将详细介绍在Ubuntu 24.04 LTS环境中,从零搭建这套日志分析系统的全过程,确保每个步骤可操作、可复现。

环境准备:Ubuntu 24.04 系统配置
系统要求

  • 硬件:2 核 CPU、4GB 内存、20GB 磁盘(日志存储根据需求调整)
  • 系统:Ubuntu 24.04 LTS(已更新至最新版本)
  • 权限:sudo 权限(用于安装软件和配置服务)

根据Grafana官网的建议步骤,先安装Loki,再部署采集代理Alloy,再部署Grafana,通过Grafana来分析日志。

日志采集步骤

部署Loki日志存储系统

Loki 是日志的 “后端存储”,负责接收、存储日志并响应查询请求。采用二进制方式部署,步骤如下:

1. 下载Loki二进制文件

通过 GitHub API 获取Loki的二进制安装包:

1
2
3
4
5
6
7
8
9
10
# 创建Loki安装目录并下载二进制包  这里安装的是3.5.1 
sudo mkdir -p /opt/loki /etc/loki
wget -qO /opt/loki/loki-linux-amd64.zip "https://github.com/grafana/loki/releases/download/v3.5.1/loki-linux-amd64.zip"

# 解压并设置可执行权限
sudo unzip -d /opt/loki /opt/loki/loki-linux-amd64.zip && rm /opt/loki/loki-linux-amd64.zip
sudo chmod a+x /opt/loki/loki-linux-amd64

# 创建软链接,方便全局调用
sudo ln -s /opt/loki/loki-linux-amd64 /usr/local/bin/loki

查看Loki版本 loki --version

1
2
3
4
5
6
7
loki --version
loki, version 3.5.1 (branch: release-3.5.x, revision: d4e637ce)
build user: root@ceaea196ea87
build date: 2025-05-19T17:06:03Z
go version: go1.24.1
platform: linux/amd64
tags: netgo

2. 配置 Loki

使用官方提供的本地存储配置文件,创建 Loki 配置目录并下载默认配置文件:

1
2
sudo mkdir -p /etc/loki
sudo wget https://raw.githubusercontent.com/grafana/loki/v3.5.1/cmd/loki/loki-local-config.yaml -O /etc/loki/config.yaml

3. 创建 Systemd 服务

为 Loki 创建系统服务,确保开机自启和进程管理:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
sudo tee /etc/systemd/system/loki.service <<EOF
Description=Grafana Loki Log Aggregation System
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/loki -config.file=/etc/loki/config.yaml
Restart=on-failure
User=root

[Install]
WantedBy=multi-user.target
EOF# 重载systemd配置并启动Loki

sudo systemctl daemon-reload
sudo systemctl start loki
sudo systemctl enable loki
# 验证服务状态(应显示active (running))
sudo systemctl status loki

可以使用 journalctl -u loki -f 查看 Loki 日志以进行故障排除

4. 验证 Loki 运行

通过 HTTP 接口检查 Loki 状态:

1
curl http://127.0.0.1:3100/ready

预期输出:ready(表示 Loki 已就绪)

loki ready

部署配置Alloy

Alloy 是连接日志源与 Loki 的 “桥梁”,负责采集服务器本地日志并发送到 Loki。作为 Grafana Agent 的替代者,Alloy 配置更灵活,支持多信号采集。

1. 安装 Alloy

通过 Grafana 官方仓库安装 Alloy(与 Grafana 使用同一仓库,无需重复添加):

1
2
3
4
5
# 安装Alloy包
sudo apt install -y alloy

# 验证安装
alloy --version

alloy --version

2. 配置 Alloy 收集日志

Alloy 使用声明式配置文件定义采集规则,默认路径为/etc/alloy/config.alloy。我们需配置:
1、 通过syslog采集;2、对日志中的IP进行提取;3、 将日志转发到 Loki。
创建配置文件:

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
otelcol.receiver.syslog "local" {
udp {
listen_address = "0.0.0.0:514"
encoding = "GBK"
}
output {
logs = [otelcol.exporter.loki.local.input]
}
}

otelcol.exporter.loki "local" {
forward_to = [loki.process.extract_ip.receiver]
}

loki.process "extract_ip" {
stage.regex {
expression = "a:(?P<ip>\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})"
}
stage.labels {
values = {
ip = "ip",
}
}
forward_to = [loki.write.local.receiver]
}

loki.write "local" {
endpoint {
url = "http://localhost:3100/loki/api/v1/push"
}
}

配置说明:

alloy目前对syslog支持并不是特别好,经过多次尝试,用alloy的syslog组件不能支持中文编码,所以改用通过otelcol的syslog来采集日志。
listen_address = “0.0.0.0:514” 表示监听所有源的514端口来的upd数据。

3. 启动 Alloy 服务

1
2
3
4
5
# 启动Alloy并设置开机自启
sudo systemctl enable --now alloy

# 验证服务状态(应显示active (running))
sudo systemctl status alloy

排查提示若启动失败,通过sudo journalctl -u alloy -f查看日志,常见问题:配置文件语法错误、Loki未启动导致连接失败

部署Grafana

Grafana 是整个系统的 “前端”,用于日志查询和可视化。通过官方仓库安装可确保自动更新。

1. 添加 Grafana 官方仓库

1
2
3
4
5
# 导入Grafana GPG密钥(用于验证包完整性)
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null

# 添加Grafana OSS仓库(稳定版)
echo 'deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://packages.grafana.com/oss/deb stable main' | sudo tee /etc/apt/sources.list.d/grafana.list

2. 安装并启动 Grafana

1
2
3
4
5
6
7
8
# 更新包索引并安装Grafana
sudo apt update && sudo apt install -y grafana

# 启动Grafana服务并设置开机自启
sudo systemctl enable --now grafana-server

# 验证服务状态(应显示active (running))
sudo systemctl status grafana-server

3. 验证 Grafana 安装

打开浏览器访问 http://<服务器IP>:3000,首次登录使用默认凭据:

  • 用户名:admin
  • 密码:admin

首次登录会要求修改密码,按提示设置新密码即可。

接入数据源

1. 在发送端配置采集器的地址

这里我们要接入和分析TP-Link路由器的上网行为日志。所以要在路由器上配置将日志发送到alloy采集节点的服务器。具体的TP-Link路由器的上网行为分析审计的配置参考《通过TPLink路由器进行用户行为审计实战》

行为审计

2. 在采集端看是否收到数据

通过tcpdump命令查看采集节点是否有日志数据进来

1
tcpdump -i ens2 -A port 514

tcpdump

这里可以看到有日志数据通过ens2网卡的514端口进来了。

用Grafana查询和分析数据

在用Grafana进行查询之前先要配置Grafana的数据源添加loki的数据源

添加数据源

在loki的数据源中设置loki的连接地址

loki连接

设置完成后就可以用Grafana强大的分析查询和可视化来对日志进行分析了。

日志分析

通过本文步骤,我们在 Ubuntu 24.04 上构建了 Loki+Alloy+Grafana 日志分析系统:

Loki 负责高效存储日志,仅索引元数据降低开销;
Alloy 轻量采集系统日志,配置灵活易扩展;
Grafana 提供强大的日志查询与可视化能力(支持 LogQL、仪表盘、告警)。

该架构资源占用低(单节点最低 2 核 4GB 内存即可运行),适合中小规模环境、边缘设备或开发测试场景。后续可扩展至多节点 Loki 集群、添加日志告警规则,或集成 Prometheus 监控指标,构建完整的可观测性平台。


博客地址:http://xiejava.ishareread.com/


“fullbug”微信公众号

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

VScode对Ubuntu用root账号进行SSH远程连接开发

发表于 2025-08-02 | 更新于: 2025-08-10 | 分类于 技术 , 开发 | | 阅读次数:
字数统计: 1.2k | 阅读时长 ≈ 4

由于linux服务器大部分都是基于命令行的操作,缺乏比较方便好用的编辑工具,对于经常在linux服务器上做开发的同学来说直接在服务器上进行开发或配置文件的修改还不是特别的方便。虽然linux上有vi或vim比起图形化的编辑工具体验感还是不是很好。作为程序员常用的宇宙第一的VScode就提供了相应的插件可以通过ssh远程连接到服务器上直接编辑服务器上相应的文件,极大提高了在服务器上开发或修改配置文件的效率和体验感。本文就来介绍通过VScode对Ubuntu用root账号进行SSH远程连接直接在服务器上进行开发。

一、安装VScode的ssh扩展插件

Remote-SSH 扩展 允许你将任何带有 SSH 服务器的远程机器用作你的开发环境。这可以在多种情况下极大地简化开发和故障排除:

  • 在部署目标操作系统上开发​,或者使用比本地机器更大、更快或更专业化的硬件进行开发。
  • 轻松切换不同的远程开发环境,并安全地进行更新​,而无需担心影响本地机器。
  • 从多台机器或不同位置访问现有的开发环境。
  • 调试运行在其他地方(例如客户现场或云端​)的应用程序。

在VScode的编辑器界面在Extension中搜索ssh排名前三的Remote-SSH、Remote - SSH: Editing Configuration Files、Remote Explorer是微软官方的ssh扩展插件,都安装一下。

ssh扩展插件

安装好了后就会在左侧的导航看到Remote Exploer

Remote Exploer

在SSH中点“+” 后就可以在上面的导航输入框中输入要ssh连接服务器的命令。如:ssh xiejava@192.168.0.30 意思就是通过xiejava的用户名ssh登录到192.168.0.30的服务器。

New Remote

输入正确的口令后,表示服务器的图标变亮就意味着已经通过SSH连上了服务器了。

SSH连上了服务器

连上服务器后就可以通过命令来对服务器进行操作,也可以直接打开服务器上的文件进行操作了。

直接打开服务器上的文件进行操作

这样就可以直接在服务器上直接编辑文件,直接在命令行中输入命令执行,直接看到执行结果,简直不要太爽。

直接编辑文件

一般的教程到这里就结束了。但是有些Linux是默认不能使用root用户登录的如Ubuntu,如果不用root用户登录只能访问到登录用户的文件夹,如我是用xiejava登录的就只能访问到/home/xiejava的目录,只能在这个目录下新建和编辑相应的文件,而且每次打开编辑操作文件都要输入登录密码,作为服务器上的开发来说这显然是不可接受的。所以我们要用root账号进行ssh进行远程连接。

二、开启Ubuntu的root账号免密登录

1、生成SSH密钥对,并部署到服务器

要使 root 用户成功登录,需先在客户端生成 SSH 密钥对,并将公钥部署到服务器:

  1. 客户端生成密钥 (在本地PC执行):
1
ssh-keygen -t ed25519 -C "root_ssh_key"
  • 按提示选择保存路径(默认 C:\Users\你的用户名.ssh\id_ed25519)。
  • 连续按 3 次回车​,不设密码(实现完全免密)
    最后在文件夹中生成SSH密钥对
    生成SSH密钥对
  1. 部署公钥到服务器​:
    登录 Ubuntu
    创建 .ssh 目录并写入公钥
1
2
3
4
mkdir -p ~/.ssh
echo "粘贴复制的公钥内容,也就是id_ed25519.pub文件里面的内容" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

2、测试免密登录

在 Windows PowerShell 执行:

1
ssh 用户名@Ubuntu_IP
  • 成功标志​:直接登录 Ubuntu,无需输入密码。
  • 失败表现​:提示输入密码或返回 Permission denied。

3、启用root用户

使用当前具有 sudo 权限的用户登录系统。执行密码修改命令

1
sudo passwd root
  • 输入当前用户的密码​(用于 sudo 提权)。
  • 输入新的 root 密码​(输入时不会显示字符)。
  • 再次确认新密码。
    禁用root密码登录(增强安全)​
1
sudo vim /etc/ssh/sshd_config

设置PermitRootLogin prohibit-password
PermitRootLogin prohibit-password

重启systemctl restart ssh

4、找到本地的ssh配置文件并配置密钥登录

在vscode中点击SSH旁边的配置按钮就会出现ssh本地的配置文件,一般是C:\Users\你的用户名\.ssh\config

找到本地的ssh配置文件

在config文件中配置User root 和IdentityFile 密钥文件的路径。

配置

这样就可以通过root进入到任何目录操作编辑任何文件了。

root免密登录

最后要提醒大家的是大家在修改任何配置文件的时候要注意备份和确认,因为获得了root权限可以操作编辑任何文件了。


博客地址:http://xiejava.ishareread.com/


“fullbug”微信公众号

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

飞牛NAS本地化部署n8n打造个人AI工作流中心

发表于 2025-07-27 | 更新于: 2025-08-10 | 分类于 技术 | | 阅读次数:
字数统计: 1.3k | 阅读时长 ≈ 4

n8n是一个开源的工作流自动化工具,类似于Zapier和IFTTT,但它更加灵活和强大 。它允许用户通过图形化界面,以拖拽的形式构建自动化工作流,将不同的应用程序和服务连接起来,实现各种自动化任务 。
n8n最初的用途是自动化日常工作流,帮助用户节省时间,提高工作效率。在AI技术出现后,n8n更是成为了连接AI与数字世界的桥梁,因为它能够让AI与超过1000种不同的服务进行交互,几乎使AI能与赛博世界中的任何其他主体畅通无阻。

n8n的主要优势包括:

  • 部署简单:支持Docker一键私有化部署,也提供云服务选项。
  • 可接入服务强:集成了超过1000种第三方服务,且自部署版本具备丰富的本地调用能力,可以对本地数据库、文件等进行操作,甚至作为寄生系统为现有业务增添自动化和AI功能。
  • 对大模型友好:内置图形可视化的LangChain节点,能够方便地集成各种AI模型、记忆、工具和解析器,支持BYOK(Bring Your Own Key)模式,即用户可以自备API Key来调用AI服务。
  • 支持半封装模式:在低代码和代码之间实现了平衡。对于已有的节点,可以拖拽完成接入;对于没有现成节点的功能,支持通过HTTP Request接入几乎任何开放API的第三方服务。同时,其Code节点支持运行JavaScript和Python代码,非常适合与ChatGPT进行结对编程。

对于个人用户来说,在NAS(网络附加存储)上部署n8n具有多方面的优势:

  • 完全掌控数据和流程:n8n是开源的,可以选择将其部署在自己的NAS服务器上,从而完全掌控您的数据和自动化流程,无需担心数据泄露或被供应商锁定。
  • 部署简单:n8n的部署过程相对简单,可以通过Docker一键私有化部署,即使是不懂代码的用户也能通过可视化的界面快速上手。
  • 常态化运行:NAS通常是7x24小时开机的设备,结合n8n的AI工作流能力,可以帮助个人用户完成日常工作中大量的重复性劳动,例如自动生成日报、周报等,从而释放更多时间用于其他活动。
  • 随时随地访问:NAS虽然部署在家里,但是一般都通过ddns或其他方式打通了与外网的连接,可以随时随地方便的构建和调试自己AI工作流应用。

本文就以我的飞牛NAS为例来部署n8n打造人工的AI工作流中心。

一、下载n8n的镜像

在飞牛NAS的Docker镜像仓库中找到n8n的镜像,下载这个下载量和标星最多的n8nio/n8n的镜像。

下载n8n镜像

下载后就可以在飞牛NAS的本地镜像库中看到这个n8nio/n8n镜像。

本地镜像

二、启动镜像创建n8n容器

点击本地n8nio/n8n镜像的启动按钮,弹出创建容器的配置界面,在配置界面中输入容器的名称n8n勾选开机自启动。

创建容器

在进行存储位置配置之前,在NAS的文件管理中创建用于存储n8n数据文件的文件夹。

创建存储位置

在创建容器详情的配置界面其他的配置项都可以默认,在存储位置的配置项中一定要配置将容器的存储空间映射到NAS上的文件夹,这个文件夹就是刚在NAS文件管理中建的文件夹(也就是将docker容器中的/home/node/.n8n映射到NAS中的n8n/n8n_data)。否则docker重启n8n的配置数据会丢失。

存储空间映射

配置完成后,勾选创建后启动容器,点击“创建”。容器创建启动后就可以通过本地的5678端口访问n8n的应用了。

启动容器

三、访问使用n8n

在浏览器中输入你的主机和端口就可以访问n8n,我这里是 http://192.168.0.18:5678/
第一次访问有可能会出现如下图所示的提示,n8n用到了安全的cookie,要不就要配置HTTPS,要不就在环境变量中配置N8N_SECURE_COOKIE为false

警告

这里,我们在容器设置里添加变量,设置N8N_SECURE_COOKIE为false

设置N8N_SECURE_COOKIE为false

这样再次访问 http://192.168.0.18:5678/ 就可以正常访问了。第一次用n8n要设置自己的用户名和密码。

设置自己的用户名和密码

设置完用户名密码就可以使用n8n了。

使用n8n

我们可以导入一个已经配置好的n8n工作流实例。

导入n8n工作流实例

可以看到正常导入,将配置修改为自己的配置就可以直接使用别人已经配置好的工作流了。

使用效果

至此我们在飞牛NAS上成功部署了n8n,可以方便的随时随地构建自己的AI工作流应用了。


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


“fullbug”微信公众号

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

通过TPLink路由器进行用户行为审计实战

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

用户行为审计是指对用户在网络平台上的行为进行监控和记录,以便对其行为进行分析和评估的过程。随着互联网的普及和发展,用户行为审计在网络安全和数据隐私保护方面起到了重要的作用。 用户行为审计可以帮助发现和预防网络安全威助。通过对用户的行为进行监控和记录,可以及时发现并阳止恶意攻击、病毒传播等网络安全威胁。例如,当用户的行为异常时,系统可以自动发出警报并采取相应的措施,保护网络平台的安全。
本文以家用的TP-Link 路由器为例,来实战一下用户行为审计,看看能发现一些什么异常。
TP-Link路由器是家用比较常见的路由器,通过简单的配置就可以实现用户行为管控。

一、路由器的行为管控配置

一般的路由器都带有简单行为管控功能,以我的TL-R479GP-AC为例,可以对网站访问、应用控制等进行相应的管控。
路由器行为管控配置

这里我们现对网站和应用进行监控记录,对用户的行为进行审计和管控。

1、网站访问控制

网站访问控制可以实现对某些IP,在什么时间段、访问什么网站进行记录和监控。
如我们对bilibil网站进行监控,将B站的域名配置到网站分组中,组名为“娱乐视频”。当然还可以加入跟多的需要记录和管控的网站。
网站分组

在网站访问的规则中进行配置,为IP地址组选择受管理的网站,在相应时间段中,与IP地址相匹配的设备在访问“娱乐视频”等类型的网站时受到管理。我这里是配置的是所有的地址段、所有时间段、将“娱乐视频”记录到系统日志。方便我们后续进行上网行为的审计分析。
网站访问控制

2、应用控制

同样可以对应用进行控制,对应用控制就是对APP的移动应用的访问进行监控和控制。在这里我们选择对所有的应用进行监控。
应用控制选择

配置监控的规则,如所有的IP所有的时间段,多访问所有的应用进行记录
记录应用访问

通过上面的配置,路由器就会根据上面配置的规则来记录相应的日志。但是要进行行为审计还要借助其他的工具如安全审计系统。

二、用户行为审计

1、安装安全审计系统

TP-Link提供了免费的TP-LINK安全审计系统。从官网上下载既可以进行部署和设置。TP-link提供的安全审计系统是以虚拟机镜像方式进行安装的。下载安装包后安装包附有一个比较详细的安装教程。
TP-Link官网 https://www.tp-link.com.cn/
TPLINK官网下载安全审计系统

下载安装包解压后除了有一个虚拟机镜像文件外安装包还附有一个比较详细的安装教程。
解压安装包

在正式安装之前需要安装Oracle VirtualBox的虚拟机管理软件,然后根据这个安装手册将虚拟机注册到管理软件进行启动。
虚拟机配置如下图所示:
虚拟机配置

启动虚拟机后,就可以访问安全审计平台了。
安全审计系统登录界面

安全审计系统默认用户名和密码都是admin,登录成功后会提示该默认密码。

2、配置安全审计平台

如果用对路由器进行安全审计,要进行简单的配置。最关键的配置还是设置IP地址。
安全审计系统安装后默认的IP是192.168.1.240,要采集网络中路由器的日志,必须要和路由器在同一网段网络要通。所以要将安全审计平台的IP进行修改。
修改IP

3、配置路由器

配置路由器的目的是要将路由器的审计日志发送到刚安装和配置好的安全审计平台。
登录到TP-Link路由器的配置管理界面,开启行为审计的上传用户上网行为,输入安全审计系统平台的地址,保存配置。
上报行为审计

同样将系统日志也配置报送到安全审计平台。
上报系统日志

将安全审计的日志也送到安全审计平台。
上报安全审计

4、日志分析与行为分析

配置完成后,我们再登录到安全审计系统,就可以看到审计日志都送到系统了可以做相应的审计了。
可以看到那个IP什么时候访问了什么,同时也看到了前面我们在路由器的的访问控制也生效了,有效的阻止了企图访问bilibili.com的IP。
访问控制效果

在行为分析中可以看到用户受管控的排行
行为分析

也可以看到具体哪些IP受管控的次数
受管控的次数

以及具体被管控的原因
具体被管控的原因

5、利用AI进行审计与分析

现在AI大模型已经很强大了,我们可以将安全审计系统的日志导出来给大模型进行审计与分析。发现其他的一些人工审计发现不了的异常。如发现用户的行为特征及偏离平时访问基线的一些访问等。
我们将安全审计系统的审计日志导出为Excel,将Excel通过coze空间进行审计分析,可以生成比较完整的审计报告。
coze空间进行审计分析

可以看到coze空间生成的审计报告还是比较全面美观。
完整的审计报告

也可以用WPS自带的AI数据分析,可以看出对用户的异常行为的分析还是比较专业和详细的。
WPSAI分析报告


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


“fullbug”微信公众号

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

使用GeminiBalance让Gemini免费到底

发表于 2025-07-10 | 更新于: 2025-08-10 | 分类于 技术 | | 阅读次数:
字数统计: 1.6k | 阅读时长 ≈ 6

Gemini是目前好用的免费大模型,通过在 Google AI Studio 获取 API 密钥,每位开发者可以获得慷慨的免费使用额度。这包括每天 300,000 个 Token(包括提示和响应)以及每分钟 60 个请求的速率限制 。虽然免费但有一定的额度,不过通过申请不同的账号可以申请获取多个API密钥。Gemini Balance 就是这么一款工具,允许您管理多个 Gemini API Key,这样就可以使Gemini免费额度翻N倍。

Gemini Balance 是一个基于 Python FastAPI 构建的应用程序,旨在提供 Google Gemini API 的代理和负载均衡功能。它允许您管理多个 Gemini API Key,并通过简单的配置实现 Key 的轮询、认证、模型过滤和状态监控。此外,项目还集成了图像生成和多种图床上传功能,并支持 OpenAI API 格式的代理。

要感谢snailyp大佬开发的gemini-balance 项目地址:https://github.com/snailyp/gemini-balance
《国内免代理免费使用Gemini大模型实战》介绍了如何将Gamini中转到国内能够使用,本文介绍如何使用免费的ClawCloud容器化部署gemini-balance配置多个Gemini API Key,不仅在国内可以使用还可以让Gemini免费到底!

一、申请注册多个Gemini API Key

注册google账号就可以免费申请Gemini API密钥。

申请地址 https://aistudio.google.com/

申请密钥

有了Gemini API密钥后就可以调用API使用Gemini 大模型的能力了。

注册多个google账号就可以申请多个Gemini API 密钥。

二、注册ClawCloud账号

ClawCloud是一个成立于2024年的云计算平台,总部位于新加坡,ClawCloud旨在简化技术栈的复杂性,帮助用户从编码到生产的整个过程只需几次点击即可完成 。它提供免费的每月5美元GitHub验证赠金,无需信用卡即可开始使用,并承诺在1分钟内完成设置 。

ClawCloud 在国内可以直接访问,Github 账户注册时间超过 180天就有每个月5美元的赠送额度,足够支撑我们部署gemini-balance的应用了。

在这里插入图片描述

点击 Github 登录选择github登录

进入 Github 登录界面后,输入账户名、密码,随后点击 Sign in。
Github登录

登录以后就在用户中心Account Center就可以看到每个月赠送的额度,如果有使用还可以看到目前使用的额度。

ClawCloud的用户中心

三、通过 ClawCloud Run 部署gemini-balance

gemini-balance官方有详细的部署文档

https://gb-docs.snaily.top/guide/setup-clawcloud-sqlite.html

大家可以按照这个文档一步步部署

  1. 部署项目
  • 进入主界面后,点击左上角 Region,选择服务器地址。推荐选择 Singapore。选择完成后,网页会刷新,并在服务器地址前☑️。

选择服务器地址

  • 点击 App Launchpad。

选择App Lannchpad

  • 进入页面后,点击页面右上角 Create App,进入配置页面。

Create App

  • 进入配置页面后,按顺序填写信息(不熟悉项目名称的,请打开在线翻译)。
    • Application Name:为方便识别管理,建议填写本项目名字geminibalance
    • Image: Public
      • Image Name:ghcr.io/snailyp/gemini-balance:latest

在这里插入图片描述

- Usage:`Fixed`;
- Replicas:`1`
- CPU:`1`
- Memory:`512`

> 说明:1. 若登录账号只选择部署 1 个项目,则推荐上述最高免费配置。2.目前免费用户每月流量为 10g,超出部分 0.05 美元/g。可根据流量使用情况选择服务器配置。

在这里插入图片描述

- Network
    - Container Port:`8000`
    - Enable Internet:点选为`Access`状态

在这里插入图片描述

  • Advanced Configura
    • Environment Variables:点击 Add,随后粘贴以下变量。填写完成后点击 Add 完成配置。
1
2
3
4
5
DATABASE_TYPE=sqlite
SQLITE_DATABASE=default_db
API_KEYS=[""]
ALLOWED_TOKENS=[""]
AUTH_TOKEN=TZ=Asia/Shanghai

变量说明如下:

变量名 说明 格式及示例
API_KEYS Gemini API 密钥列表,用于负载均衡 [“your-gemini-api-key-1”,”your-gemini-api-key-2”]
ALLOWED_TOKENS 允许访问的 Token 列表 [“your-access-token-1”,”your-access-token-2”]
AUTH_TOKEN 【可选】超级管理员token,具有所有权限,不填默认使用 ALLOWED_TOKENS 的第一个 sk-123456

在这里插入图片描述

  • 添加完环境变量后,再按照下图设置storage

在这里插入图片描述

  • 返回页面最上方,点击 Deploy Application。弹窗提示Are you sure you want to deploy the application?选择 Yes。

在这里插入图片描述

  • 等待几秒后,跳转至状态界面。此时,请确认页面左上角显示 running。若显示为其他状态,请稍后片刻;仍未显示 running,请确认你配置选项是否正确。需要修改的,可点击页面右下角 Manage Network 选项修改参数,或删除该项目重新部署。

在这里插入图片描述

  • 将页面滚动到最下方,在 Network 选项卡中,查看右侧公网地址配置情况。一般情况下,显示 pending 表明还在处理当中,需要等待 2~5 分钟,直至pending 状态变为Available。 实际情况下, 2 分钟后即使公网地址前显示pending,亦可尝试在新的浏览器标签中打开该地址。若网页能正常显示本项目登录界面,则正常使用即可。若公网地址前的pending状态超过 10 分钟,且无法打开登录界面,原因可能是服务器过载,需要更长等待时间。建议换区或换服务商重新部署。

在这里插入图片描述

  • 设置自定义域名
  • 在cloudflare添加cname记录,如我希望域名为ggg.abc.xyz,cloudflare中这样设置,abc.xyz为托管在cloudflare域名
  • 在clawcloud这样设置,这样就可以自定义域名访问

在这里插入图片描述

四、使用gemini-balance监控配置页面

gemini-balance贴心的带了一个监控配置页面,在这个界面可以配置多个Gemimi API 也可以监控Gemini API的调用情况。

  1. gemini-balance监控页面配置
    • 复制项目公网访问地址后,在浏览器中打开。随后进入登录界面,输入密码即可进入。(如果没有更改配置,密码是your-access-token-1)

gemini-balance监控页面登录

登录后可以进行相应的配置如添加更多的Gemini API Key
配置界面

也可以监控Gemini API Key的调用情况

监控Gemini API Key的调用情况

五、在 cherry studio使用GeminiBalance

以 cherry studio 为例
1. 添加提供商。
- 提供商名称:任意填写

在这里插入图片描述

2. 配置
    - API 密钥:填写监控面板“API 密钥”选项卡中的“允许的令牌列表”。
    - API 地址:填写 ClawCloud 中的公网访问地址。注意结尾不要出现“/”。

在这里插入图片描述

3. 添加模型
4. 点击“管理”,添加模型。

在这里插入图片描述

至此,部署完成。

最后看调用效果
在这里插入图片描述


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


“fullbug”微信公众号

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

国内免代理免费使用Gemini大模型实战

发表于 2025-07-07 | 更新于: 2025-08-10 | 分类于 技术 | | 阅读次数:
字数统计: 1.3k | 阅读时长 ≈ 4

谷歌的Gemini API 为开发者提供了具体的免费额度,允许将Gemini模型集成到自己的应用程序中。
模型可访问范围:开发者可以免费调用 Gemini 2.5 Pro 模型及其轻量级版本 Gemini 2.5 Flash 。
标准免费额度:通过在 Google AI Studio 获取 API 密钥,每位开发者可以获得慷慨的免费使用额度。这包括每天 300,000 个 Token(包括提示和响应)以及每分钟 60 个请求的速率限制 。

一、免费申请Gemini API密钥

注册google账号就可以免费申请Gemini API密钥。
申请地址 https://aistudio.google.com/
申请密钥

有了Gemini API密钥后就可以调用API使用Gemini 大模型的能力了。
国内上网环境无法直接使用Gemini API,本文介绍能够免代理使用Gemini的方法。

二、使用openai-gemini

1、在github上找到openai-gemini

openai-gemini 是一个 serverless 的代理项目,用于将 Gemini API 转换为 OpenAI API 。
项目地址:https://github.com/PublicAffairs/openai-gemini
Gemini API 是免费的, 但有许多工具专门与 OpenAI API 一起使用。该项目可以将Gemini API 转换为 OpenAI API ,并且通过serverless进行调用。我们可以找个国内可以访问的免费serverless服务进行中转满足国内调用使用需求。
这里介绍将openai-gemini部署到Netlify
Netlify 是一个领先的 Web 开发平台,它专门为构建、部署和管理现代高性能网站和 Web 应用程序提供了一站式解决方案。Netlify 的核心理念是支持 Jamstack 架构(JavaScript, APIs, Markup),该架构强调将网站内容预构建为静态文件,并通过 CDN 快速分发,然后通过 API 调用动态数据和执行后端逻辑。

2、将openai-gemini部署到Netlify

Deploy to Netlify

找到”Deploy to Netlify” 点击就可以一键部署到Netlify,部署完成后Netlify会自动分配一个地址用于访问刚部署的openai-gemini的serverless服务。并且这个地址是在过国内可以正常访问的。
project overview

3、在Cherry Studio中配置和使用gemini的模型

1)在Cherry Studio中配置gemini API

通过Netlify中转访问gemini API,我们可以直接在Cherry Studio中配置通过Netlify中转访问gemini API
配置API地址为通过netlify中转的地址
API密钥为google gemini 的API Key
模型可以配置你想使用的模型 如:gemini-2.5-pro
Cherry Studio中配置API key

2)在Cherry Studio中使用gemini 的模型

在Cherry Studio中选择刚配置的gemini-2.5-pro并和它对话,可以看到gemini-2.5-pro可以流畅的输出。
在cherry Studio中使用gemini

4、在Dify中配置和使用gemini的模型

1) 在Dify中配置gemini API

通过openai-gemini将 Gemini API 转换为了 OpenAI API ,所以在dify中应该使用“OpenAI-API-compatible”的插件来配置模型。
OpenAI插件

如果没有安装“OpenAI-API-compatible”插件需先安装。在模型供应商中选择“OpenAI-API-compatible”,点击“添加模型”。
配置API地址为通过netlify中转的地址
API密钥为google gemini 的API Key
模型可以配置你想使用的模型 如:gemini 2.5 pro
配置API key

2)在Dify中使用gemini的模型

在Dify中建一个对话应用,选择刚配置好的 Gemini 2.5 Pro 模型进行对话,可以看到对话成功的调用了gemini API使用Gemini 2.5 Pro的模型进行了回复。
在Dify中使用

5、如果自己有域名可以用自己的域名来中转netlify的地址进行访问

1) 在自己的DNS中配置域名解析到netlify的地址

以我的cloud flare域名服务配置为例,在DNS中配置一个netlifygemini的子域名,解析到目标为开始netlify给的服务地址。
配置子域名

2)在netlify中配置子域名

在netlify中可以配置自己的域名对gemini API进行访问。在netlify的项目中找到“domain you already own”
在netlify中配置自己的域名

在自定义域名配置界面,输入自己的子域名,它会给出Host和Value的值,这两个值需要在自己的DNS域名服务器中配置校验。
效验信息

接下来需要在自己的DNS服务中进行配置,我以自己的cloud flare域名服务配置为例,配置如下:

3)在 Cloudflare 中添加TXT记录用于校验

  1. 登录你的 Cloudflare 账户,选择我的域名doai8.dpdns.org。
  2. 进入左侧的 “DNS” 菜单。
  3. 点击 “Add record” (添加记录) 按钮。
  4. 根据下面的表格,准确填写每一个字段:
Cloudflare 字段 你需要填写的内容 (从 Netlify 截图复制)
Type (类型) TXT
Name (名称) netlify-challenge
Content (内容) 4f*****062b
TTL 保持默认的 Auto 即可

添加TXT记录

4)在netify中进行验证,验证通过就可以用自己的域名访问了

在netify中进行验证,验证通过就可以用自己的域名访问了,在图中可以看到自己的子域名和netlify给的子域名。两个域名都可以用,自己的子域名的好处就是自己容易记忆。
自定义域名配好

5)用自定义域名进行gemini API接口的测试

在Cherry Studio中将API地址配置程自定义域名的地址
配置自定义域名地址
可以看到和gemini 2.5 pro 对话同样也很丝滑。
测试


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


“fullbug”微信公众号

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

飞牛NAS本地化部署dify打造私有LLMOps平台

发表于 2025-06-14 | 更新于: 2025-08-10 | 分类于 技术 | | 阅读次数:
字数统计: 991 | 阅读时长 ≈ 3

作为一名程序员,在AI蓬勃发展的时代,一定要拥抱AI。Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。

由于 Dify 内置了构建 LLM 应用所需的关键技术栈,包括对数百个模型的支持、直观的 Prompt 编排界面、高质量的 RAG 引擎、稳健的 Agent 框架、灵活的流程编排,并同时提供了一套易用的界面和 API。这为开发者节省了许多重复造轮子的时间,使其可以专注在创新和业务需求上。

NAS作为私有化的个人数据中心,基本保持不停机的状态并且功耗小,比较适合作为私有化的开发平台载体。本文介绍如何在家庭飞牛NAS上本地化部署dify打造属于自己的私有化LLMOps平台,可以随时随地的通过Dify来构建自己的AI应用。

一、准备工作

1、环境介绍

我的NAS设备为零刻ME mini全闪小主机,CPU intel N200,内存12G,装了fnOS作为NAS用。这个配置如果仅仅只是存存相片、文件等还是有点过剩了,所以为了充分发挥迷你主机的效用决定把它打造为私有的LLMOps平台。

NAS的硬件配置

2、打开飞牛OS的SSH登录

登录到飞牛OS,在“系统设置”中找到“SSH”,打开SSH功能

打开SSH

3、通过SSH客户端连上NAS主机

打开SSH后就可以通过SSH的客户端工具连到fnOS

SSH连接主机

二、在飞牛NAS上安装Dify

1、找到Dify的安装源

在github或gitee上找到dify的项目地址
https://github.com/langgenius/dify/
https://gitee.com/dify_ai/dify
在国内访问github比较慢,可以访问gitee上的difyi项目地址。
这里有安装Dify的硬件要求和安装步骤。

gitee的dify项目

2、在飞牛NAS上创建存储目录

在飞牛NAS上创建一个用户clone和安装dify的目录

NAS上创建Dify目录
右键点击dify文件夹,点击“详细信息”。

查看目录详情

在详细信息中找到“复制原始路径”,这里复制的原始路径就是该文件夹在fnOS操作系统的实际路径。

找到实际路径

3、开始安装Dify

安装Dify需要docker环境,fnOS本身就已经安装好了docker环境,所以可以直接clone后进行安装
通过sudo -i 切换到 root 用户,进入到开始复制的原始路径。

切换root用户

通过git clone https://gitee.com/dify_ai/dify 命令clone项目

clone项目

进入到dify下的docker目录,将.env.example 复制成.env文件

1
2
cd dify/docker
cp .env.example .env

.env文件中配置的是dify的一些环境变量,dify默认的web端口是80,为了避免80端口冲突,我们把dify的默认端口改成8080,修改.env的配置文件,将docker输出的Nginx端口改成8080,Nginx的SSL端口改成8443。

1
2
EXPOSE_NGINX_PORT=8080
EXPOSE_NGINX_SSL_PORT=8080

修改端口

然后执行 docker compose up -d 就可以完成dify的安装

安装dify

安装完成后通过NAS的内网IP就可以访问到dify的初始化界面
http://192.168.0.18:8080/install
通过简单的配置,配置用户名、口令就可以正式使用dify了。

内网访问dify

三、设置外网访问

为了随时随地的访问和使用dify我们要对dify进行端口映射,使用nas的ddns来进行外网访问。

1、外网端口映射

在路由器上添加一条映射规则,将内网的8080端口映射到外网的某个端口上。

外网端口映射

2、在飞牛nas上进行ddns配置

如有域名就可以配置阿里云或Cloudflare的ddns服务

DDNS配置

这样就可以通过域名+端口直接访问NAS上的dify应用,随时随地构建和调试自己的AI应用了。

外网访问


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


“fullbug”微信公众号

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

什么是RACI矩阵,应用在什么场景?

发表于 2025-04-08 | 更新于: 2025-08-10 | 分类于 管理 , 项目管理 | | 阅读次数:
字数统计: 1.5k | 阅读时长 ≈ 5

一、什么是RACI

RACI矩阵是一种用于明确项目或任务中角色与责任的管理工具,通过定义不同人员在任务中的参与程度来避免职责不清的问题。以下是其核心要点:

  1. ‌RACI的含义‌
  • ‌R(Responsible)执行者‌:直接完成任务的具体负责人。
  • ‌A(Accountable)批准者‌:对任务结果负最终责任,通常为决策者。
  • ‌C(Consulted)被咨询者‌:提供专业意见的专家或利益相关方。
  • ‌I(Informed)被通知者‌:需知悉进展但不直接参与的人员。
  1. ‌典型应用场景‌
  • ‌跨部门协作项目‌:例如新产品发布,需明确市场、研发、生产等部门的职责。
  • ‌复杂流程优化‌:如企业ERP系统实施,区分流程设计、数据迁移等任务的责任人。
  • ‌危机管理‌:如安全事故处理时明确指挥、执行、沟通等角色。
  • ‌日常运营‌:适用于周期性工作(如财务审计)的职责划分。
  1. ‌使用案例‌
  • ‌软件开发项目‌:
任务 项目经理(A) 开发团队(R) 测试组(R) 客户(C) 法务(I)
需求确认 A R - C I
代码审查 R C - -
  1. 构建要点‌
  • 每个任务确保‌仅1个A角色‌,避免多头领导
  • 避免R角色过多导致执行分散(如单个任务超过3个R)
  • 关键干系人必须纳入C或I,防止遗漏重要意见
  1. 常见误区‌
  • 混淆A和R角色(如误将部门领导设为所有任务的A)
  • 过度咨询(C角色过多导致决策延迟)
  • 忽略变更管理(未随项目进展更新矩阵)

二、如何适用RACI矩阵

结合不同场景的关键步骤与操作要点:

  1. 前期准备‌

    • 分解任务清单‌
      基于项目目标,将工作拆解为具体任务(如软件开发中的需求收集、测试、部署等)‌。
      示例:在IT系统迁移项目中,任务可拆分为“制定迁移方案”“数据备份验证”等‌。
    • 识别参与角色‌
      列出所有相关角色或部门(如项目经理、开发团队、法务部等),避免仅使用个人姓名,需标注岗位或职能‌。
  2. 构建矩阵‌

    • 分配RACI角色‌
      ○ 每个任务需指定 ‌1个A角色‌(唯一责任人)和若干R/C/I角色‌。
      示例:在需求确认阶段,产品经理为A,开发团队为R,法务部为I‌。
      ○ 避免单任务分配过多R角色(建议≤3个),防止执行分散‌。
    • 关键逻辑验证‌
      ○ ‌横向检查‌:每项任务需至少包含R和A角色,确保无遗漏‌。
      ○ ‌纵向检查‌:单个角色名下任务量需合理,避免过度集中(如某成员承担过多R角色)‌。
  3. 应用中的关键技巧‌

    • 与项目工具结合‌
      ○ 将RACI矩阵与甘特图、WBS(工作分解结构)联动,识别关键路径任务并优先分配资源‌。
      示例:在部署阶段,明确运维团队为R角色并与甘特图中的时间节点对齐‌。
    • 动态更新机制‌
      ○ 项目变更时同步调整矩阵(如新增任务或角色变更)‌。
      ○ 定期向I角色推送进展(如周报同步),向C角色发起咨询(如需求评审会)‌。
  4. 常见问题与规避策略‌

问题类型 解决方案
‌角色冲突‌(多个A) 重新界定任务边界,仅保留1个A角色‌。
‌沟通低效‌(C/I过多) 精简咨询范围(如仅核心专家参与C角色),减少非必要通知‌。
‌ 责任模糊‌(无明确R) 通过工作分解细化任务颗粒度,确保每个子任务均有R角色‌。
  1. 扩展应用场景‌
  • ‌RASCI矩阵‌:在RACI基础上增加S(Support)角色,标注辅助支持团队(如IT部门协助数据迁移)‌15。
  • ‌多层级矩阵‌:针对复杂项目分层设计(如战略级、执行级),分别分配责任‌7。

总结:核心操作流程
1.‌分解任务 → 2. 定义角色 → 3. 填充矩阵 → 4. 验证逻辑 → 5. 动态维护‌
示例:某市政工程通过RACI矩阵将环评报告责任唯一分配给环保机构(A角色),施工执行由承包商(R角色)承担,社区代表仅需知悉(I角色)‌。
通过结构化分配与持续优化,RACI矩阵可显著提升跨团队协作效率,减少责任争议‌。

三、应用案例

  1. IT系统升级项目‌
    ‌背景‌:某企业需将本地服务器迁移至云端,涉及IT部、安全部、财务部及外部供应商。
    ‌任务分解与角色分配‌:
任务 IT经理 (A) 运维团队 (R) 安全部 (C) 财务部 (I) 供应商 (R)
制定迁移方案 A R C I C
数据备份与验证 I R C - R
云环境安全测试 - C A I R

‌关键点‌:

  • 安全部需深度参与方案设计和测试(C/A角色),避免安全漏洞;
  • 供应商负责具体执行(R),但需接受IT经理的最终审批(A)。
  1. 日常运维(IT支持团队)‌
    ‌背景‌:某公司IT部门处理日常故障,需明确一线支持、二线专家及管理层职责。
任务 IT主管 (A) 一线支持 (R) 二线专家 (C) 用户部门 (I)
故障初步诊断 - R - I
复杂问题升级处理 I - R C
故障解决率报告 A C - I

‌注意事项‌:

  • 一线支持直接处理简单问题(R),二线专家解决技术难点(R);
  • 用户部门仅需知悉进展(I),避免干扰技术处理。

从以上看出,RACI矩阵适用于‌任何需要明确角色分工的场景‌,尤其适合跨职能、多利益相关方的复杂任务。


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


“fullbug”微信公众号

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

什么是互联网暴露面?什么是攻击面?暴露面与攻击面有什么区别?

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

一、定义与核心概念

1. ‌互联网暴露面‌

  • 定义:指组织在互联网上公开可访问的数字化资产和服务,如服务器、开放端口、API、网站、云服务等。

暴露面指网络系统中对外界开放的可见部分,包括公开的接口、网络端口、服务或应用程序等。例如Web服务、API、数据库端口等,这些资源可直接被外部访问或识别‌。暴露面的大小直接影响潜在攻击机会‌。

  • 核心特点:

    • 可见性:能被外部扫描或探测到(如通过IP、域名、端口)。
    • 入口点:是外部与内部系统交互的桥梁(如登录页面、文件上传接口)。
  • 示例:

    • 公网IP地址、开放的SSH端口(22)、公开的Web应用、未加密的HTTP服务。

2. ‌攻击面

  • 定义:指所有可能被攻击者利用的潜在漏洞和风险点,涵盖技术、人员、流程等多个维度。‌

攻击面指攻击者可能利用的所有潜在入口点和攻击路径,不仅包含暴露面中的可见部分,还涵盖漏洞、错误配置、权限问题、社会工程等动态风险因素。攻击面越大,系统被入侵的概率越高‌。

  • 核心特点:

    • 全面性:不仅包括暴露面,还包含内部漏洞(如配置错误、弱密码、员工安全意识不足)。
    • 动态性:随系统更新、新漏洞披露、业务扩展而变化。
  • 示例:

    • 暴露面中的漏洞(如SQL注入)、内部数据库弱口令、员工易受钓鱼攻击、过时的内部软件版本。

二、区别与关联

关系:从定义上看,攻击面包含暴露面,并且更加广泛。

暴露面与攻击面的关系

区别:

维度‌ ‌暴露面‌ ‌攻击面‌
范围‌ 仅包含对外可见的开放部分‌ 包含所有潜在攻击路径(含暴露面及内部系统、人为因素等)‌
‌动态性‌ 相对静态,与系统配置直接相关‌ 动态变化,受漏洞、人为因素等影响‌
关注点‌ 资源对外暴露的“可见性”‌,可见性和可访问性 攻击者可利用的“漏洞总和”‌,潜在漏洞和攻击路径
防御重点 减少不必要的公开资产 全面风险管理(技术+管理)
管理策略 定期扫描并关闭不必要的服务,使用防火墙限制访问,最小化公开资产。 漏洞管理、员工培训、权限控制、持续监控(如日志审计、入侵检测)。
示例 如:公司官网(example.com)开放了80和443端口,允许用户访问。 若官网存在未修复的XSS漏洞(技术风险),且管理员使用弱密码(人为风险),两者均属于攻击面。

三、防护侧重点

1. ‌暴露面管理‌

  • ‌原则‌:遵循最小权限,仅开放必要端口或服务‌。
  • ‌措施‌:网络隔离、访问控制、定期审查暴露资源‌。

2. ‌攻击面管理‌

  • ‌原则‌:降低漏洞利用可能性,覆盖技术、流程、人为因素‌。
  • ‌措施‌:渗透测试、安全评估、漏洞修复、权限管控‌。

四、总结

‌暴露面是攻击面的子集‌,两者区别在于:暴露面聚焦“对外可见性”,攻击面覆盖“可利用性”;前者是静态防御的基础,后者需动态应对综合风险‌。缩小暴露面可降低被攻击概率,而减少攻击面则能全面降低风险。


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


“fullbug”微信公众号

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

12…21>
XieJava

XieJava

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

主题 — NexT.Muse
0%