修改博文
This commit is contained in:
@@ -103,7 +103,10 @@ export default defineAppConfig({
|
||||
},
|
||||
codeIcon: {
|
||||
terminal: 'i-lucide-terminal',
|
||||
code: 'vscode-icons:file-type-codekit'
|
||||
code: 'vscode-icons:file-type-codekit',
|
||||
kali: 'i-devicon:kalilinux',
|
||||
bash: 'i-devicon:powershell',
|
||||
debian: 'i-devicon:debian'
|
||||
},
|
||||
codeCollapse: {
|
||||
slots: {
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<script setup lang="ts">
|
||||
// 定义组件参数类型
|
||||
interface Props {
|
||||
perPage?: number // 每页显示的文章数,默认 12
|
||||
perPage?: number // 每页显示的文章数,默认 12
|
||||
maxPages?: number // 最大页数,默认 15
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ const props = withDefaults(defineProps<Props>(), {
|
||||
const currentPage = ref(1)
|
||||
|
||||
// 获取所有博客文章
|
||||
const { data: allArticles, pending } = await useAsyncData('blog-all-articles', () => {
|
||||
const { data: allArticles } = await useAsyncData('blog-all-articles', () => {
|
||||
return queryCollection('blog')
|
||||
.select('path', 'title', 'description', 'img', 'date')
|
||||
.where('path', 'NOT LIKE', '%navigation%')
|
||||
@@ -119,7 +119,10 @@ watch(sortedArticles, () => {
|
||||
<!-- 有文章时显示内容 -->
|
||||
<div v-if="sortedArticles && sortedArticles.length > 0">
|
||||
<div class="">
|
||||
<UBlogPosts orientation="vertical" :posts="blogPosts" />
|
||||
<UBlogPosts
|
||||
orientation="vertical"
|
||||
:posts="blogPosts"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- 分页控件 -->
|
||||
@@ -143,4 +146,3 @@ watch(sortedArticles, () => {
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@@ -1,3 +1,3 @@
|
||||
title: 技术栈
|
||||
description: 记录日常开发中遇到的技术问题和解决方案
|
||||
icon: lucide-code
|
||||
icon: devicon:prolog
|
||||
|
293
content/blog/1.技术栈/971.服务器加固实战.md
Normal file
293
content/blog/1.技术栈/971.服务器加固实战.md
Normal file
@@ -0,0 +1,293 @@
|
||||
---
|
||||
title: 防于未然,先固不破 — Debian 12 快速加固实战
|
||||
description: 在数字化浪潮席卷全球的今天,服务器已成为承载企业核心业务与数据的“心脏”。一旦这颗心脏被攻破,轻则业务中断,重则数据泄漏、引发监管问责、品牌声誉坍塌,甚至于法律诉讼。
|
||||
date: 2025-08-15
|
||||
img: https://lijue-me.oss-cn-chengdu.aliyuncs.com/20250815215319708.png
|
||||
navigation:
|
||||
icon: simple-icons:debian
|
||||
---
|
||||
|
||||
### 前言
|
||||
在数字化浪潮席卷全球的今天,服务器已成为承载企业核心业务与数据的“心脏”。一旦这颗心脏被攻破,轻则业务中断,重则数据泄漏、引发监管问责、品牌声誉坍塌,甚至于法律诉讼。也正因如此,“我不知道漏洞藏在那里”已经不是借口,而是失责;真正负责任的运维与安全团队,必须把“ **防于未然,先固不破** ”当作铁律。
|
||||
|
||||
然而,系统配置千头万绪——从 BIOS 到内核参数,从系统服务到用户策略,从网络栈到文件权限——**千里之堤,溃于蚁穴**,任何一个角落的配置失误,都可能成为攻击者趁虚而入的跳板。“人眼”已无法在短时间内遍历所有细节,唯有借助安全团队丰富的经验与标准化的自动安全审计工具,将复杂环境拆解成可度量的检查项,才能在海量主机、混部容器与虚拟化场景中抽丝剥茧,还原安全真相。
|
||||
|
||||
本文将以 **Lynis** 审计工具来还原一次服务器加固实战。
|
||||
|
||||
### 正文
|
||||
#### 什么是Lynis?
|
||||
Lynis 是一款开源、针对基于 UNIX 系统(如 Linux、macOS、BSD 等)的安全审计工具。它能检测系统配置、文件权限、日志、网络等多个方面,提供详细的安全建议,帮助系统管理员加强系统的安全性。Lynis 通常被系统管理员和网络安全工程师用来评估其系统的安全防御能力。
|
||||
- 除了“蓝队”之外,如今的渗透测试人员也将 Lynis 作为他们的工具之一。
|
||||
#### 环境
|
||||
- **OS**:Debian 12 (bookworm) 全新 Server 最小化安装
|
||||
- **内核**:6.1.0-12-amd64(Debian 12 官方 6.1 LTS 最新版)
|
||||
- **架构**:x86_64
|
||||
- **软件源** :启用 Debian Security 及官方主仓库
|
||||
- **用户**:root 初始登录,已创建 sudo 普通用户 `estel`,后续所有操作便于演示均以 su - 模式执行
|
||||
- **时间**:NTP 已启用,与 `pool.ntp.org` 同步,时区 UTC+8
|
||||
- **防火墙**:iptables 未配置(默认空规则)
|
||||
- **已更新**:`apt update && apt full-upgrade -y` 三天前更新
|
||||
- **已安装包**: Docker nfs-server openssh-server
|
||||
|
||||
#### 使用
|
||||
```bash[bash]
|
||||
# ssh 连接进服务器
|
||||
# 在合适的目录进行克隆 Lynis
|
||||
git clone https://github.com/CISOfy/lynis
|
||||
|
||||
#执行安全审查脚本
|
||||
cd lynis && sudo ./lynis audit system
|
||||
```
|
||||
|
||||
#### 扫描结果部分摘录
|
||||
```bash[bash]
|
||||
**[ Lynis 3.1.6 ]**
|
||||
**Lynis security scan details**:
|
||||
**Scan mode**:
|
||||
Normal [▆] Forensics [ ] Integration [ ] Pentest [ ]
|
||||
**Lynis modules**:
|
||||
- Compliance status [**?**]
|
||||
- Security audit [**V**]
|
||||
- Vulnerability scan [**V**]
|
||||
**Details**:
|
||||
Hardening index : **63** [**############** ]
|
||||
Tests performed : **280**
|
||||
Plugins enabled : **2**
|
||||
|
||||
**Software components**:
|
||||
- Firewall [**V**]
|
||||
- Intrusion software [**X**]
|
||||
- Malware scanner [**X**]
|
||||
|
||||
**Files**:
|
||||
- Test and debug information : **/var/log/lynis.log**
|
||||
- Report data : **/var/log/lynis-report.dat**
|
||||
==============================================================
|
||||
**Lynis** 3.1.6
|
||||
Auditing, system hardening, and compliance for UNIX-based systems
|
||||
(Linux, macOS, BSD, and others)
|
||||
2007-2025, CISOfy - https://cisofy.com/lynis/
|
||||
**Enterprise support available (compliance, plugins, interface and tools)**
|
||||
```
|
||||
|
||||
|
||||
#### 结果分析
|
||||
- 根据 Lynis 的体检单
|
||||
- Hardening Index 63/100
|
||||
1. 系统概况
|
||||
- Debian 12,无内核更新,无重启需求,存在 2 个高风险补丁(PKGS-7392)。
|
||||
2. 关键问题
|
||||
- GRUB 无密码 ,可单用户模式提权
|
||||
- SSH 端口为 22,允许 root 登录,多项参数过宽
|
||||
- 大量 systemd 服务暴露评分 9.x(atd、cron、docker、rsyslog 等)
|
||||
- 未挂载 /var /tmp /home 独立分区,可能导致 DoS
|
||||
- 缺乏防火墙规则审查、恶意软件扫描器、文件完整性监控、审计框架
|
||||
|
||||
3. 次要风险
|
||||
- 仅 1 个 DNS 服务器,NFS 空 exports 文件却运行守护进程
|
||||
- USB/火线驱动、编译器、核心参数未加固
|
||||
- 日志未远程归档、登录 banner 未配置
|
||||
|
||||
#### 进行服务器加固
|
||||
```bash[Debian]
|
||||
# 为便于演示默认以下所有操作均在 root 权限下
|
||||
su -
|
||||
```
|
||||
|
||||
```bash[Debian]
|
||||
# 更新系统补丁
|
||||
apt update && apt dist-upgrade -y
|
||||
```
|
||||
|
||||
1. 给 GRUB 加密码
|
||||
```bash[Debian]
|
||||
apt install -y grub2-common
|
||||
grub-mkpasswd-pbkdf2 # 生成 PBKDF2 哈希
|
||||
|
||||
nano /etc/grub.d/40_custom # 追加到配置中
|
||||
|
||||
cat <<EOF
|
||||
set superusers="grubadmin"
|
||||
password_pbkdf2 grubadmin grub.pbkdf2.sha512.10000.xxxxxxxx...
|
||||
EOF
|
||||
|
||||
# 更新
|
||||
update-grub
|
||||
|
||||
#如果更新报错,改为在 40_custom 中追加
|
||||
set superusers="root"
|
||||
password_pbkdf2 grubadmin grub.pbkdf2.sha512.10000.xxxxxxxx...
|
||||
```
|
||||
|
||||
2. SSH 强化
|
||||
```bash[Debian]
|
||||
# 修改 SSH 默认端口号 与登录配置
|
||||
|
||||
cp /etc/ssh/sshd_config{,.bak}
|
||||
cat >> /etc/ssh/sshd_config <<EOF
|
||||
Port 49222
|
||||
PermitRootLogin no
|
||||
MaxAuthTries 3
|
||||
MaxSessions 2
|
||||
ClientAliveInterval 300
|
||||
ClientAliveCountMax 2
|
||||
AllowTcpForwarding no
|
||||
TCPKeepAlive no
|
||||
X11Forwarding no
|
||||
AllowAgentForwarding no
|
||||
LogLevel VERBOSE
|
||||
EOF
|
||||
systemctl restart ssh
|
||||
|
||||
```
|
||||
|
||||
3.强化 sshd 安全
|
||||
```bash[Debian]
|
||||
cp /lib/systemd/system/ssh.service /etc/systemd/system/ssh.service
|
||||
|
||||
# 使用 systemd-analyze security 的建议调整
|
||||
systemctl edit --full ssh.service
|
||||
|
||||
systemctl restart ssh
|
||||
```
|
||||
4. 禁用不必要的 systemd 服务
|
||||
```bash[Debian]
|
||||
# atd 一次性计划任务守护进程,不需要调度就关掉;
|
||||
# exim4 Debian 系列默认的 MTA 邮件服务,不需要本地发件关掉;
|
||||
# containerd ‑ Docker/K8s 的运行时,此服务不用容器关掉。
|
||||
|
||||
systemctl disable --now atd exim4 containerd
|
||||
```
|
||||
|
||||
5. Kernel 级系统参数
|
||||
```bash[Debian]
|
||||
cat >/etc/sysctl.d/99-hardening.conf <<EOF
|
||||
dev.tty.ldisc_autoload=0
|
||||
fs.protected_fifos=2
|
||||
kernel.core_uses_pid=1
|
||||
kernel.kptr_restrict=2
|
||||
kernel.unprivileged_bpf_disabled=1
|
||||
kernel.sysrq=0
|
||||
net.core.bpf_jit_harden=2
|
||||
net.ipv4.conf.all.log_martians=1
|
||||
net.ipv4.conf.all.rp_filter=1
|
||||
net.ipv4.conf.all.send_redirects=0
|
||||
net.ipv4.conf.all.accept_redirects=0
|
||||
net.ipv6.conf.all.accept_redirects=0
|
||||
net.ipv6.conf.default.accept_redirects=0
|
||||
kernel.dmesg_restrict = 1
|
||||
EOF
|
||||
sysctl -p /etc/sysctl.d/99-hardening.conf
|
||||
```
|
||||
|
||||
内核部分参数解释
|
||||
|
||||
| 参数 | 作用 | 备注 |
|
||||
| ------------------------------------ | ---------------------------- | ----------------------- |
|
||||
| `dev.tty.ldisc_autoload=0` | 禁止非特权用户加载终端的 line discipline | 防御终端驱动注入攻击 |
|
||||
| `fs.protected_fifos=2` | 严格保护 FIFO/管道文件权限 | 防止竞态条件漏洞 |
|
||||
| `kernel.core_uses_pid=1` | Core 转储文件名包含 PID | 方便调试但需配合 `ulimit -c` 限制 |
|
||||
| `kernel.kptr_restrict=2` | 完全隐藏内核符号地址 | 防内核信息泄漏 |
|
||||
| `kernel.unprivileged_bpf_disabled=1` | 禁止非特权用户使用 BPF | 防御容器逃逸 |
|
||||
| `kernel.sysrq=0` | 禁用 SysRq 组合键 | 防止物理接触攻击 |
|
||||
| `net.core.bpf_jit_harden=2` | BPF JIT 编译器加固 | 缓解 Spectre 漏洞 |
|
||||
| `net.ipv4.conf.all.log_martians=1` | 记录异常 IP 包 | 需配合日志监控 |
|
||||
| `net.ipv4.conf.all.rp_filter=1` | 启用反向路径过滤 | 防 IP 欺骗 |
|
||||
| `net.ipv4/6.*.accept_redirects=0` | 禁止 ICMP 重定向 | 防网络拓扑劫持 |
|
||||
| `net.ipv4.conf.all.send_redirects=0` | 禁止发送 ICMP 重定向 | 仅路由器需要 |
|
||||
| `kernel.dmesg_restrict = 1` | 防止非特权用户访问内核日志 | |
|
||||
6. 关闭 USB / 火线存储
|
||||
```bash[Debian]
|
||||
cat >/etc/modprobe.d/blacklist-usb-storage.conf <<EOF
|
||||
install usb-storage /bin/false
|
||||
install firewire-ohci /bin/false
|
||||
EOF
|
||||
rmmod usb-storage firewire-ohci || true
|
||||
```
|
||||
|
||||
7. 安装防护软件
|
||||
```bash[Debian]
|
||||
# auditd(系统审计日志)、rkhunter(Rootkit 检测)
|
||||
# chkrootkit(基础 Rootkit 扫描)debsums(校验官方软件包完整性)
|
||||
# apparmor-profiles(强制访问控制策略)aide(文件完整性监控)
|
||||
|
||||
apt install -y auditd rkhunter chkrootkit debsums apparmor-profiles apparmor-profiles-extra aide
|
||||
|
||||
# 初始化文件完整性(AIDE)需要较长时间,占用IO
|
||||
aideinit
|
||||
|
||||
systemctl enable --now auditd
|
||||
|
||||
```
|
||||
|
||||
8. 配置安全自动更新
|
||||
```bash[Debian]
|
||||
apt install -y unattended-upgrades
|
||||
dpkg-reconfigure -plow unattended-upgrades
|
||||
```
|
||||
|
||||
#### 复查扫描
|
||||
```
|
||||
lynis audit system
|
||||
|
||||
# 扫描结果部分摘录
|
||||
|
||||
**Lynis security scan details**:
|
||||
**Scan mode**:
|
||||
Normal [▆] Forensics [ ] Integration [ ] Pentest [ ]
|
||||
**Lynis modules**:
|
||||
- Compliance status [**?**]
|
||||
- Security audit [**V**]
|
||||
- Vulnerability scan [**V**]
|
||||
|
||||
**Details**:
|
||||
Hardening index : **78** [**###############** ]
|
||||
Tests performed : **283**
|
||||
Plugins enabled : **2**
|
||||
|
||||
**Software components**:
|
||||
- Firewall [**V**]
|
||||
- Intrusion software [**X**]
|
||||
- Malware scanner [**V**]
|
||||
|
||||
|
||||
**Files**:
|
||||
- Test and debug information : **/var/log/lynis.log**
|
||||
- Report data : **/var/log/lynis-report.dat**
|
||||
|
||||
==============================================================
|
||||
**Lynis** 3.1.6
|
||||
|
||||
Auditing, system hardening, and compliance for UNIX-based systems
|
||||
(Linux, macOS, BSD, and others)
|
||||
|
||||
2007-2025, CISOfy - https://cisofy.com/lynis/
|
||||
**Enterprise support available (compliance, plugins, interface and tools)**
|
||||
|
||||
|
||||
|
||||
================================================================================
|
||||
```
|
||||
|
||||
#### 加固完成
|
||||
- **加固指数:78(63↓ ➜ ↑78)**
|
||||
- **告警数量:0(Great, no warnings)**
|
||||
- 剩余建议:33 条,以“系统性、纵深优化”为主,无紧急风险**
|
||||
经过第一轮快速修补,本机已从 **63 分 危险边缘** 回到“**可交付**”水平:漏洞包归零。后续把“服务安全上下文 + 纵深防御”作为重点,逐步细化为**零告警、高可信的 Debian 12 基线环境**。目标在下一轮扫描中 **≥85 分,Warnings=0**。遵循“未漏先防、未破先固”原则,持续加固即可。
|
||||
|
||||
| 类别 | 关键动作 | 预估加分 |
|
||||
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
|
||||
| **系统服务** | 对 `docker.service`、`containerd.service`、`ssh.service` 等仍处 UNSAFE/EXPOSED 状态的单位,逐条应用 `systemd-analyze security` 推荐的安全参数(NoNewPrivileges、ProtectSystem 等) | ≈ +3–4 分 |
|
||||
| **审计规则** | 为 auditd 导入 CIS 审计规则 → ACCT-9628 | ≈ +2 分 |
|
||||
| **密码策略** | 设定最小/最大口令寿命、启用 pam_cracklib,统一 umask 027 → AUTH-9262/9328 | ≈ +2 分 |
|
||||
| **内核参数** | 修正 fs.protected_fifos、kernel.yama.ptrace_scope 等 4 项 sysctl 差异 → KRNL-6000 | ≈ +1 分 |
|
||||
| **纵深防御** | 禁止 USB-Storage/FireWire、配置远程日志、加固编译器 & cron 权限 | ≈ +1 分 |
|
||||
|
||||
## 总结
|
||||
通过本次基于 Lynis 的服务器安全加固实战,我们成功将一台"裸奔"的 Debian 12 服务器从 63 分的**危险边缘状态**提升至 78 分的**可交付水平**——这不仅是数字上的跃升,更是从"千疮百孔"逐步到"基线合规"的质变。从 GRUB 无密码、SSH 配置过宽,到内核参数缺失、关键服务暴露——每一项都是潜在的攻击入口,而工具化的检测让我们得以"**抽丝剥茧,还原安全真相**"。
|
||||
|
||||
更重要的是,78 分绝非终点。正如**防于未然,先固不破**的铁律所示,安全加固是一个持续迭代的过程:systemd 服务的深度加固、审计规则的精细配置、密码策略的严格管控——每一步都在为企业的数字资产构筑更坚固的防线。
|
||||
|
||||
在数字化浪潮愈发汹涌的今天,服务器安全已不容半点侥幸。那些仍抱着"我不知道漏洞藏在哪里"的心态,直到漏洞爆发才仓促补救的团队,终将在下一次攻击中付出惨重代价。真正负责任的做法,是把安全加固的重心从 **"事后补救"** 前移到 **"事前预防"**,让每一台服务器都成为攻击者难以逾越的堡垒。
|
||||
|
||||
**千里之堤,毁于蚁穴;百密一疏,功亏一篑。唯有持之以恒的安全意识与标准化的加固流程,才能在这场没有硝烟的网络战争中立于不败之地。**
|
@@ -7,97 +7,8 @@ navigation:
|
||||
icon: simple-icons:openstreetmap
|
||||
---
|
||||
|
||||
```bash[test.shell]
|
||||
```bash[Kali]
|
||||
nmap -p- --min-rate=1000 -T4 -v -n -Pn 192.168.1.1
|
||||
```
|
||||
|
||||
|
||||
### NSE
|
||||
Nmap Scripting Engine(NSE)是Nmap的核心扩展功能,通过Lua脚本实现自动化扫描、漏洞检测、信息收集等高级操作。
|
||||
|
||||
#### NSE脚本按功能分为12大类,每类对应不同扫描需求
|
||||
|
||||
| 类别 | 核心目的 | 样例脚本 | 典型使用场合 |
|
||||
|------------|---------------------------------------|-------------------------------|----------------------------------------------------------|
|
||||
| vuln | CVE/漏洞快速验证 | http-vuln-cve2017-5638 | 目标服务版本与已知漏洞匹配 |
|
||||
| safe | 只读式安全审计(无破坏性) | ssh2-enum-algos | 建立会话后立即枚举支持的算法 |
|
||||
| default | 默认已开启的基础信息采集 | http-title | 首次扫描时的“看一眼” |
|
||||
| discovery | 发现服务/子网/资产信息 | smb-os-discovery | 内网资产清点、OS 指纹识别 |
|
||||
| auth | 认证、密钥与票据处理 | ssh-hostkey | 密钥指纹比对、横向渗透准备 |
|
||||
| brute | 弱口令爆破 | http-form-brute | 对表单类登录口的暴力尝试 |
|
||||
| exploit | 利用已确认漏洞取得立足点(需授权) | http-vuln-cve2021-41773 | 实战攻击复现、漏洞验证 |
|
||||
| intrusive | 高交互操作(易被 IDS 告警) | http-slowloris | 拒绝服务场景模拟/压力测试(慎用!) |
|
||||
| malware | 嗅探后门或恶意软件痕迹 | http-malware-host | 威胁狩猎与入侵后取证 |
|
||||
| version | 精细化版本指纹 | http-apache-negotiation | 为后续补丁或 PoC 匹配做准备 |
|
||||
| broadcast | 广播域/多播发现 | nbstat | 内网渗透早期:快速识别 NetBIOS 设备 |
|
||||
| external | 外链第三方数据源(DNSBL 等) | dns-blacklist | 资产信誉检查、垃圾邮件源或钓鱼域名扫描 |
|
||||
|
||||
### 常用 NSE 脚本一览
|
||||
|
||||
| 脚本名称 | 主要用途 | Nmap 一键示例 |
|
||||
|---|---|---|
|
||||
| **http-title** | 抓取 HTTP 网站标题 | `nmap --script http-title <target>` |
|
||||
| **https-redirect** | 识别 HTTP→HTTPS 跳转链 | `nmap --script https-redirect -p 80 <target>` |
|
||||
| **http-robtots** | 收集目标 robots/disallow 条目 | `nmap --script http-robots.txt -p 80 <target>` |
|
||||
| **http-headers** | 枚举响应标头与安全策略 | `nmap --script http-headers -p 80 <target>` |
|
||||
| **http-methods** | 检测允许/禁止的 HTTP 方法 | `nmap --script http-methods -p 80 <target>` |
|
||||
| **http-cors** | 测试 CORS、CSRF 漏洞 | `nmap --script http-cors <target>` |
|
||||
| **http-sql-injection** | 基本 SQL 注入探针 | `nmap --script http-sql-injection -p 80 <target>` |
|
||||
| **http-xssed** | 与 xssed.com 集成交叉检测 | `nmap --script http-xssed <target>` |
|
||||
| **smb-os-discovery** | 枚举 SMB 服务器操作系统/域信息 | `nmap --script smb-os-discovery -p 445 <target>` |
|
||||
| **smb-enum-shares** | 列出共享目录(需 guest) | `nmap --script smb-enum-shares -p 445 <target>` |
|
||||
| **smb-enum-users** | 提取本地/域用户列表 | `nmap --script smb-enum-users -p 445 <target>` |
|
||||
| **smb-vuln-ms17-010** | 探测 EternalBlue(MS17-010) | `nmap --script smb-vuln-ms17-010 -p 445 <target>` |
|
||||
| **ssh-hostkey** | 抓取并对比公钥指纹 | `nmap --script ssh-hostkey -p 22 <target>` |
|
||||
| **ssh-brute** | SSH 账号密码暴力破解(需授权) | `nmap --script ssh-brute --script-args userdb=users.txt,passdb=pass.txt -p 22 <target>` |
|
||||
| **ssh2-enum-algos** | 列出支持的算法与 KEX | `nmap --script ssh2-enum-algos -p 22 <target>` |
|
||||
| **http-vuln-cve2023-XXXX** | 按指定 CVE 编号进行漏洞检查(替换 XXXX) | `nmap --script http-vuln-cve2023-XXXX <target>` |
|
||||
| **ftp-anon** | 检测是否允许匿名登录 | `nmap --script ftp-anon -p 21 <target>` |
|
||||
| **ftp-bounce** | 检查是否允许 FTP Bounce 扫描 | `nmap --script ftp-bounce -p 21 <target>` |
|
||||
| **dns-zone-transfer** | 测试 AXFR(区域传输)泄露 | `nmap --script dns-zone-transfer -p 53 <target>` |
|
||||
| **dns-brute** | 字典爆破子域名 | `nmap --script dns-brute --script-args dns-brute.domain=<domain>` |
|
||||
| **mysql-brute** | 暴力破解 MySQL 实例 | `nmap --script mysql-brute -p 3306 <target>` |
|
||||
| **mysql-audit** | 核对 MySQL CIS/基线配置 | `nmap --script mysql-audit --script-args mysql-audit.username='root',mysql-audit.password='pass123' -p 3306 <target>` |
|
||||
| **ssl-cert** | 解析 TLS 证书详情 | `nmap --script ssl-cert -p 443 <target>` |
|
||||
| **ssl-poodle** | 探测 SSLv3 & POODLE 漏洞 | `nmap --script ssl-poodle -p 443 <target>` |
|
||||
| **vulners** | 基于 Vulners DB 的版本漏洞关联 | `nmap --script vulners -sV <target>` |
|
||||
| **whois-ip** | 查询归属 IP 段的 Whois 信息 | `nmap --script whois-ip <target>` |
|
||||
| **smtp-enum-users** | VRFY/EXPN 暴力枚举邮箱账户 | `nmap --script smtp-enum-users -p 25 <target>` |
|
||||
|
||||
### 自定义脚本
|
||||
|
||||
```lua[演示.lua]
|
||||
-- myecho.nse
|
||||
local stdnse = require "stdnse"
|
||||
|
||||
description = [[极简回显脚本:打印自定义消息]]
|
||||
author = "YourName"
|
||||
license = "GPLv2"
|
||||
categories = {"safe"}
|
||||
|
||||
-- 任何 TCP 端口都触发
|
||||
portrule = function(host,port) return port.protocol == "tcp" end
|
||||
|
||||
action = function(host,port)
|
||||
local msg = stdnse.get_script_args("myecho.msg") or "Hi from custom-NSE!"
|
||||
return ("%s -> %s:%d (%s)"):format(msg, host.ip, port.number, port.service or "unknown")
|
||||
end
|
||||
```
|
||||
|
||||
```bash
|
||||
# 复制.nse到脚本文件夹
|
||||
sudo cp myecho.nse /usr/share/nmap/scripts/
|
||||
nmap --script-updatedb # 更新索引
|
||||
```
|
||||
|
||||
```bash
|
||||
# 执行脚本
|
||||
nmap --script myecho -p22 127.0.0.1
|
||||
nmap --script myecho --script-args 'myecho.msg=HelloNSE' -p80 scanme.nmap.org
|
||||
nmap --script '(safe or discovery) and myecho' -p80,443 10.0.2.0/24
|
||||
```
|
||||
|
||||
### 总结
|
||||
NSE 脚本可大幅提升 Nmap 在渗透测试和信息收集中的效率。建议定期关注 Nmap 官方脚本库更新([NSE Docs](https://nmap.org/nsedoc/ "NSE Docs"))以覆盖最新漏洞。
|
||||
|
||||
|
||||
#### 未完成
|
@@ -9,7 +9,7 @@ navigation:
|
||||
|
||||
|
||||
### NSE
|
||||
Nmap Scripting Engine(NSE)是Nmap的核心扩展功能,通过Lua脚本实现自动化扫描、漏洞检测、信息收集等高级操作。
|
||||
Nmap Scripting Engine(NSE)是Nmap的核心扩展功能,通过Lua脚本实现自动化扫描、漏洞检测、信息收集等高级操作。
|
||||
|
||||
#### NSE脚本按功能分为12大类,每类对应不同扫描需求
|
||||
|
||||
@@ -94,6 +94,6 @@ nmap --script '(safe or discovery) and myecho' -p80,443 10.0.2.0/24
|
||||
```
|
||||
|
||||
### 总结
|
||||
NSE 脚本可大幅提升 Nmap 在渗透测试和信息收集中的效率。建议定期关注 Nmap 官方脚本库更新([NSE Docs](https://nmap.org/nsedoc/ "NSE Docs"))以覆盖最新漏洞。
|
||||
NSE 脚本可大幅提升 Nmap 在渗透测试和信息收集中的效率。建议定期关注 Nmap 官方脚本库更新([NSE Docs](https://nmap.org/nsedoc/ "NSE Docs"))以覆盖最新漏洞。
|
||||
|
||||
|
||||
|
@@ -7,15 +7,15 @@ navigation:
|
||||
icon: simple-icons:vuedotjs
|
||||
---
|
||||
:::code-group
|
||||
:::code-preview{icon="i-lucide-eye" label="Preview"}
|
||||
::callout
|
||||
---
|
||||
icon: simple-icons-visualstudiocode
|
||||
to: https://marketplace.visualstudio.com/items?itemName=Nuxt.mdc
|
||||
---
|
||||
安装 **MDC VS Code 扩展**,以获得对 MDC 语法的高亮显示支持。
|
||||
::
|
||||
:::
|
||||
:::code-preview{icon="i-lucide-eye" label="Preview"}
|
||||
::callout
|
||||
---
|
||||
icon: simple-icons-visualstudiocode
|
||||
to: https://marketplace.visualstudio.com/items?itemName=Nuxt.mdc
|
||||
---
|
||||
安装 **MDC VS Code 扩展**,以获得对 MDC 语法的高亮显示支持。
|
||||
::
|
||||
:::
|
||||
```mdp[Markdown语法.md]
|
||||
::callout
|
||||
---
|
||||
@@ -41,9 +41,9 @@ navigation:
|
||||
|
||||
|
||||
::details
|
||||
::summary
|
||||
### 点击我查看内容
|
||||
::
|
||||
::summary
|
||||
### 点击我查看内容
|
||||
::
|
||||
这里是折叠区域的内容
|
||||
可以包含任何Markdown元素:
|
||||
- 段落
|
||||
|
@@ -17,16 +17,16 @@ navigation:
|
||||
用 `#`号来创建标题。标题从 `#` 开始,`#` 的数量表示标题的级别。
|
||||
|
||||
:::code-group
|
||||
::::code-preview{icon="i-lucide-eye" label="预览效果"}
|
||||
:::::example-title
|
||||
# 一级标题
|
||||
## 二级标题
|
||||
### 三级标题
|
||||
#### 四级标题
|
||||
##### 五级标题
|
||||
###### 六级标题
|
||||
:::::
|
||||
::::
|
||||
::::code-preview{icon="i-lucide-eye" label="预览效果"}
|
||||
:::::example-title
|
||||
# 一级标题
|
||||
## 二级标题
|
||||
### 三级标题
|
||||
#### 四级标题
|
||||
##### 五级标题
|
||||
###### 六级标题
|
||||
:::::
|
||||
::::
|
||||
```mdc [标题文本.md]
|
||||
# 一级标题
|
||||
## 二级标题
|
||||
@@ -43,7 +43,7 @@ navigation:
|
||||
### 2. 流程图与公式渲染:
|
||||
|
||||
:::code-group
|
||||
:::code-preview{icon="i-lucide-eye" label="预览效果"}
|
||||
:::code-preview{icon="i-lucide-eye" label="预览效果"}
|
||||
```mermaid
|
||||
graph TD
|
||||
A[Local Coolify 实例] --> B[生产服务器]
|
||||
@@ -51,22 +51,32 @@ navigation:
|
||||
B --> B1[生产环境]
|
||||
D --> B
|
||||
```
|
||||
:::
|
||||
:::
|
||||
|
||||
```mermaid[流程图语句.md]
|
||||
```mermaid[流程图语句.md]
|
||||
graph TD
|
||||
A[Local Coolify 实例] --> B[生产服务器]
|
||||
A --> D[编译服务器]
|
||||
B --> B1[生产环境]
|
||||
D --> B
|
||||
```
|
||||
```mermaid[流程图语句.md]
|
||||
graph TD
|
||||
A[Local Coolify 实例] --> B[生产服务器]
|
||||
A --> D[编译服务器]
|
||||
B --> B1[生产环境]
|
||||
D --> B
|
||||
```
|
||||
```
|
||||
:::
|
||||
|
||||
:::code-group
|
||||
::code-preview{icon="i-lucide-eye" label="预览效果"}
|
||||
```mermaid
|
||||
::code-preview{icon="i-lucide-eye" label="预览效果"}
|
||||
```mermaid
|
||||
pie
|
||||
title 为什么总是宅在家里?
|
||||
"喜欢宅" : 45
|
||||
"天气太热" : 70
|
||||
"穷" : 500
|
||||
"没人约" : 95
|
||||
```
|
||||
::
|
||||
```mermaid[饼图语句.md]
|
||||
```mermaid[饼图语句.md]
|
||||
pie
|
||||
title 为什么总是宅在家里?
|
||||
"喜欢宅" : 45
|
||||
@@ -74,37 +84,27 @@ title 为什么总是宅在家里?
|
||||
"穷" : 500
|
||||
"没人约" : 95
|
||||
```
|
||||
::
|
||||
```mermaid[饼图语句.md]
|
||||
```mermaid[饼图语句.md]
|
||||
pie
|
||||
title 为什么总是宅在家里?
|
||||
"喜欢宅" : 45
|
||||
"天气太热" : 70
|
||||
"穷" : 500
|
||||
"没人约" : 95
|
||||
```
|
||||
```
|
||||
:::
|
||||
|
||||
:::code-group
|
||||
::code-preview{icon="i-lucide-eye" label="预览效果"}
|
||||
- **单行公式**:用 `$` 包裹公式,如 $E = mc^2$
|
||||
- **块级公式**:用 `$$` 包裹公式,如:
|
||||
::code-preview{icon="i-lucide-eye" label="预览效果"}
|
||||
- **单行公式**:用 `$` 包裹公式,如 $E = mc^2$
|
||||
- **块级公式**:用 `$$` 包裹公式,如:
|
||||
|
||||
$$
|
||||
\begin{aligned}
|
||||
d_{i, j} &\leftarrow d_{i, j} + 1 \\
|
||||
d_{i, y + 1} &\leftarrow d_{i, y + 1} - 1 \\
|
||||
d_{x + 1, j} &\leftarrow d_{x + 1, j} - 1 \\
|
||||
d_{x + 1, y + 1} &\leftarrow d_{x + 1, y + 1} + 1
|
||||
\end{aligned}
|
||||
$$
|
||||
- 列表内块公式
|
||||
$$
|
||||
\chi^2 = \sum \frac{(|O - E| - 0.5)^2}{E}
|
||||
$$
|
||||
::
|
||||
$$
|
||||
\begin{aligned}
|
||||
d_{i, j} &\leftarrow d_{i, j} + 1 \\
|
||||
d_{i, y + 1} &\leftarrow d_{i, y + 1} - 1 \\
|
||||
d_{x + 1, j} &\leftarrow d_{x + 1, j} - 1 \\
|
||||
d_{x + 1, y + 1} &\leftarrow d_{x + 1, y + 1} + 1
|
||||
\end{aligned}
|
||||
$$
|
||||
- 列表内块公式
|
||||
$$
|
||||
\chi^2 = \sum \frac{(|O - E| - 0.5)^2}{E}
|
||||
$$
|
||||
::
|
||||
```mermaid[公式语句.md]
|
||||
- **单行公式**:用 `$` 包裹公式,如 $E = mc^2$
|
||||
- **块级公式**:用 `$$` 包裹公式,如:
|
||||
@@ -320,9 +320,9 @@ bun run preview
|
||||
[访问 Estel Docs](https://lijue.net)
|
||||
|
||||
:::code-group
|
||||
::code-preview{icon="i-lucide-eye" label="预览效果"}
|
||||

|
||||
::
|
||||
::code-preview{icon="i-lucide-eye" label="预览效果"}
|
||||

|
||||
::
|
||||
```md[图片语句.md]
|
||||

|
||||
```
|
||||
@@ -347,20 +347,20 @@ bun run preview
|
||||
|
||||
---
|
||||
|
||||
为你的内容添加视觉分隔。
|
||||
为你的内容添加视觉分隔。
|
||||
|
||||
### 9. 表格:清晰展示数据
|
||||
|
||||
Markdown 支持简单的表格,用 `|` 和 `-` 分隔单元格和表头。
|
||||
Markdown 支持简单的表格,用 `|` 和 `-` 分隔单元格和表头。
|
||||
|
||||
:::code-group
|
||||
::code-preview{icon="i-lucide-eye" label="预览效果"}
|
||||
| 项目名称 | 演示网址 | 仓库地址 |
|
||||
| ------------------------------------------- | ---------------------- | ------------ |
|
||||
| Estel Docs | [lijue.net](https://lijue.net) | [Github](https://github.com/estel-li/estel-docs) |
|
||||
| Estel Docs | [lijue.net](https://lijue.net) | [GitEE](https://gitee.com/estel-li/estel-docs) |
|
||||
| Estel Docs | [lijue.net](https://lijue.net) | [Gitee(国内)](https://gitee.com/estel-li/estel-docs) |
|
||||
::
|
||||
::code-preview{icon="i-lucide-eye" label="预览效果"}
|
||||
| 项目名称 | 演示网址 | 仓库地址 |
|
||||
| ------------------------------------------- | ---------------------- | ------------ |
|
||||
| Estel Docs | [lijue.net](https://lijue.net) | [Github](https://github.com/estel-li/estel-docs) |
|
||||
| Estel Docs | [lijue.net](https://lijue.net) | [GitEE](https://gitee.com/estel-li/estel-docs) |
|
||||
| Estel Docs | [lijue.net](https://lijue.net) | [Gitee(国内)](https://gitee.com/estel-li/estel-docs) |
|
||||
::
|
||||
```md[表格语句.md]
|
||||
| 项目名称 | 演示网址 | 仓库地址 |
|
||||
| ------------------------------------------- | ---------------------- | ------------ |
|
||||
@@ -371,9 +371,9 @@ Markdown 支持简单的表格,用 `|` 和 `-` 分隔单元格和表头。
|
||||
:::
|
||||
|
||||
|
||||
这样的表格让数据展示更为清爽!
|
||||
这样的表格让数据展示更为清爽!
|
||||
|
||||
|
||||
## 结语
|
||||
|
||||
- 还有更多的组件等待你发现.
|
||||
- 还有更多的组件等待你发现.
|
||||
|
@@ -9,7 +9,7 @@ navigation:
|
||||
|
||||
|
||||
### 需求
|
||||
##### 写了一个文档插件. 缘由呢是之前在 WordPress 上用过一个插件.对接微信的JS SDK,可以实现将连接带标题,图,简介封装成一个 卡片形式.分享给朋友或者朋友圈.比如:
|
||||
##### 写了一个文档插件. 缘由呢是之前在 WordPress 上用过一个插件.对接微信的JS SDK,可以实现将链接带标题,图,简介封装成一个 卡片形式.分享给朋友或者朋友圈.比如:
|
||||

|
||||
|
||||
##### 如果没有对接微信的SDK,分享链接是这样的:
|
||||
|
@@ -4,7 +4,7 @@ description: 智能合同卫士,使用AI技术,对合同进行审查,并给出
|
||||
date: 2025-08-08
|
||||
img: https://lijue-me.oss-cn-chengdu.aliyuncs.com/20250808141452898.png
|
||||
navigation:
|
||||
icon: simple-icons:openai
|
||||
icon: simple-icons:openai
|
||||
---
|
||||
### 先贴效果
|
||||

|
||||
@@ -17,8 +17,8 @@ navigation:
|
||||
由 Deepseek V3 和 Kimi K2 协作完成此应用,2个好用不贵的模型
|
||||
DS 根据文件名,以及 审查主体 工作领域 与 合同要点,细化一份简要的审查要点
|
||||
主要工作由 Kimi K2 来完成:
|
||||
根据 Deepseek 细化的要点和 提取出来的文档内容,进行审查.
|
||||
输出审查后的结果
|
||||
根据 Deepseek 细化的要点和 提取出来的文档内容,进行审查.
|
||||
输出审查后的结果
|
||||
|
||||
### 改进
|
||||
按照初步的设想,后续还有一个模型,比如 Gemini2.5 ,或者 R1 ,Qwen3 之类的**推理模型**,进一步的审查 **Kimi K2 的审查结果**.
|
||||
|
@@ -31,43 +31,43 @@ sudo gvm-check-setup
|
||||
└─**$** sudo gvm-check-setup
|
||||
[sudo] estel 的密码:
|
||||
gvm-check-setup 25.04.0
|
||||
This script is provided and maintained by Debian and Kali.
|
||||
Test completeness and readiness of GVM-25.04.0
|
||||
Step 1: Checking OpenVAS (Scanner)...
|
||||
OK: OpenVAS Scanner is present in version 23.20.1.
|
||||
OK: Notus Scanner is present in version 22.6.5.
|
||||
OK: Server CA Certificate is present as /var/lib/gvm/CA/servercert.pem.
|
||||
This script is provided and maintained by Debian and Kali.
|
||||
Test completeness and readiness of GVM-25.04.0
|
||||
Step 1: Checking OpenVAS (Scanner)...
|
||||
OK: OpenVAS Scanner is present in version 23.20.1.
|
||||
OK: Notus Scanner is present in version 22.6.5.
|
||||
OK: Server CA Certificate is present as /var/lib/gvm/CA/servercert.pem.
|
||||
Checking permissions of /var/lib/openvas/gnupg/*
|
||||
OK: _gvm owns all files in /var/lib/openvas/gnupg
|
||||
OK: _gvm owns all files in /var/lib/openvas/gnupg
|
||||
|
||||
OK: redis-server is present.
|
||||
OK: scanner (db_address setting) is configured properly using the redis-server socket: /var/run/redis-openvas/redis-server.sock
|
||||
OK: the mqtt_server_uri is defined in /etc/openvas/openvas.conf
|
||||
OK: _gvm owns all files in /var/lib/openvas/plugins
|
||||
OK: NVT collection in /var/lib/openvas/plugins contains 94316 NVTs.
|
||||
OK: The notus directory /var/lib/notus/products contains 502 NVTs.
|
||||
OK: redis-server is present.
|
||||
OK: scanner (db_address setting) is configured properly using the redis-server socket: /var/run/redis-openvas/redis-server.sock
|
||||
OK: the mqtt_server_uri is defined in /etc/openvas/openvas.conf
|
||||
OK: _gvm owns all files in /var/lib/openvas/plugins
|
||||
OK: NVT collection in /var/lib/openvas/plugins contains 94316 NVTs.
|
||||
OK: The notus directory /var/lib/notus/products contains 502 NVTs.
|
||||
Checking that the obsolete redis database has been removed
|
||||
Could not connect to Redis at /var/run/redis-openvas/redis-server.sock: No such file or directory
|
||||
OK: No old Redis DB
|
||||
Starting ospd-openvas service
|
||||
Waiting for ospd-openvas service
|
||||
OK: ospd-openvas service is active.
|
||||
OK: ospd-OpenVAS is present in version 22.9.0.
|
||||
Step 2: Checking GVMD Manager ...
|
||||
OK: GVM Manager (gvmd) is present in version 26.0.0.
|
||||
Step 3: Checking Certificates ...
|
||||
OK: GVM client certificate is valid and present as /var/lib/gvm/CA/clientcert.pem.
|
||||
OK: Your GVM certificate infrastructure passed validation.
|
||||
Step 4: Checking data ...
|
||||
ERROR: SCAP DATA are missing.
|
||||
FIX: Run the SCAP synchronization script greenbone-feed-sync.
|
||||
sudo greenbone-feed-sync --type scap.
|
||||
ERROR: Your GVM-25.04.0 installation is not yet complete!
|
||||
OK: No old Redis DB
|
||||
Starting ospd-openvas service
|
||||
Waiting for ospd-openvas service
|
||||
OK: ospd-openvas service is active.
|
||||
OK: ospd-OpenVAS is present in version 22.9.0.
|
||||
Step 2: Checking GVMD Manager ...
|
||||
OK: GVM Manager (gvmd) is present in version 26.0.0.
|
||||
Step 3: Checking Certificates ...
|
||||
OK: GVM client certificate is valid and present as /var/lib/gvm/CA/clientcert.pem.
|
||||
OK: Your GVM certificate infrastructure passed validation.
|
||||
Step 4: Checking data ...
|
||||
ERROR: SCAP DATA are missing.
|
||||
FIX: Run the SCAP synchronization script greenbone-feed-sync.
|
||||
sudo greenbone-feed-sync --type scap.
|
||||
ERROR: Your GVM-25.04.0 installation is not yet complete!
|
||||
Please follow the instructions marked with FIX above and run this
|
||||
script again.
|
||||
|
||||
IMPORTANT NOTE: this script is provided and maintained by Debian and Kali.
|
||||
If you find any issue in this script, please report it directly to Debian or Kali
|
||||
IMPORTANT NOTE: this script is provided and maintained by Debian and Kali.
|
||||
If you find any issue in this script, please report it directly to Debian or Kali
|
||||
```
|
||||
|
||||
标准漏洞/数据库这些数据在国外
|
||||
@@ -120,4 +120,4 @@ sudo greenbone-feed-sync
|
||||
```
|
||||
|
||||
### END
|
||||
至此安装完毕.
|
||||
至此安装完毕.
|
||||
|
@@ -4,7 +4,7 @@ description: GPT-5 上线了,Cursor 提示我可以免费试用,当然要 BP
|
||||
date: 2025-08-08
|
||||
img: https://lijue-me.oss-cn-chengdu.aliyuncs.com/20250808132005343.png
|
||||
navigation:
|
||||
icon: simple-icons:powershell
|
||||
icon: simple-icons:powershell
|
||||
---
|
||||
|
||||
### GPT-5 上线了
|
||||
@@ -14,8 +14,8 @@ navigation:
|
||||
|
||||
### 🔥 问题场景
|
||||
|
||||
此时正遇到的一个问题是:**NUXT4 项目在本地 dev 一切正常,但在服务器上对中文路径报错 500**。
|
||||
这个问题很简单,但又很复杂。
|
||||
此时正遇到的一个问题是:**NUXT4 项目在本地 dev 一切正常,但在服务器上对中文路径报错 500**。
|
||||
这个问题很简单,但又很复杂。
|
||||
|
||||
---
|
||||
|
||||
@@ -35,8 +35,8 @@ navigation:
|
||||
|
||||
### 🤔 排查猜想
|
||||
|
||||
是打包编译过程出问题了,还是服务器上 nginx 反代的问题?或者是 NUXT 自身 SSR 的问题?
|
||||
其实内心差不多有了谱,刚好提示 GPT-5 更新了,就测试一下看看 GPT-5 能否解决这个问题。
|
||||
是打包编译过程出问题了,还是服务器上 nginx 反代的问题?或者是 NUXT 自身 SSR 的问题?
|
||||
其实内心差不多有了谱,刚好提示 GPT-5 更新了,就测试一下看看 GPT-5 能否解决这个问题。
|
||||
|
||||
---
|
||||
|
||||
@@ -50,11 +50,11 @@ navigation:
|
||||
|
||||
#### 💡 Kimi-K2 的表现
|
||||
|
||||
1. 先是读取了项目文件,得出错误结论:
|
||||
> “生产环境静态文件/最终产物里没有对应的 `.md`,导致 `queryContent` 查询到 `null`”
|
||||
2. 按照它的建议把文档拷贝到编译产出文件夹,问题依旧。
|
||||
3. 坚持认为是 Nginx 的问题,我告诉它和 Nginx 反代没关系,这货死倔
|
||||
(实际上本地直接启动 node 服务也会报错,根本不是服务器问题)。
|
||||
1. 先是读取了项目文件,得出错误结论:
|
||||
> “生产环境静态文件/最终产物里没有对应的 `.md`,导致 `queryContent` 查询到 `null`”
|
||||
2. 按照它的建议把文档拷贝到编译产出文件夹,问题依旧。
|
||||
3. 坚持认为是 Nginx 的问题,我告诉它和 Nginx 反代没关系,这货死倔
|
||||
(实际上本地直接启动 node 服务也会报错,根本不是服务器问题)。
|
||||
|
||||
---
|
||||
|
||||
@@ -75,10 +75,10 @@ navigation:
|
||||
|
||||
### 📌 总结
|
||||
|
||||
虽然是个小问题,但我并没有给 AI 说太多细节,全让他们自己找、自己判断、自己修改并测试——
|
||||
- **GPT-5 确实牛**,它可输出 token 很多,这次价格也算可以。
|
||||
- **Kimi-K2 处理小问题、不太复杂的问题**确实挺好用,价格也不算便宜。
|
||||
> 复杂问题,以前要么 **Claude 4**,要不 **Gemini 2.5 pro**,现在又多了一个选择了。
|
||||
虽然是个小问题,但我并没有给 AI 说太多细节,全让他们自己找、自己判断、自己修改并测试——
|
||||
- **GPT-5 确实牛**,它可输出 token 很多,这次价格也算可以。
|
||||
- **Kimi-K2 处理小问题、不太复杂的问题**确实挺好用,价格也不算便宜。
|
||||
> 复杂问题,以前要么 **Claude 4**,要不 **Gemini 2.5 pro**,现在又多了一个选择了。
|
||||
|
||||
---
|
||||
|
||||
|
@@ -425,11 +425,11 @@ echo "扫描完成,结果保存在: $OUTPUT_DIR"
|
||||
|
||||
### 系统权限需求
|
||||
|
||||
- **普通权限**: nmap基础扫描、curl、nc
|
||||
- **普通权限**: nmap基础扫描、curl、nc
|
||||
|
||||
- **root权限**: 完整端口扫描 (-p-), OS指纹识别 (-O)
|
||||
- **root权限**: 完整端口扫描 (-p-), OS指纹识别 (-O)
|
||||
|
||||
- **网络权限**: 确保防火墙允许扫描流量
|
||||
- **网络权限**: 确保防火墙允许扫描流量
|
||||
|
||||
|
||||
|
||||
@@ -535,23 +535,23 @@ wait
|
||||
|
||||
|
||||
|
||||
| 工具 | 核心命令 | 用途 |
|
||||
| 工具 | 核心命令 | 用途 |
|
||||
|
||||
|------|----------|------|
|
||||
|------|----------|------|
|
||||
|
||||
| nmap | `nmap -sS -sV 192.168.1.2` | 基础端口与服务发现 |
|
||||
| nmap | `nmap -sS -sV 192.168.1.2` | 基础端口与服务发现 |
|
||||
|
||||
| dirb | `dirb http://192.168.1.2` | Web目录枚举 |
|
||||
| dirb | `dirb http://192.168.1.2` | Web目录枚举 |
|
||||
|
||||
| nikto | `nikto -h 192.168.1.2` | Web漏洞扫描 |
|
||||
| nikto | `nikto -h 192.168.1.2` | Web漏洞扫描 |
|
||||
|
||||
| gobuster | `gobuster dir -u http://192.168.1.2 -w [字典]` | 快速目录发现 |
|
||||
| gobuster | `gobuster dir -u http://192.168.1.2 -w [字典]` | 快速目录发现 |
|
||||
|
||||
| smbclient | `smbclient -L //192.168.1.2 -N` | SMB共享发现 |
|
||||
| smbclient | `smbclient -L //192.168.1.2 -N` | SMB共享发现 |
|
||||
|
||||
| sslyze | `sslyze 192.168.1.2:443` | SSL/TLS配置分析 |
|
||||
| sslyze | `sslyze 192.168.1.2:443` | SSL/TLS配置分析 |
|
||||
|
||||
| enum4linux | `enum4linux -a 192.168.1.2` | Windows信息枚举 |
|
||||
| enum4linux | `enum4linux -a 192.168.1.2` | Windows信息枚举 |
|
||||
|
||||
|
||||
|
||||
|
@@ -4,17 +4,17 @@ description: Supabase - 添加国内阿里云短信、微信扫码认证登录
|
||||
date: 2025-07-15
|
||||
img: https://lijue-me.oss-cn-chengdu.aliyuncs.com/20250701003525007.png
|
||||
navigation:
|
||||
icon: simple-icons:alibabacloud
|
||||
icon: simple-icons:alibabacloud
|
||||
---
|
||||
|
||||
###### 给 Supabase 添加一项新的功能
|
||||
Supabase 自身的鉴权组件是社区开源项目 GoTrue ,由 GO 语言开发
|
||||
Supabase 提供的短信验证都是国外的厂商,并不适应国内环境
|
||||
Supabase 自身的鉴权组件是社区开源项目 GoTrue ,由 GO 语言开发
|
||||
Supabase 提供的短信验证都是国外的厂商,并不适应国内环境
|
||||
|
||||
##### 实现
|
||||
单独把 Gotrue 仓库克隆下来,添加修改需要的功能
|
||||
测试好后打包为 Docker,推到私有库
|
||||
修改 Supabase 的 Docker Compose 文件,image 改为私有库镜像并拉取!
|
||||
单独把 Gotrue 仓库克隆下来,添加修改需要的功能
|
||||
测试好后打包为 Docker,推到私有库
|
||||
修改 Supabase 的 Docker Compose 文件,image 改为私有库镜像并拉取!
|
||||
|
||||
|
||||
##### 并没有提交 PR,直接放在仓库,具体使用方法看仓库说明
|
||||
@@ -26,25 +26,25 @@ navigation:
|
||||
|
||||
### 1. 阿里云短信服务 (Aliyun SMS)
|
||||
|
||||
- ✅ 完整的阿里云短信 API 集成
|
||||
- ✅ 完整的阿里云短信 API 集成
|
||||
|
||||
- ✅ 支持 HMAC-SHA1 签名验证
|
||||
- ✅ 支持 HMAC-SHA1 签名验证
|
||||
|
||||
- ✅ 支持中文短信签名
|
||||
- ✅ 支持中文短信签名
|
||||
|
||||
- ✅ 支持 OTP 验证码发送
|
||||
- ✅ 支持 OTP 验证码发送
|
||||
|
||||
- ✅ 完整的错误处理和响应解析
|
||||
- ✅ 完整的错误处理和响应解析
|
||||
|
||||
|
||||
|
||||
### 2. 华为云短信服务 (HuaweiCloud SMS)
|
||||
|
||||
- ✅ 添加华为云短信 API 集成
|
||||
- ✅ 添加华为云短信 API 集成
|
||||
|
||||
- ✅ 完整的 `VerifyOTP` 方法实现
|
||||
- ✅ 完整的 `VerifyOTP` 方法实现
|
||||
|
||||
- ✅ 完善的接口功能支持
|
||||
- ✅ 完善的接口功能支持
|
||||
|
||||
#### 阿里云短信配置
|
||||
|
||||
|
@@ -4,10 +4,10 @@ description: Coolify是什么?
|
||||
date: 2025-07-14
|
||||
img: https://lijue-me.oss-cn-chengdu.aliyuncs.com/20250628122847084.png
|
||||
navigation:
|
||||
icon: simple-icons:chai
|
||||
icon: simple-icons:chai
|
||||
---
|
||||
# 概述
|
||||
这是一份提供给AI大模型的Python代码规范与编程标准,可以有效提高Cursor等大模型对Python项目的编写能力。
|
||||
这是一份提供给AI大模型的Python代码规范与编程标准,可以有效提高Cursor等大模型对Python项目的编写能力。
|
||||
|
||||
---
|
||||
description: Python开发综合指南,涵盖代码组织、性能、安全性、测试等内容。这些规则旨在促进可维护、高效且安全的Python代码库。
|
||||
@@ -26,24 +26,24 @@ globs: *.py
|
||||
* **src布局:** 考虑使用`src`目录分离应用代码和项目级文件(setup.py、requirements.txt等),避免导入冲突并明确项目边界
|
||||
* **典型项目结构:**
|
||||
|
||||
project_name/
|
||||
├── src/
|
||||
│ ├── package_name/
|
||||
│ │ ├── __init__.py
|
||||
│ │ ├── module1.py
|
||||
│ │ ├── module2.py
|
||||
│ ├── main.py # 入口文件
|
||||
├── tests/
|
||||
│ ├── __init__.py
|
||||
│ ├── test_module1.py
|
||||
│ ├── test_module2.py
|
||||
├── docs/
|
||||
│ ├── conf.py
|
||||
│ ├── index.rst
|
||||
├── .gitignore
|
||||
├── pyproject.toml 或 setup.py
|
||||
├── README.md
|
||||
├── requirements.txt 或 requirements-dev.txt
|
||||
project_name/
|
||||
├── src/
|
||||
│ ├── package_name/
|
||||
│ │ ├── __init__.py
|
||||
│ │ ├── module1.py
|
||||
│ │ ├── module2.py
|
||||
│ ├── main.py # 入口文件
|
||||
├── tests/
|
||||
│ ├── __init__.py
|
||||
│ ├── test_module1.py
|
||||
│ ├── test_module2.py
|
||||
├── docs/
|
||||
│ ├── conf.py
|
||||
│ ├── index.rst
|
||||
├── .gitignore
|
||||
├── pyproject.toml 或 setup.py
|
||||
├── README.md
|
||||
├── requirements.txt 或 requirements-dev.txt
|
||||
|
||||
### 1.2 文件命名规范
|
||||
|
||||
|
@@ -4,10 +4,10 @@ description: 这是一份提供给AI大模型的Python代码规范与编程标
|
||||
date: 2025-07-12
|
||||
img: https://lijue-me.oss-cn-chengdu.aliyuncs.com/20250624130616733.png
|
||||
navigation:
|
||||
icon: simple-icons:python
|
||||
icon: simple-icons:python
|
||||
---
|
||||
# 概述
|
||||
这是一份提供给AI大模型的Python代码规范与编程标准,可以有效提高Cursor等大模型对Python项目的编写能力。
|
||||
这是一份提供给AI大模型的Python代码规范与编程标准,可以有效提高Cursor等大模型对Python项目的编写能力。
|
||||
|
||||
---
|
||||
description: Python开发综合指南,涵盖代码组织、性能、安全性、测试等内容。这些规则旨在促进可维护、高效且安全的Python代码库。
|
||||
@@ -26,24 +26,24 @@ globs: *.py
|
||||
* **src布局:** 考虑使用`src`目录分离应用代码和项目级文件(setup.py、requirements.txt等),避免导入冲突并明确项目边界
|
||||
* **典型项目结构:**
|
||||
|
||||
project_name/
|
||||
├── src/
|
||||
│ ├── package_name/
|
||||
│ │ ├── __init__.py
|
||||
│ │ ├── module1.py
|
||||
│ │ ├── module2.py
|
||||
│ ├── main.py # 入口文件
|
||||
├── tests/
|
||||
│ ├── __init__.py
|
||||
│ ├── test_module1.py
|
||||
│ ├── test_module2.py
|
||||
├── docs/
|
||||
│ ├── conf.py
|
||||
│ ├── index.rst
|
||||
├── .gitignore
|
||||
├── pyproject.toml 或 setup.py
|
||||
├── README.md
|
||||
├── requirements.txt 或 requirements-dev.txt
|
||||
project_name/
|
||||
├── src/
|
||||
│ ├── package_name/
|
||||
│ │ ├── __init__.py
|
||||
│ │ ├── module1.py
|
||||
│ │ ├── module2.py
|
||||
│ ├── main.py # 入口文件
|
||||
├── tests/
|
||||
│ ├── __init__.py
|
||||
│ ├── test_module1.py
|
||||
│ ├── test_module2.py
|
||||
├── docs/
|
||||
│ ├── conf.py
|
||||
│ ├── index.rst
|
||||
├── .gitignore
|
||||
├── pyproject.toml 或 setup.py
|
||||
├── README.md
|
||||
├── requirements.txt 或 requirements-dev.txt
|
||||
|
||||
### 1.2 文件命名规范
|
||||
|
||||
|
@@ -7,7 +7,7 @@ navigation:
|
||||
icon: simple-icons:nuxtdotjs
|
||||
---
|
||||
## 概述
|
||||
这是一份提供给AI大模型的Nuxt3框架规范、编程标准,可以有效提高Cursor等大模型对Nuxt.js框架的编写能力。
|
||||
这是一份提供给AI大模型的Nuxt3框架规范、编程标准,可以有效提高Cursor等大模型对Nuxt.js框架的编写能力。
|
||||
|
||||
---
|
||||
description: 本规则为 Nuxt.js 项目提供全面的最佳实践和编码标准,涵盖代码组织、性能、安全性、测试和常见陷阱。旨在确保 Nuxt.js 应用程序的可维护性、可扩展性和安全性。
|
||||
|
@@ -18,12 +18,12 @@ Swap(交换分区)是 Linux 系统用来扩展内存的一种机制。当物
|
||||
---
|
||||
|
||||
## **2. 查看当前 Swap 配置**
|
||||
**检查当前是否已启用 Swap:**
|
||||
**检查当前是否已启用 Swap:**
|
||||
```bash
|
||||
swapon --show
|
||||
```
|
||||
- **无输出**:表示未配置 Swap 分区
|
||||
- **有输出**:显示已启用的 Swap 设备及其大小
|
||||
- **无输出**:表示未配置 Swap 分区
|
||||
- **有输出**:显示已启用的 Swap 设备及其大小
|
||||
|
||||
---
|
||||
|
||||
@@ -68,8 +68,8 @@ cat /etc/fstab | grep swap
|
||||
---
|
||||
|
||||
## **4. 调整内存管理策略(可选)**
|
||||
默认情况下,Linux 倾向于使用物理内存而非 Swap。
|
||||
若希望 **减少 Swap 使用**(避免频繁 I/O),可调整 `vm.swappiness`(推荐值:10~60):
|
||||
默认情况下,Linux 倾向于使用物理内存而非 Swap。
|
||||
若希望 **减少 Swap 使用**(避免频繁 I/O),可调整 `vm.swappiness`(推荐值:10~60):
|
||||
```bash
|
||||
# 查看当前值(默认60)
|
||||
cat /proc/sys/vm/swappiness
|
||||
@@ -80,10 +80,10 @@ sudo sysctl vm.swappiness=10
|
||||
# 永久生效
|
||||
echo "vm.swappiness=10" >> /etc/sysctl.conf
|
||||
```
|
||||
> **参数说明**:
|
||||
> - `0`:尽量不使用 Swap(可能导致 OOM)
|
||||
> - `10`:低内存时少量使用
|
||||
> - `60`:默认值
|
||||
> **参数说明**:
|
||||
> - `0`:尽量不使用 Swap(可能导致 OOM)
|
||||
> - `10`:低内存时少量使用
|
||||
> - `60`:默认值
|
||||
|
||||
---
|
||||
|
||||
@@ -97,9 +97,9 @@ sed -i '/swapfile/d' /etc/fstab # 移除 fstab 中的配置
|
||||
---
|
||||
|
||||
## **6. 云服务器(ECS)注意事项**
|
||||
- **普通云盘**:不建议用 Swap,因其 I/O 性能较差,易引发性能问题
|
||||
- **SSD/高效云盘**:可适当启用 Swap,但要避免频繁交换
|
||||
- **最优方案**:**升级实例规格**,直接增加物理内存
|
||||
- **普通云盘**:不建议用 Swap,因其 I/O 性能较差,易引发性能问题
|
||||
- **SSD/高效云盘**:可适当启用 Swap,但要避免频繁交换
|
||||
- **最优方案**:**升级实例规格**,直接增加物理内存
|
||||
|
||||
---
|
||||
|
||||
|
@@ -4,12 +4,12 @@ description: 如何在MySQL中忽略表名的大小写
|
||||
date: 2025-06-01
|
||||
img: https://lijue-me.oss-cn-chengdu.aliyuncs.com/20250619124538532.png
|
||||
navigation:
|
||||
icon: simple-icons:mysql
|
||||
icon: simple-icons:mysql
|
||||
---
|
||||
在 MySQL 中,默认情况下表名是大小写敏感的。但是你可以通过设置来实现忽略表名的大小写。有两种方法可以做到这一点:
|
||||
|
||||
方法一:修改配置文件
|
||||
编辑 MySQL 的配置文件 my.cnf 或 my.ini(具体文件名取决于操作系统和 MySQL 版本),在 [mysqld] 部分添加以下行:
|
||||
编辑 MySQL 的配置文件 my.cnf 或 my.ini(具体文件名取决于操作系统和 MySQL 版本),在 [mysqld] 部分添加以下行:
|
||||
|
||||
```
|
||||
lower_case_table_names = 1
|
||||
@@ -22,7 +22,7 @@ lower_case_table_names = 1
|
||||
设置为 1:将表名存储为小写,并在比较表名时不区分大小写。
|
||||
设置为 2:将表名存储为小写,并在比较表名时区分大小写(仅在非 Windows 环境下可用)。
|
||||
方法二:动态设置
|
||||
如果无法修改配置文件,你可以在 MySQL 启动后,使用以下命令动态设置:
|
||||
如果无法修改配置文件,你可以在 MySQL 启动后,使用以下命令动态设置:
|
||||
|
||||
```
|
||||
SET GLOBAL lower_case_table_names = 1;
|
||||
@@ -31,5 +31,5 @@ SET GLOBAL lower_case_table_names = 1;
|
||||
|
||||
请注意,这种方式在 MySQL 重启后会失效,除非再次设置。
|
||||
|
||||
在任何情况下,修改这个设置都需要谨慎考虑,因为它可能会影响现有的数据库和应用程序。在进行此类更改之前,请务必备份数据库,并确保了解潜在的影响和风险。
|
||||
在任何情况下,修改这个设置都需要谨慎考虑,因为它可能会影响现有的数据库和应用程序。在进行此类更改之前,请务必备份数据库,并确保了解潜在的影响和风险。
|
||||
|
||||
|
@@ -86,7 +86,7 @@ npm -v
|
||||
---
|
||||
|
||||
### **安装 pnpm、yarn、bun、cpnm**
|
||||
如果没有配置镜像加速,先配置加速:
|
||||
如果没有配置镜像加速,先配置加速:
|
||||
|
||||
```bash
|
||||
npm config set registry https://registry.npmmirror.com
|
||||
@@ -129,7 +129,7 @@ yarn -v
|
||||
```
|
||||
|
||||
#### **安装 bun**
|
||||
Linux用户-安装Bun需要解压缩包。使用 `sudo apt install unzip` 安装解压包。强烈建议使用5.6或更高版本的内核,但最低版本为5.1。使用 `uname -r` 检查内核版本。
|
||||
Linux用户-安装Bun需要解压缩包。使用 `sudo apt install unzip` 安装解压包。强烈建议使用5.6或更高版本的内核,但最低版本为5.1。使用 `uname -r` 检查内核版本。
|
||||
|
||||
```bash
|
||||
# 全局安装
|
||||
|
@@ -34,9 +34,9 @@ PermitRootLogin no
|
||||
PasswordAuthentication no # 强制使用密钥登录
|
||||
```
|
||||
|
||||
> ⚠️ **关键提示**:
|
||||
> 1. 操作前必须配置好SSH密钥,否则会锁定服务器
|
||||
> 2. 执行后重载服务:`sudo systemctl reload ssh`
|
||||
> ⚠️ **关键提示**:
|
||||
> 1. 操作前必须配置好SSH密钥,否则会锁定服务器
|
||||
> 2. 执行后重载服务:`sudo systemctl reload ssh`
|
||||
|
||||
---
|
||||
|
||||
@@ -90,12 +90,12 @@ sudo dpkg-reconfigure -plow unattended-upgrades
|
||||
sudo systemctl status unattended-upgrades
|
||||
```
|
||||
|
||||
> 🔧 **配置文件优化** (`/etc/apt/apt.conf.d/50unattended-upgrades`):
|
||||
> ```json
|
||||
> Unattended-Upgrade::Remove-Unused-Dependencies "true";
|
||||
> Unattended-Upgrade::Automatic-Reboot "true";
|
||||
> Unattended-Upgrade::Automatic-Reboot-Time "03:00";
|
||||
> ```
|
||||
> 🔧 **配置文件优化** (`/etc/apt/apt.conf.d/50unattended-upgrades`):
|
||||
> ```json
|
||||
> Unattended-Upgrade::Remove-Unused-Dependencies "true";
|
||||
> Unattended-Upgrade::Automatic-Reboot "true";
|
||||
> Unattended-Upgrade::Automatic-Reboot-Time "03:00";
|
||||
> ```
|
||||
|
||||
---
|
||||
|
||||
@@ -189,7 +189,7 @@ sudo ss -tunlp
|
||||
|
||||
---
|
||||
|
||||
**最终安全检查清单**:
|
||||
**最终安全检查清单**:
|
||||
```bash
|
||||
echo "[+] SSH 配置"
|
||||
sudo sshd -t && grep -E "PermitRoot|PasswordAuth" /etc/ssh/sshd_config
|
||||
@@ -200,14 +200,14 @@ sudo ufw status
|
||||
echo "[]+ 更新状态"
|
||||
sudo unattended-upgrades --dry-run
|
||||
```
|
||||

|
||||
*(安全层示意图:网络防火墙→系统加固→应用防护)*
|
||||

|
||||
*(安全层示意图:网络防火墙→系统加固→应用防护)*
|
||||
|
||||
> 🔐 **维护建议**:
|
||||
> 1. 每月执行:`sudo lynis audit system` (安装:`apt install lynis`)
|
||||
> 2. 每季度更新所有SSL证书,即使未到期
|
||||
> 3. 使用自动配置管理工具(如Ansible)维护服务器状态
|
||||
> 🔐 **维护建议**:
|
||||
> 1. 每月执行:`sudo lynis audit system` (安装:`apt install lynis`)
|
||||
> 2. 每季度更新所有SSL证书,即使未到期
|
||||
> 3. 使用自动配置管理工具(如Ansible)维护服务器状态
|
||||
|
||||
**文档版本**: v1.2
|
||||
**测试环境**: Debian 12.5 (Kernel 6.1.x) 云服务器
|
||||
**最后更新**: 2024-06-15
|
||||
**文档版本**: v1.2
|
||||
**测试环境**: Debian 12.5 (Kernel 6.1.x) 云服务器
|
||||
**最后更新**: 2024-06-15
|
||||
|
@@ -34,9 +34,9 @@ PermitRootLogin no
|
||||
PasswordAuthentication no # 强制使用密钥登录
|
||||
```
|
||||
|
||||
> ⚠️ **关键提示**:
|
||||
> 1. 操作前必须配置好SSH密钥,否则会锁定服务器
|
||||
> 2. 执行后重载服务:`sudo systemctl reload ssh`
|
||||
> ⚠️ **关键提示**:
|
||||
> 1. 操作前必须配置好SSH密钥,否则会锁定服务器
|
||||
> 2. 执行后重载服务:`sudo systemctl reload ssh`
|
||||
|
||||
---
|
||||
|
||||
@@ -90,12 +90,12 @@ sudo dpkg-reconfigure -plow unattended-upgrades
|
||||
sudo systemctl status unattended-upgrades
|
||||
```
|
||||
|
||||
> 🔧 **配置文件优化** (`/etc/apt/apt.conf.d/50unattended-upgrades`):
|
||||
> ```json
|
||||
> Unattended-Upgrade::Remove-Unused-Dependencies "true";
|
||||
> Unattended-Upgrade::Automatic-Reboot "true";
|
||||
> Unattended-Upgrade::Automatic-Reboot-Time "03:00";
|
||||
> ```
|
||||
> 🔧 **配置文件优化** (`/etc/apt/apt.conf.d/50unattended-upgrades`):
|
||||
> ```json
|
||||
> Unattended-Upgrade::Remove-Unused-Dependencies "true";
|
||||
> Unattended-Upgrade::Automatic-Reboot "true";
|
||||
> Unattended-Upgrade::Automatic-Reboot-Time "03:00";
|
||||
> ```
|
||||
|
||||
---
|
||||
|
||||
@@ -189,7 +189,7 @@ sudo ss -tunlp
|
||||
|
||||
---
|
||||
|
||||
**最终安全检查清单**:
|
||||
**最终安全检查清单**:
|
||||
```bash
|
||||
echo "[+] SSH 配置"
|
||||
sudo sshd -t && grep -E "PermitRoot|PasswordAuth" /etc/ssh/sshd_config
|
||||
@@ -200,14 +200,14 @@ sudo ufw status
|
||||
echo "[]+ 更新状态"
|
||||
sudo unattended-upgrades --dry-run
|
||||
```
|
||||

|
||||
*(安全层示意图:网络防火墙→系统加固→应用防护)*
|
||||

|
||||
*(安全层示意图:网络防火墙→系统加固→应用防护)*
|
||||
|
||||
> 🔐 **维护建议**:
|
||||
> 1. 每月执行:`sudo lynis audit system` (安装:`apt install lynis`)
|
||||
> 2. 每季度更新所有SSL证书,即使未到期
|
||||
> 3. 使用自动配置管理工具(如Ansible)维护服务器状态
|
||||
> 🔐 **维护建议**:
|
||||
> 1. 每月执行:`sudo lynis audit system` (安装:`apt install lynis`)
|
||||
> 2. 每季度更新所有SSL证书,即使未到期
|
||||
> 3. 使用自动配置管理工具(如Ansible)维护服务器状态
|
||||
|
||||
**文档版本**: v1.2
|
||||
**测试环境**: Debian 12.5 (Kernel 6.1.x) 云服务器
|
||||
**最后更新**: 2024-06-15
|
||||
**文档版本**: v1.2
|
||||
**测试环境**: Debian 12.5 (Kernel 6.1.x) 云服务器
|
||||
**最后更新**: 2024-06-15
|
||||
|
@@ -34,9 +34,9 @@ PermitRootLogin no
|
||||
PasswordAuthentication no # 强制使用密钥登录
|
||||
```
|
||||
|
||||
> ⚠️ **关键提示**:
|
||||
> 1. 操作前必须配置好SSH密钥,否则会锁定服务器
|
||||
> 2. 执行后重载服务:`sudo systemctl reload ssh`
|
||||
> ⚠️ **关键提示**:
|
||||
> 1. 操作前必须配置好SSH密钥,否则会锁定服务器
|
||||
> 2. 执行后重载服务:`sudo systemctl reload ssh`
|
||||
|
||||
---
|
||||
|
||||
@@ -90,12 +90,12 @@ sudo dpkg-reconfigure -plow unattended-upgrades
|
||||
sudo systemctl status unattended-upgrades
|
||||
```
|
||||
|
||||
> 🔧 **配置文件优化** (`/etc/apt/apt.conf.d/50unattended-upgrades`):
|
||||
> ```json
|
||||
> Unattended-Upgrade::Remove-Unused-Dependencies "true";
|
||||
> Unattended-Upgrade::Automatic-Reboot "true";
|
||||
> Unattended-Upgrade::Automatic-Reboot-Time "03:00";
|
||||
> ```
|
||||
> 🔧 **配置文件优化** (`/etc/apt/apt.conf.d/50unattended-upgrades`):
|
||||
> ```json
|
||||
> Unattended-Upgrade::Remove-Unused-Dependencies "true";
|
||||
> Unattended-Upgrade::Automatic-Reboot "true";
|
||||
> Unattended-Upgrade::Automatic-Reboot-Time "03:00";
|
||||
> ```
|
||||
|
||||
---
|
||||
|
||||
@@ -189,7 +189,7 @@ sudo ss -tunlp
|
||||
|
||||
---
|
||||
|
||||
**最终安全检查清单**:
|
||||
**最终安全检查清单**:
|
||||
```bash
|
||||
echo "[+] SSH 配置"
|
||||
sudo sshd -t && grep -E "PermitRoot|PasswordAuth" /etc/ssh/sshd_config
|
||||
@@ -200,14 +200,14 @@ sudo ufw status
|
||||
echo "[]+ 更新状态"
|
||||
sudo unattended-upgrades --dry-run
|
||||
```
|
||||

|
||||
*(安全层示意图:网络防火墙→系统加固→应用防护)*
|
||||

|
||||
*(安全层示意图:网络防火墙→系统加固→应用防护)*
|
||||
|
||||
> 🔐 **维护建议**:
|
||||
> 1. 每月执行:`sudo lynis audit system` (安装:`apt install lynis`)
|
||||
> 2. 每季度更新所有SSL证书,即使未到期
|
||||
> 3. 使用自动配置管理工具(如Ansible)维护服务器状态
|
||||
> 🔐 **维护建议**:
|
||||
> 1. 每月执行:`sudo lynis audit system` (安装:`apt install lynis`)
|
||||
> 2. 每季度更新所有SSL证书,即使未到期
|
||||
> 3. 使用自动配置管理工具(如Ansible)维护服务器状态
|
||||
|
||||
**文档版本**: v1.2
|
||||
**测试环境**: Debian 12.5 (Kernel 6.1.x) 云服务器
|
||||
**最后更新**: 2024-06-15
|
||||
**文档版本**: v1.2
|
||||
**测试环境**: Debian 12.5 (Kernel 6.1.x) 云服务器
|
||||
**最后更新**: 2024-06-15
|
||||
|
@@ -23,13 +23,13 @@ B -- 万兆光口 --> C[PVE服务器<br>CX4121A网卡]
|
||||
```
|
||||
|
||||
### 硬件清单
|
||||
| **设备** | **规格** | **作用** |
|
||||
|---------------------|-----------------------------------------|-----------------------|
|
||||
| 主测试端 | MacBook Air M4 + 雷电万兆网卡(AQC113) | Iperf3 Client端 |
|
||||
| 交换机 | 水星S106E Pro | 万兆光/电转换枢纽 |
|
||||
| 光转电模块 | AQR113光转电模块 | 连接交换机万兆光口 |
|
||||
| 被测服务端 | NAS (12500T+Q670) + CX4121A万兆网卡 | Iperf3 Server端 |
|
||||
| 辅助设备 | 超六类网线/光纤跳线(按需) | 物理链路连接 |
|
||||
| **设备** | **规格** | **作用** |
|
||||
|---------------------|-----------------------------------------|-----------------------|
|
||||
| 主测试端 | MacBook Air M4 + 雷电万兆网卡(AQC113) | Iperf3 Client端 |
|
||||
| 交换机 | 水星S106E Pro | 万兆光/电转换枢纽 |
|
||||
| 光转电模块 | AQR113光转电模块 | 连接交换机万兆光口 |
|
||||
| 被测服务端 | NAS (12500T+Q670) + CX4121A万兆网卡 | Iperf3 Server端 |
|
||||
| 辅助设备 | 超六类网线/光纤跳线(按需) | 物理链路连接 |
|
||||
```
|
||||
|
||||
---
|
||||
@@ -38,19 +38,19 @@ B -- 万兆光口 --> C[PVE服务器<br>CX4121A网卡]
|
||||
### 1. macOS端安装(Client)
|
||||
```bash
|
||||
# 通过Homebrew安装iperf3
|
||||
brew install iperf3
|
||||
brew install iperf3
|
||||
|
||||
# 启动服务端监听(可选本地验证)
|
||||
iperf3 -s -p 5201
|
||||
iperf3 -s -p 5201
|
||||
```
|
||||
|
||||
### 2. PVE服务端安装(Server)
|
||||
```bash
|
||||
# Debian系系统安装
|
||||
apt update && apt install iperf3 -y
|
||||
apt update && apt install iperf3 -y
|
||||
|
||||
# 启动服务端后台监听
|
||||
iperf3 -s -D -p 5201
|
||||
iperf3 -s -D -p 5201
|
||||
```
|
||||
> ⚠️ **防火墙注意**: 确保5201端口开放
|
||||
> `ufw allow 5201/tcp` (Debian/Ubuntu)
|
||||
@@ -124,10 +124,10 @@ ethtool -S enpXX | grep -E 'drop|error'
|
||||
2. 减少并发线程总数(-P参数)
|
||||
```
|
||||
|
||||

|
||||
*(示意图:实际连接需确保光模块端口匹配)*
|
||||

|
||||
*(示意图:实际连接需确保光模块端口匹配)*
|
||||
|
||||
> 📌 **经验总结**:水星S106E Pro需关闭"绿色节能"功能,避免AQC113因节能策略降速。PVE虚拟机环境建议使用SR-IOV直通网卡,减少虚拟化层开销。
|
||||
> 📌 **经验总结**:水星S106E Pro需关闭"绿色节能"功能,避免AQC113因节能策略降速。PVE虚拟机环境建议使用SR-IOV直通网卡,减少虚拟化层开销。
|
||||
|
||||
---
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,3 +1,3 @@
|
||||
title: AI
|
||||
description: AI 改变世界
|
||||
icon: lucide-brain
|
||||
icon: devicon:streamlit
|
||||
|
@@ -1,3 +1,3 @@
|
||||
title: 生活
|
||||
description: 生活中一些有趣的事情
|
||||
icon: lucide-heart
|
||||
icon: devicon:love2d
|
||||
|
@@ -50,6 +50,7 @@
|
||||
"remark-rehype": "^11.1.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@iconify-json/devicon": "^1.2.41",
|
||||
"@iconify-json/lucide": "^1.2.57",
|
||||
"@iconify-json/simple-icons": "^1.2.43",
|
||||
"@nuxt/eslint": "^1.5.2",
|
||||
|
10
pnpm-lock.yaml
generated
10
pnpm-lock.yaml
generated
@@ -60,6 +60,9 @@ importers:
|
||||
specifier: ^11.1.2
|
||||
version: 11.1.2
|
||||
devDependencies:
|
||||
'@iconify-json/devicon':
|
||||
specifier: ^1.2.41
|
||||
version: 1.2.41
|
||||
'@iconify-json/lucide':
|
||||
specifier: ^1.2.57
|
||||
version: 1.2.57
|
||||
@@ -889,6 +892,9 @@ packages:
|
||||
resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
|
||||
engines: {node: '>=18.18'}
|
||||
|
||||
'@iconify-json/devicon@1.2.41':
|
||||
resolution: {integrity: sha512-4hCbtXRkdwbzemxVc7+6LQT0cOQaD1SHZpElhuV0YC5JfUqBu7T5ejRcjgim1lJO888Mj0WSp4th1eUhDEChUg==}
|
||||
|
||||
'@iconify-json/lucide@1.2.57':
|
||||
resolution: {integrity: sha512-I1CIObdPBIL/9v75KKoyHWNhq+qqN6ef8+iJY4AVpHLtnRu0Vbp6K0TKcoYZ70U+EgiL6krEbFdcjK3+fwpfHQ==}
|
||||
|
||||
@@ -7673,6 +7679,10 @@ snapshots:
|
||||
|
||||
'@humanwhocodes/retry@0.4.3': {}
|
||||
|
||||
'@iconify-json/devicon@1.2.41':
|
||||
dependencies:
|
||||
'@iconify/types': 2.0.0
|
||||
|
||||
'@iconify-json/lucide@1.2.57':
|
||||
dependencies:
|
||||
'@iconify/types': 2.0.0
|
||||
|
Reference in New Issue
Block a user