Files
liuzhuohua 249cc3d8c6 feat(backup/alert/quota/vpn): 新增四个模块 + 深度自查修7 个真缺陷
功能
- 配置备份与还原(backupd):分级导出/预览/还原,敏感内容默认排除
- 告警中心(alertd):WAN掉线/延迟/丢包探测,冷却期+ 免打扰
- 流量配额(quotad):按 IP/服务/小时桶聚合,费用分摊
- VPN 页前端接线 + 前端字段契约补齐

自查发现并修复的缺陷(_dev/t-107.py,119 项)
1. 默认备份静默丢失大半配置(严重)
   _bk_files 把整个 /etc/drouter 标为 sensitive,默认导出时被整目录排除,
   而 BACKUP_SCOPE 恰恰宣称备份含 dcfg.json / kern.conf / vlans.json /
   Docker 栈文件 / 自定义主题。界面全程显示「已导出」,用户换机还原才发现。
   改为逐文件判定(_bk_is_sensitive)+ 敏感子树剪枝 + excluded 收集与展示。
2. VPN status 把全部客户端私钥明文送到浏览器
   _vpn_status 返回 'raw': d(完整配置),前端 4 个渲染函数一个都没读过它。
3. Python 3.13 下保存 VPN 配置静默清空所有 peer(隐蔽)
   'str' in ip_network() 在 3.12 静默 False,3.13 抛 AttributeError,
   被紧邻的 except 吞掉 → 所有客户端无声消失。Debian 13 默认就是 3.13。
4. VPN 私钥在 _vpn_mask 里被连同其他字段一起抹掉
5. 14 处前端属性插值未转义(备份/告警/VPN/配额页)
   type="number" 只过滤输入,不阻止 HTML 属性注入。
6. wireguard 未登记到 DEPS(VPN 有 5 处调 wg,自检页看不到缺失提示)
7. build-deb.sh 声明「后端 N 个」与实际清单不符 + ULOG_ARCHIVE 重复定义

测试基建
- _dev/t-107.py:字段契约双向对照 / op 三段对齐 / 高危路径端到端
  (真跑 _bk_walk、_vpn_norm、配额聚合,不用正则假装测过)
- _dev/run-static.py + scripts/test-static.sh:统一静态回归入口
  排除列表曾写成裸名导致交互脚本没被排除、长会话被 SIGTERM
- t-packaging 改为从 build-deb.sh 抽取模块清单,并反向校验无游离模块
2026-10-03 00:49:07 +08:00

59 lines
1.6 KiB
Plaintext

Package: drouter
Version: __VERSION__
Section: net
Priority: optional
Architecture: all
Maintainer: 火麒麟 (ajeef) <https://github.com/liuzhuohua>
Homepage: https://github.com/liuzhuohua
Description: Debian 13 主路由管理系统(Web 管理面板)
Drouter 是一套面向 Debian 13 的软路由管理系统,提供 Web 管理界面:
WAN/LAN 接入、PPPoE 多拨、QoS、DPI 识别、访问控制与家长控制、
IPv6、端口转发与 DMZ、DDNS、SMB/NFS 文件共享、Docker 与 Compose 管理、
连接跟踪与统一日志、防火墙日志、自动快照与回滚、紧急救援通道、主题之家。
.
设计上严格区分「保存配置」与「应用到系统」,任何下发前都可预览渲染结果;
默认不会自动启动 DHCP/DNS 服务,避免与现有局域网冲突。
Depends: python3 (>= 3.9),
python3-venv | python3-minimal,
nftables,
dnsmasq,
radvd,
ppp,
pppoe,
pppoeconf,
miniupnpd,
chrony,
ethtool,
iperf3,
mtr-tiny,
traceroute,
dnsutils,
conntrack,
bridge-utils,
iproute2,
sqlite3,
logrotate,
rsyslog,
curl,
wget,
procps,
sudo,
openssl,
ipset,
kmod,
systemd,
adduser,
ca-certificates,
dhcpcd-base,
util-linux,
coreutils,
hostname,
tar
Recommends: tcpdump, jq, htop, iotop, nvme-cli, lm-sensors, dmidecode,
e2fsprogs, exfatprogs, ntfs-3g, dosfstools, xfsprogs, btrfs-progs, f2fs-tools,
usbutils, etherwake, zip, unzip, p7zip-full, iputils-ping, vim-tiny,
wireguard-tools
Suggests: smartmontools, suricata, xtables-addons-common,
samba, samba-common-bin, nfs-kernel-server, docker.io, docker-compose,
cups, cups-client, snmpd, snmp