From b37dc23cd9d271e6a7c62ce3aeca68ebb394585b Mon Sep 17 00:00:00 2001 From: MeowOS Date: Tue, 1 Sep 2026 22:08:10 +0800 Subject: [PATCH] =?UTF-8?q?meow=5Fnetmgrd=20=E6=9C=9F3=EF=BC=9A=E7=AE=A1?= =?UTF-8?q?=E6=8E=A7=E5=B1=82=EF=BC=88=E4=B8=89=E5=AE=9E=E4=BD=93=E7=AD=96?= =?UTF-8?q?=E7=95=A5=E5=BC=95=E6=93=8E+=E9=98=B2=E8=87=AA=E9=94=81+SOCK=5F?= =?UTF-8?q?DESTROY=20=E5=AE=9E=E6=B5=8B=E2=86=92=E4=BB=85=20DNS=20?= =?UTF-8?q?=E5=B1=82=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit NETMGR_DESIGN.md §6/§13 期3 落地(全在 patch_v2/meow_netmgrd/ + meow_ipc.h 追加): 1. 策略引擎全量:/data/meow/netmgrd/net_policy.conf(/data=/usr/data)读改写单键+原子写 (temp+rename,绝不 O_TRUNC 整文件重写——watchdog 毁设置教训);per-实体(app:/svc:/proc:) net=allow|block + domain 白/黑(接通 DNS 层执行)+ global log_level;默认 allow。 2. 防自锁硬编码:dropbear/wpa_supplicant/udhcpc/meow_netmgrd/meow_svcd/meow_sysui/init 拒绝 block (CLI/IPC 拒 + 加载校验把手工改坏的文件里这些实体的 net=block 同样强制复位 allow——§14 红线)。 3. SOCK_DESTROY 真机实测(sockdestroy_probe.c,root @内核4.4):**内核接受 SOCK_DESTROY 请求(rc=0) 但未真正销毁 socket(cookie=0 与 dump-cookie 两法均 dead=0)→ 判定 no-op/不可用**。 ⇒ 连接级执行降级为「仅 DNS 层生效」(net=block → dns_query_domain_denied 全量 deny,DNS 层落地), policy show 头 enfor=dns_only 明示。SDK 自愿通道/设置页迁移期外。 4. IPC 0x00EA MSG_NET_POLICY(op: show/set net/set domain/del)+ RESULT 0x00EB:读级任意、写级仅系统身份。 CLI:policy show [entity] | set allow|block | domain +host|-host | del 。 5. 两小修:①classify_exe 增认 MeowPanel 精确路径(修面板 dns flush 403;面板已有 PIN 门禁) ②连接未归因(inode=0/查不到)一律落 proc:unknown——修 apps 表出现「IP:port」原始端点行。 6. WiFi connect 持久化:MeowOS 模式 connect 后 wpa_cli save_config(HibyOS 只读由服务端门控)。 验证:宿主 test_netmgrd.sh 61/61 + qemu 61/61;test_netmgrd_p2/p3 宿主+qemu 全过;netmgrd_authtest 全过; 交叉 -Wall -Wextra 0 warning。真机只读实测(DNS-on 固件共存,用独立 socket+/tmp 临时 policy.json): policy set/domain/del 全链 + 防自锁拒绝 proc:dropbear(rc=1) + 空文件 del(size=0) + apps 无原始端点 + resolv.conf 未触碰(测后核验固件两行形式);Firmware meow_netmgrd(pid 8142) running 未动。 新 md5:meow_netmgrd 62369ebe29e7ef4b55067a0f14e240d0(主会话更 fw_content.conf/热更设备)。 --- patch_v2/meow_launcherd/meow_ipc.h | 32 ++ patch_v2/meow_netmgrd/meow_netmgrd | Bin 175324 -> 183868 bytes patch_v2/meow_netmgrd/meow_netmgrd.c | 423 ++++++++++++++++++++-- patch_v2/meow_netmgrd/meow_netmgrd_host | Bin 81512 -> 82080 bytes patch_v2/meow_netmgrd/netmgrd_authtest | Bin 149408 -> 150136 bytes patch_v2/meow_netmgrd/sockdestroy_probe.c | 178 +++++++++ patch_v2/meow_netmgrd/test_netmgrd.sh | 20 + patch_v2/meow_netmgrd/test_netmgrd_p2 | Bin 82232 -> 148248 bytes patch_v2/meow_netmgrd/test_netmgrd_p3 | Bin 0 -> 147936 bytes patch_v2/meow_netmgrd/test_netmgrd_p3.c | 119 ++++++ 10 files changed, 737 insertions(+), 35 deletions(-) create mode 100644 patch_v2/meow_netmgrd/sockdestroy_probe.c create mode 100755 patch_v2/meow_netmgrd/test_netmgrd_p3 create mode 100644 patch_v2/meow_netmgrd/test_netmgrd_p3.c diff --git a/patch_v2/meow_launcherd/meow_ipc.h b/patch_v2/meow_launcherd/meow_ipc.h index 6e7a1c6..1003901 100644 --- a/patch_v2/meow_launcherd/meow_ipc.h +++ b/patch_v2/meow_launcherd/meow_ipc.h @@ -601,4 +601,36 @@ typedef struct m_net_dns_result { char text[MEOW_IPC_MAX - 8]; } m_net_dns_result_t; +/* ---- 期 3:管控层(NETMGR_DESIGN §6;默认 allow,按实体手动 block + 域名白/黑)---- + * 0x00EA MSG_NET_POLICY(同时承载 GET/SET,op 区分)。GET=读级任意;SET=写级仅系统身份 + * (SO_PEERCRED → /usr/bin/meow_* / os.meow.* / MeowPanel)。防自锁实体(dropbear/wpa_supplicant/ + * udhcpc/meow_netmgrd/meow_svcd/meow_sysui/init)拒绝置 block(服务端硬校验)。 + * 策略持久化:`/data/meow/netmgrd/net_policy.conf`(/data=/usr/data 符号链接),读改写单键原子写。 */ +enum { /* 与主 enum 分列,追加式不改既有行 */ + MSG_NET_POLICY = 0x00EA, /* ↑ op=0 查询 / op=1 写(set net / set domain / del) */ + MSG_NET_POLICY_RESULT = 0x00EB /* ↓ 策略文本/结果 */ + /* 0x00EE 事件推送(预留,期2 订阅制)/ 0xEF 余量(均为预留) */ +}; + +/* MSG_NET_POLICY 操作码 */ +enum { + NET_POLICY_SHOW = 0, /* show [entity]:entity 空=全部 */ + NET_POLICY_SET_NET = 1, /* set allow|block */ + NET_POLICY_SET_DOMAIN = 2, /* domain +host|-host */ + NET_POLICY_DEL = 3 /* del */ +}; + +typedef struct m_net_policy { + uint32_t op; /* NET_POLICY_* */ + char entity[48]; /* app: | svc: | proc: | global;空=适用 SHOW 的全量 */ + char arg[64]; /* SET_NET:allow|block;SET_DOMAIN:+host|-host;其余空 */ +} m_net_policy_t; /* 120 B */ + +typedef struct m_net_policy_result { + uint32_t code; /* MEOW_OK / MEOW_ERR_PERM / MEOW_ERR_INVAL / (防自锁)MEOW_ERR_PERM */ + uint16_t text_len; + uint16_t pad; + char text[MEOW_IPC_MAX - 8]; +} m_net_policy_result_t; + #endif /* MEOW_IPC_H */ diff --git a/patch_v2/meow_netmgrd/meow_netmgrd b/patch_v2/meow_netmgrd/meow_netmgrd index 08fe8935781b2375f265110b889eb7d508949059..08fd43aead5face899bcb690c12c211d5d4e695c 100755 GIT binary patch delta 66449 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 delta 58893 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 diff --git a/patch_v2/meow_netmgrd/meow_netmgrd.c b/patch_v2/meow_netmgrd/meow_netmgrd.c index 15b7467..445b2ba 100644 --- a/patch_v2/meow_netmgrd/meow_netmgrd.c +++ b/patch_v2/meow_netmgrd/meow_netmgrd.c @@ -46,8 +46,11 @@ #include #include #include +#include +#include +#include -#include "meow_ipc.h" /* 帧格式/消息号 + MSG_NET_*(0x00E0-0x00ED) + m_net_*(号段 0x00E0-0x00EF) */ +#include "meow_ipc.h" /* 帧格式/消息号 + MSG_NET_*(0x00E0-0x00EF) + m_net_*(号段 0x00E0-0x00EF) */ /* ---------------- 路径(全部可经 env 覆盖,宿主/qemu 桩测试用) ---------------- */ static char g_net_dir[128] = "/sys/class/net"; /* MEOW_NET_DIR */ @@ -75,7 +78,7 @@ static char g_proc_udp[160] = "/proc/net/udp"; /* MEOW_UDP * static char g_ams_sock[128] = "/usr/data/meow_ams.sock"; /* MEOW_AMS_SOCK(amsd 注册表 pid→pkg) */ static char g_svcd_sock[128] = "/tmp/meow_svcd.sock"; /* MEOW_SVCD_SOCK(svcd 服务表 pid→svc,socket 查询兜底) */ static char g_svcd_status[160]= "/tmp/meow_svcd.status"; /* MEOW_SVCD_STATUS(svcd 落盘状态,机器可读 `svc= ... pid=`) */ -static char g_net_policy[160]= "/usr/data/meow/net_policy.conf"; /* MEOW_NET_POLICY(期2 只读静态域名规则) */ +static char g_net_policy[160]= "/data/meow/netmgrd/net_policy.conf"; /* MEOW_NET_POLICY(期3 读改写;/data=/usr/data 符号链接) */ #define NET_POLL_SEC_DEF 2 /* 接口轮询/状态节拍(秒;MEOW_NET_POLL_SEC 覆盖,测试用) */ #define RUNCMD_TMO_MS 1500 /* 后端命令(wpa_cli/hciconfig/etc)有界收割限时(ms) */ @@ -966,9 +969,29 @@ typedef struct { char entity[48]; char allow[RULE_HOST_MAX][48]; int allow_n; char deny[RULE_HOST_MAX][48]; int deny_n; + int net_block; /* net=block(默认 allow;防自锁实体强制 0) */ + int has_net; /* 显式 net= 出现过 */ } rule_t; static rule_t g_rules[RULE_ENT_MAX]; static int g_rule_n = 0; +static char g_policy_log_level[8] = "info"; /* global log_level= */ + +/* ---- 期3 防自锁清单(NETMGR_DESIGN §14 红线):这些实体拒绝/强制置 allow,防断网变砖。 ---- */ +static int _is_selflock_by_name(const char *name) +{ + static const char *const k[] = { + "dropbear", "wpa_supplicant", "udhcpc", + "meow_netmgrd", "meow_svcd", "meow_sysui", "init", NULL + }; + for (int i = 0; k[i]; i++) if (strcmp(name, k[i]) == 0) return 1; + return 0; +} +static int is_self_lock(const char *entity) +{ + const char *ns = strchr(entity, ':'); + const char *name = ns ? ns + 1 : entity; + return _is_selflock_by_name(name); +} typedef struct { char key[96]; long mono; } evt_dup_t; static evt_dup_t g_evt_dup[EVT_DUP_MAX]; @@ -1088,7 +1111,7 @@ static void dns_cache_flush(void) g_dns_n = 0; } -/* ---- 域名规则(期2 静态 conf 只读;期3 策略引擎再接管) ---- */ +/* ---- 策略引擎(§6:per-entity net=allow|block + domain 白/黑 + global log_level;默认 allow) ---- */ static int suffix_match(const char *host, const char *rule) { if (!host[0] || !rule[0]) return 0; @@ -1097,23 +1120,43 @@ static int suffix_match(const char *host, const char *rule) if (strcmp(host + hl - rl, rule) != 0) return 0; return hl == rl || host[hl - rl - 1] == '.'; } -static int entity_rules_match(const rule_t *r, const char *entity) +static rule_t *entity_rules_match(rule_t *r, const char *entity) { - return r->entity[0] && strcmp(r->entity, entity) == 0; + if (!r || !r->entity[0] || strcmp(r->entity, entity) != 0) return NULL; + if (strcmp(r->entity, "global") == 0) return r; + return r; } -/* deny 判定:命中最具体的实体规则(entity+global),allow 覆盖 deny;默认 allow。 */ +static rule_t *policy_find(const char *entity) +{ + for (int i = 0; i < g_rule_n; i++) + if (entity_rules_match(&g_rules[i], entity)) return &g_rules[i]; + return NULL; +} +static rule_t *policy_find_global(void) +{ + for (int i = 0; i < g_rule_n; i++) + if (strcmp(g_rules[i].entity, "global") == 0) return &g_rules[i]; + return NULL; +} +/* net 层 block 判定:防自锁实体恒 allow;实体 net=block → block;global net=block → block;默认 allow。 */ +static int policy_net_blocked(const char *entity) +{ + if (is_self_lock(entity)) return 0; + rule_t *e = policy_find(entity); + if (e && e->has_net) return e->net_block; + rule_t *g = policy_find_global(); + return (g && g->has_net) ? g->net_block : 0; +} +/* domain 层 deny 判定:①网被 block 的实体 → 全量 deny(DNS 层是落地保障,无 SOCK_DESTROY 也生效) + * ②实体规则中最具体(entity → global)的 domain= 白/黑;allow 覆盖 deny;默认 allow。 */ static int dns_query_domain_denied(const char *entity, const char *domain) { - const rule_t *g = NULL, *e = NULL; - for (int i = 0; i < g_rule_n; i++) { - if (strcmp(g_rules[i].entity, "global") == 0) g = &g_rules[i]; - else if (!e && entity_rules_match(&g_rules[i], entity)) e = &g_rules[i]; - } - const rule_t *r = e ? e : g; + if (policy_net_blocked(entity)) return 1; + rule_t *e = policy_find(entity); + const rule_t *r = e ? e : policy_find_global(); if (r && r->deny_n) { for (int i = 0; i < r->deny_n; i++) if (suffix_match(domain, r->deny[i])) { - /* allow 白名单可覆盖 */ for (int j = 0; j < r->allow_n; j++) if (suffix_match(domain, r->allow[j])) return 0; return 1; @@ -1121,9 +1164,12 @@ static int dns_query_domain_denied(const char *entity, const char *domain) } return 0; } + +/* 规则加载(启动 + 每次写后重载以自愈)。防自锁:文件被手工改坏(net=block on 命根实体)→ 加载校验强制 allow。 */ static void rules_load(void) { g_rule_n = 0; + snprintf(g_policy_log_level, sizeof g_policy_log_level, "%s", "info"); FILE *f = fopen(g_net_policy, "r"); if (!f) return; char line[256]; @@ -1135,33 +1181,152 @@ static void rules_load(void) char *sp = strchr(p, ' '); char *tab = strchr(p, '\t'); if (!sp || (tab && tab < sp)) sp = tab; - char *entity; char *rest; - if (sp) { *sp = 0; entity = p; rest = sp + 1; } - else continue; - rule_t *r = &g_rules[g_rule_n]; - memset(r, 0, sizeof *r); - snprintf(r->entity, sizeof r->entity, "%s", entity); - /* rest 形如 "domain=+a,-b,c" 或 "net=block";逐 token 解析 */ + if (!sp) continue; + *sp = 0; + char *entity = p, *rest = sp + 1; + if (strcmp(entity, "global") == 0) { + /* global log_level= */ + char *lv = strstr(rest, "log_level="); + if (lv) { char *v = lv + 10; while (*v==' '||*v=='\t'||*v=='"') v++; + char *e2 = v; while (*e2 && *e2!=' ' && *e2!='\t' && *e2!='\n') e2++; *e2=0; + snprintf(g_policy_log_level, sizeof g_policy_log_level, "%s", v); } + } + rule_t *r = policy_find(entity); + if (!r) { + if (g_rule_n >= RULE_ENT_MAX) continue; + r = &g_rules[g_rule_n++]; + memset(r, 0, sizeof *r); + snprintf(r->entity, sizeof r->entity, "%s", entity); + } char *save = NULL; for (char *tok = strtok_r(rest, " \t", &save); tok; tok = strtok_r(NULL, " \t", &save)) { - if (strncmp(tok, "domain=", 7) != 0) continue; - char *sub = tok + 7; - char *ssave = NULL; - for (char *h = strtok_r(sub, ",", &ssave); h; h = strtok_r(NULL, ",", &ssave)) { - if (h[0] == '+') { - if (r->allow_n < RULE_HOST_MAX) snprintf(r->allow[r->allow_n++], 48, "%s", h + 1); - } else if (h[0] == '-') { - if (r->deny_n < RULE_HOST_MAX) snprintf(r->deny[r->deny_n++], 48, "%s", h + 1); - } else if (h[0]) { - if (r->deny_n < RULE_HOST_MAX) snprintf(r->deny[r->deny_n++], 48, "%s", h); + if (strncmp(tok, "domain=", 7) == 0) { + char *sub = tok + 7, *ssave = NULL; + for (char *h = strtok_r(sub, ",", &ssave); h; h = strtok_r(NULL, ",", &ssave)) { + if (h[0] == '+') { if (r->allow_n < RULE_HOST_MAX) snprintf(r->allow[r->allow_n++], 48, "%s", h+1); } + else if (h[0] == '-') { if (r->deny_n < RULE_HOST_MAX) snprintf(r->deny[r->deny_n++], 48, "%s", h+1); } + else if (h[0]) { if (r->deny_n < RULE_HOST_MAX) snprintf(r->deny[r->deny_n++], 48, "%s", h); } } + } else if (strncmp(tok, "net=", 4) == 0) { + int blocked = (strcmp(tok + 4, "block") == 0); + /* 防自锁:加载校验把命根实体的 net=block 强制复位为 allow(§14 红线)。 */ + if (blocked && is_self_lock(entity)) { + blocked = 0; + net_log("warn", "policy", "load: self-lock entity %s forced allow (net=block 被剔除)", entity); + } + r->net_block = blocked; + r->has_net = 1; } } - if (r->deny_n || r->allow_n) g_rule_n++; + /* 空规则(无 net/domain)且为新建末槽 → 移除(防占槽)。 */ + if (r->deny_n == 0 && r->allow_n == 0 && !r->has_net && + r == &g_rules[g_rule_n - 1]) { + memset(r, 0, sizeof *r); + g_rule_n--; + } } fclose(f); } +/* ---- 策略持久化:读改写单键(只替换目标实体行,其余逐字保留)+ 原子写(watchdog 毁设置教训) ---- */ +static int policy_read_text(char *buf, int cap) +{ + int fd = open(g_net_policy, O_RDONLY); + if (fd < 0) { buf[0] = 0; return -1; } + int n = 0; + while (n < cap - 1) { + ssize_t r = read(fd, buf + n, (size_t)(cap - 1 - n)); + if (r <= 0) break; + n += (int)r; + } + close(fd); + buf[n] = 0; + return n; +} +/* 原子写:写临时文件 + rename(避免半截文件)。 */ +static int policy_write_atomic(const char *text) +{ + char tmp[192]; + snprintf(tmp, sizeof tmp, "%s.tmp", g_net_policy); + int fd = open(tmp, O_WRONLY | O_CREAT | O_TRUNC, 0644); + if (fd < 0) { + /* 尝试建目录(/data/meow/netmgrd/) */ + char dir[160]; snprintf(dir, sizeof dir, "%s", g_net_policy); + char *s = strrchr(dir, '/'); if (s) *s = 0; + mkdir(dir, 0755); + fd = open(tmp, O_WRONLY | O_CREAT | O_TRUNC, 0644); + } + if (fd < 0) return -1; + size_t tl = strlen(text); + ssize_t w = write(fd, text, tl); + close(fd); + if (w < 0 || (size_t)w != tl) { unlink(tmp); return -1; } /* 空文本 write 返回 0 == tl,视为成功 */ + if (rename(tmp, g_net_policy) < 0) { unlink(tmp); return -1; } + return 0; +} +/* 只重写 entity 的行(删旧 + 按 g_rules 的当前态重发),其余行逐字保留。 */ +static void policy_persist_entity(const char *entity) +{ + char text[2048]; + int n = policy_read_text(text, sizeof text); + char out[2048]; size_t o = 0; + char line[256]; + int start = 0; + int elen = (int)strlen(entity); + /* 复制非本实体的行 */ + while (start < n) { + int i = 0; + while (start + i < n && text[start + i] != '\n') i++; + if (i >= (int)sizeof line - 1) i = (int)sizeof line - 2; + memcpy(line, text + start, (size_t)i); line[i] = 0; + start += i; + if (start < n && text[start] == '\n') { start++; } + /* 去掉行首空白判断 */ + char *q = line; while (*q == ' ' || *q == '\t') q++; + int is_target = (strncmp(q, entity, (size_t)elen) == 0 && + (q[elen] == ' ' || q[elen] == '\t' || q[elen] == 0)); + int is_blank = (q[0] == 0); + if (is_target) continue; /* 本实体的旧行将被替换/删除 */ + if (is_blank) continue; /* 空行丢弃(避免双空行) */ + /* 注释与其它实体行逐字保留(读改写单键:只动目标实体)。 */ + int l = snprintf(out + o, sizeof out - o, "%s\n", line); + if (l > 0 && o + (size_t)l < sizeof out) o += (size_t)l; + } + /* 追加本实体当前态 */ + if (strcmp(entity, "global") == 0) { + int l = snprintf(out + o, sizeof out - o, "global log_level=%s\n", g_policy_log_level); + if (l > 0 && o + (size_t)l < sizeof out) o += (size_t)l; + } else { + rule_t *r = policy_find(entity); + if (r) { + if (r->has_net) { + int l = snprintf(out + o, sizeof out - o, "%s net=%s\n", entity, r->net_block ? "block" : "allow"); + if (l > 0 && o + (size_t)l < sizeof out) o += (size_t)l; + } + if (r->deny_n || r->allow_n) { + int l = snprintf(out + o, sizeof out - o, "%s domain=", entity); + if (l > 0 && o + (size_t)l < sizeof out) o += (size_t)l; + int first = 1; + for (int i = 0; i < r->allow_n; i++) { + int la = snprintf(out + o, sizeof out - o, "%s+%s", first ? "" : ",", r->allow[i]); + if (la > 0 && o + (size_t)la < sizeof out) o += (size_t)la; + first = 0; + } + for (int i = 0; i < r->deny_n; i++) { + int ld = snprintf(out + o, sizeof out - o, "%s-%s", first ? "" : ",", r->deny[i]); + if (ld > 0 && o + (size_t)ld < sizeof out) o += (size_t)ld; + first = 0; + } + int ln = snprintf(out + o, sizeof out - o, "\n"); + if (ln > 0 && o + (size_t)ln < sizeof out) o += (size_t)ln; + } + } + } + out[o] = 0; + policy_write_atomic(out); + rules_load(); /* 写后重载(自愈:也剔除任何被手工改回的自锁 block) */ +} + /* ---- 实体归因:pid→(app: / svc: / proc:) ---- */ static void pid_ent_put(int pid, const char *entity) { @@ -1368,7 +1533,8 @@ static void census_run(void) for (int i = 0; i < cn; i++) { cur[i].pid = 0; cur[i].entity[0] = 0; } attribute_inodes(cur, cn); for (int i = 0; i < cn; i++) { - if (cur[i].inode && !cur[i].entity[0]) snprintf(cur[i].entity, sizeof cur[i].entity, "proc:unknown"); + /* 任何未归因的连接一律落 proc:unknown(防 apps 表出现空 entity→被 strtok 当端点显示成 IP:port)。 */ + if (!cur[i].entity[0]) snprintf(cur[i].entity, sizeof cur[i].entity, "proc:unknown"); if (cur[i].inode && cur[i].remote_ip != 0) dns_cache_lookup_ip(cur[i].remote_ip, cur[i].domain, sizeof cur[i].domain); } @@ -1820,6 +1986,8 @@ static void classify_exe(const char *exe, caller_t *out) char tmp[MEOW_APP_ID_MAX]; if (strcmp(exe, "/usr/bin/meow_launcherd") == 0) { snprintf(tmp, sizeof tmp, "%s", "os.meow.launcher"); + } else if (strcmp(exe, "/usr/data/mnt/sd_0/MeowOS/opt/MeowPanel/meowpanel") == 0) { + snprintf(tmp, sizeof tmp, "%s", "os.meow.panel"); /* MeowPanel 精确登记(面板 PIN 已有门禁;dns flush 等动作需系统身份) */ } else if (strncmp(exe, "/usr/bin/meow_", 14) == 0) { size_t l = strlen(exe + 9); /* "/usr/bin/" 长 9 → 取 "meow_xyz" */ if (l >= sizeof tmp) l = sizeof tmp - 1; @@ -1994,9 +2162,16 @@ static void wifi_connect(const char *arg, ctl_result_t *r) snprintf(sel, sizeof sel, "PATH=/bin:/sbin:/usr/bin:/usr/sbin %s select_network %d 2>/dev/null", g_wpa_cli, id); run_cmd(out, sizeof out, RUNCMD_TMO_MS, sel); + /* 期3:MeowOS 模式 connect 后持久化 wpa_supplicant.conf(HibyOS 只读由服务端门控,这里仅 MeowOS 生效)。 */ + if (g_mode_meow) { + char sc[160]; + snprintf(sc, sizeof sc, "PATH=/bin:/sbin:/usr/bin:/usr/sbin %s save_config 2>/dev/null", g_wpa_cli); + run_cmd(out, sizeof out, RUNCMD_TMO_MS, sc); + } } char msg[140]; - snprintf(msg, sizeof msg, "connect: ssid=%s network_id=%d (已 enable+select)", tmp_ssid, id); + snprintf(msg, sizeof msg, "connect: ssid=%s network_id=%d (已 enable+select%s)", tmp_ssid, id, + g_mode_meow ? "+save_config" : ""); ctl_sets(r, MEOW_OK, msg); } @@ -2129,6 +2304,116 @@ static void bt_ctl_execute(const char *cmd, const char *arg, ctl_result_t *r) } } +/* ---------------- 期3 策略命令(IPC 0xEA / CLI policy 共用;写级已在 handle_conn 鉴权) ---------------- */ +/* 从 g_rules 移除某实体(shift 数组),返回 0=存在已删。 */ +static int policy_remove(const char *entity) +{ + for (int i = 0; i < g_rule_n; i++) { + if (strcmp(g_rules[i].entity, entity) == 0) { + for (int j = i; j < g_rule_n - 1; j++) g_rules[j] = g_rules[j + 1]; + memset(&g_rules[g_rule_n - 1], 0, sizeof(rule_t)); + g_rule_n--; + return 0; + } + } + return -1; +} +/* 输出某实体当前行;无规则输出 (none)。 */ +static void policy_print_entity(const rule_t *r, char *out, size_t cap) +{ + out[0] = 0; + if (!r) { snprintf(out, cap, "(none)\n"); return; } + size_t o = 0; + int l = snprintf(out + o, cap - o, "%s ", r->entity); + if (l > 0 && o + (size_t)l < cap) o += (size_t)l; + int any = 0; + if (r->has_net) { l = snprintf(out + o, cap - o, "net=%s ", r->net_block ? "block" : "allow"); if (l > 0 && o + (size_t)l < cap) o += (size_t)l; any = 1; } + if (r->deny_n || r->allow_n) { + l = snprintf(out + o, cap - o, "domain="); if (l > 0 && o + (size_t)l < cap) o += (size_t)l; + int first = 1; + for (int i = 0; i < r->allow_n; i++) { int la = snprintf(out + o, cap - o, "%s+%s", first ? "" : ",", r->allow[i]); if (la > 0 && o + (size_t)la < cap) o += (size_t)la; first = 0; } + for (int i = 0; i < r->deny_n; i++) { int ld = snprintf(out + o, cap - o, "%s-%s", first ? "" : ",", r->deny[i]); if (ld > 0 && o + (size_t)ld < cap) o += (size_t)ld; first = 0; } + any = 1; + } + if (!any) { l = snprintf(out + o, cap - o, "(allow)"); if (l > 0 && o + (size_t)l < cap) o += (size_t)l; } + l = snprintf(out + o, cap - o, "\n"); if (l > 0 && o + (size_t)l < cap) o += (size_t)l; +} + +static int policy_cmd(int op, const char *entity, const char *arg, char *out, size_t cap) +{ + out[0] = 0; + if (op == NET_POLICY_SHOW) { + snprintf(out, cap, "# 策略(NETMGR_DESIGN §6)log_level=%s enforce=dns_only(SOCK_DESTROY 在本内核为 no-op)\n", + g_policy_log_level); + size_t o = strlen(out); + if (entity && entity[0]) { + rule_t *r = policy_find(entity); + policy_print_entity(r, out + o, cap - o); + } else { + for (int i = 0; i < g_rule_n; i++) { + char l[160]; policy_print_entity(&g_rules[i], l, sizeof l); + int n = snprintf(out + o, cap - o, "%s", l); + if (n > 0 && o + (size_t)n < cap) o += (size_t)n; + } + } + return MEOW_OK; + } + if (op == NET_POLICY_SET_NET) { + if (!entity || !entity[0] || !arg || (strcmp(arg, "allow") != 0 && strcmp(arg, "block") != 0)) + { snprintf(out, cap, "policy set 需 allow|block\n"); return MEOW_ERR_INVAL; } + if (strcmp(arg, "block") == 0 && is_self_lock(entity)) { + snprintf(out, cap, "policy: %s 是防自锁实体(SSH/WiFi/自身命根),拒绝置 block(NETMGR_DESIGN §14 红线)\n", entity); + net_log("warn", "policy", "self-lock entity %s tried block — 拒", entity); + return MEOW_ERR_PERM; + } + rule_t *r = policy_find(entity); + if (!r) { + if (g_rule_n >= RULE_ENT_MAX) { snprintf(out, cap, "policy: 规则槽满\n"); return MEOW_ERR_NOMEM; } + r = &g_rules[g_rule_n++]; memset(r, 0, sizeof *r); + snprintf(r->entity, sizeof r->entity, "%s", entity); + } + r->net_block = strcmp(arg, "block") == 0; + r->has_net = 1; + policy_persist_entity(entity); + net_log("info", "policy", "set %s net=%s", entity, arg); + snprintf(out, cap, "policy set %s net=%s ok\n", entity, arg); + return MEOW_OK; + } + if (op == NET_POLICY_SET_DOMAIN) { + if (!entity || !entity[0] || !arg || (arg[0] != '+' && arg[0] != '-') || arg[1] == 0) + { snprintf(out, cap, "policy domain 需 +host|-host\n"); return MEOW_ERR_INVAL; } + rule_t *r = policy_find(entity); + if (!r) { + if (g_rule_n >= RULE_ENT_MAX) { snprintf(out, cap, "policy: 规则槽满\n"); return MEOW_ERR_NOMEM; } + r = &g_rules[g_rule_n++]; memset(r, 0, sizeof *r); + snprintf(r->entity, sizeof r->entity, "%s", entity); + } + if (arg[0] == '+') { + if (r->allow_n < RULE_HOST_MAX) { snprintf(r->allow[r->allow_n++], 48, "%s", arg + 1); snprintf(out, cap, "policy domain %s +%s ok\n", entity, arg + 1); } + else { snprintf(out, cap, "policy: allow 槽满\n"); return MEOW_ERR_NOMEM; } + } else { + if (r->deny_n < RULE_HOST_MAX) { snprintf(r->deny[r->deny_n++], 48, "%s", arg + 1); snprintf(out, cap, "policy domain %s -%s ok\n", entity, arg + 1); } + else { snprintf(out, cap, "policy: deny 槽满\n"); return MEOW_ERR_NOMEM; } + } + policy_persist_entity(entity); + net_log("info", "policy", "domain %s %s", entity, arg); + return MEOW_OK; + } + if (op == NET_POLICY_DEL) { + if (!entity || !entity[0]) { snprintf(out, cap, "policy del 需 \n"); return MEOW_ERR_INVAL; } + if (policy_remove(entity) == 0) { + policy_persist_entity(entity); + net_log("info", "policy", "del %s", entity); + snprintf(out, cap, "policy del %s ok\n", entity); + } else { + snprintf(out, cap, "policy del %s: 无此实体\n", entity); + } + return MEOW_OK; + } + snprintf(out, cap, "policy: 未知 op\n"); + return MEOW_ERR_INVAL; +} + /* ---------------- 处理单条连接 ---------------- */ static void handle_conn(int c) { @@ -2263,7 +2548,35 @@ static void handle_conn(int c) send_frame(c, MSG_NET_DNS_RESULT, req_id, &res, (uint32_t)(8 + tl + 1)); continue; } - send_err(c, req_id, MEOW_ERR_INVAL, "unknown type (期1 STATUS/IFACE/WIFI_CTL/BT_CTL; 期2 CONNS/DNS_CTL)"); + if (type == MSG_NET_POLICY) { + m_net_policy_t q; + memset(&q, 0, sizeof q); + if (rlen > sizeof q) rlen = sizeof q; + memcpy(&q, payload, rlen); + int is_write = (q.op != NET_POLICY_SHOW); /* SHOW=读级;SET_NET/SET_DOMAIN/DEL=写级 */ + m_net_policy_result_t res; + memset(&res, 0, sizeof res); + int rc = MEOW_OK; + if (is_write && !is_sys_identity(&caller)) { + rc = MEOW_ERR_PERM; + snprintf(res.text, sizeof res.text, "permission denied (policy write needs system identity)"); + net_log("warn", "write", "denied policy op=%d entity=%s caller_kind=%d uid=%d", + (int)q.op, q.entity, (int)caller.kind, (int)caller.uid); + } else if (is_write && !g_mode_meow) { + rc = MEOW_ERR_PERM; + snprintf(res.text, sizeof res.text, "readonly (HibyOS mode): policy write denied"); + net_log("warn", "write", "denied policy op=%d (HibyOS readonly)", (int)q.op); + } else { + rc = policy_cmd((int)q.op, q.entity, q.arg, res.text, sizeof res.text); + } + res.code = (uint32_t)rc; + size_t tl = strlen(res.text); + if (tl > sizeof res.text - 1) tl = sizeof res.text - 1; + res.text_len = (uint16_t)tl; + send_frame(c, MSG_NET_POLICY_RESULT, req_id, &res, (uint32_t)(8 + tl + 1)); + continue; + } + send_err(c, req_id, MEOW_ERR_INVAL, "unknown type (期1 STATUS/IFACE/WIFI_CTL/BT_CTL; 期2 CONNS/DNS_CTL; 期3 POLICY)"); break; } } @@ -2680,11 +2993,32 @@ static int cli_dns(const char *cmd) return code == MEOW_OK ? 0 : 1; } +/* 期3 policy:show/set net/domain/del(IPC 0xEA;写级在服务端鉴权系统身份)。 */ +static int cli_policy(int op, const char *entity, const char *arg) +{ + m_net_policy_t q; + memset(&q, 0, sizeof q); + q.op = (uint32_t)op; + if (entity) snprintf(q.entity, sizeof q.entity, "%s", entity); + if (arg) snprintf(q.arg, sizeof q.arg, "%s", arg); + char out[MEOW_IPC_MAX - 8]; + int fd = ipc_connect(); + if (fd < 0) { fprintf(stderr, "meow_net 守护不可达(%s)\n", g_sock); return 1; } + uint16_t rt; uint32_t code; + int rc = ipc_xchg(fd, MSG_NET_POLICY, &q, sizeof q, &rt, &code, out, sizeof out); + close(fd); + if (rc != 0) { fprintf(stderr, "meow_net policy: IPC 往返失败\n"); return 1; } + printf("%s", out); + return code == MEOW_OK ? 0 : 1; +} + static const char *usage(void) { return "status | iface [name] | wifi scan|networks|connect [,psk]|disconnect|on|off" " | bt status|on|off|paired | rfkill [ ] | udhcpc renew|release [if]" - " | apps | conns [entity] | top | dns status|stats|flush | help"; + " | apps | conns [entity] | top | dns status|stats|flush" + " | policy show [entity] | policy set allow|block | policy domain +host|-host | policy del " + " | help"; } static int cli_help(void) @@ -2700,6 +3034,7 @@ static int cli_run(int n, char **v) const char *cmd = v[0]; const char *arg = (n > 1) ? v[1] : NULL; const char *arg2 = (n > 2) ? v[2] : NULL; + const char *arg3 = (n > 3) ? v[3] : NULL; if (!strcmp(cmd, "status")) return cli_status(); if (!strcmp(cmd, "iface")) return cli_iface(arg); if (!strcmp(cmd, "help") || !strcmp(cmd, "-h") || !strcmp(cmd, "--help")) return cli_help(); @@ -2710,6 +3045,24 @@ static int cli_run(int n, char **v) if (!arg) { fprintf(stderr, "dns 子命令缺失(status|stats|flush)\n"); return 1; } return cli_dns(arg); } + if (!strcmp(cmd, "policy")) { + if (!arg) { fprintf(stderr, "policy 子命令缺失(show [entity] | set allow|block | domain +host|-host | del )\n"); return 1; } + if (!strcmp(arg, "show")) return cli_policy(NET_POLICY_SHOW, arg2, NULL); + if (!strcmp(arg, "set")) { + if (!arg2 || !arg3) { fprintf(stderr, "policy set 需 allow|block\n"); return 1; } + return cli_policy(NET_POLICY_SET_NET, arg2, arg3); + } + if (!strcmp(arg, "domain")) { + if (!arg2 || !arg3) { fprintf(stderr, "policy domain 需 +host|-host\n"); return 1; } + return cli_policy(NET_POLICY_SET_DOMAIN, arg2, arg3); + } + if (!strcmp(arg, "del")) { + if (!arg2) { fprintf(stderr, "policy del 需 \n"); return 1; } + return cli_policy(NET_POLICY_DEL, arg2, NULL); + } + fprintf(stderr, "policy 子命令未知(%s)\n", arg); + return 1; + } if (!strcmp(cmd, "wifi")) { if (!arg) { fprintf(stderr, "wifi 子命令缺失(%s)\n", usage()); return 1; } if (!strcmp(arg, "on") || !strcmp(arg, "off")) return cli_cmd_result(MSG_NET_WIFI_CTL, arg, NULL); diff --git a/patch_v2/meow_netmgrd/meow_netmgrd_host b/patch_v2/meow_netmgrd/meow_netmgrd_host index f4cf43ca7325c36884c3db1fa2e08a92feb590d3..d0e4d39e90dd6aa01290853f26de862fa7ad58f0 100755 GIT binary patch literal 82080 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 Lb21`iT#Ek><0R=7 delta 33457 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 Ee=o;`BLDyZ diff --git a/patch_v2/meow_netmgrd/netmgrd_authtest b/patch_v2/meow_netmgrd/netmgrd_authtest index 52216cbd2e22a60fb155904592c5ec926a8a840a..7e0530cb4227ad183ad11fc7b0fc39e32cc7cfe0 100755 GIT binary patch literal 150136 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�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 diff --git a/patch_v2/meow_netmgrd/sockdestroy_probe.c b/patch_v2/meow_netmgrd/sockdestroy_probe.c new file mode 100644 index 0000000..8ec7cef --- /dev/null +++ b/patch_v2/meow_netmgrd/sockdestroy_probe.c @@ -0,0 +1,178 @@ +/* sockdestroy_probe.c — inet_diag SOCK_DESTROY 内核可用性探针(dev 工具,不入固件/不部署)。 + * + * 目的:内核 4.4(R3 Pro II)是否支持 netlink SOCK_DESTROY 连接级杀 socket。NETWORK_HW_FACTS §5 待验证项。 + * 安全:只对「本进程自建」的 127.0.0.1 临时 TCP 连接发 SOCK_DESTROY,绝不动设备现有连接。 + * + * 方法:建 loopback TCP 服务端+客户端,accept 得已连接 socket。用 inet_diag DUMP(SOCK_DIAG_BY_FAMILY) + * 列出全部 TCP,按 tuple(sport/dport/src/dst)匹配出自建 socket 的 idiag_cookie(与 ss -K 同法—— + * 无需 SO_COOKIE);再发 SOCK_DESTROY(tuple + dump cookie),对 accept 出的 socket recv 判是否已杀。 + * 输出:SD_DUMP_DUMPED= SD_MATCH=<0|1> SD_DESTROY_RC= SD_DESTROYED=<0|1> + * 结论:SD_DESTROY_RC==0 && SD_DESTROYED==1 → 内核支持;-EPERM → 需 root/CAP_NET_ADMIN;-EOPNOTSUPP/ENOENT → 不支持。 + * + * 用法:交叉编译后 scp 到设备 /usr/data 前台跑(root):`./sockdestroy_probe`(无副作用残留)。 + */ +#define _GNU_SOURCE +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static int nl = -1; + +static void open_nl(void) +{ + nl = socket(AF_NETLINK, SOCK_RAW, NETLINK_SOCK_DIAG); + if (nl < 0) { perror("netlink socket"); exit(2); } + struct sockaddr_nl sa; memset(&sa, 0, sizeof sa); sa.nl_family = AF_NETLINK; + if (bind(nl, (struct sockaddr *)&sa, sizeof sa) < 0) { perror("bind"); exit(2); } +} + +/* dump 全部 TCP,找匹配 tuple 的卡片,取回 cookie。返回 0=找到。 */ +static int diag_find_cookie(uint16_t sport, uint16_t dport, uint32_t sip, uint32_t dip, + uint32_t *cookie_c0, uint32_t *cookie_c1) +{ + struct { + struct nlmsghdr nlh; + struct inet_diag_req_v2 req; + } r; + memset(&r, 0, sizeof r); + r.nlh.nlmsg_len = sizeof r; + r.nlh.nlmsg_type = SOCK_DIAG_BY_FAMILY; + r.nlh.nlmsg_flags = NLM_F_REQUEST | NLM_F_DUMP; + r.req.sdiag_family = AF_INET; + r.req.sdiag_protocol = IPPROTO_TCP; + r.req.idiag_states = 0xFFFFFFFF; + struct sockaddr_nl sa; memset(&sa, 0, sizeof sa); sa.nl_family = AF_NETLINK; + if (sendto(nl, &r, sizeof r, 0, (struct sockaddr *)&sa, sizeof sa) < 0) return -1; + + struct timeval tv = { 2, 0 }; + setsockopt(nl, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof tv); + int dumped = 0; + for (;;) { + char buf[8192]; + ssize_t n = recv(nl, buf, sizeof buf, 0); + if (n <= 0) break; + for (struct nlmsghdr *h = (struct nlmsghdr *)buf; NLMSG_OK(h, (unsigned)n); h = NLMSG_NEXT(h, n)) { + if (h->nlmsg_type == NLMSG_DONE) goto done; + if (h->nlmsg_type == NLMSG_ERROR) { int e = ((struct nlmsgerr *)NLMSG_DATA(h))->error; if (e) return e; continue; } + if (h->nlmsg_type == SOCK_DIAG_BY_FAMILY) { + struct inet_diag_msg *m = (struct inet_diag_msg *)NLMSG_DATA(h); + dumped++; + if (ntohs(m->id.idiag_sport) == sport && ntohs(m->id.idiag_dport) == dport && + (ntohl(m->id.idiag_src[0]) == sip) && (ntohl(m->id.idiag_dst[0]) == dip)) { + *cookie_c0 = m->id.idiag_cookie[0]; + *cookie_c1 = m->id.idiag_cookie[1]; + printf("SD_DUMPED=%d SD_MATCH=1\n", dumped); + return 0; + } + } + } + } +done: + printf("SD_DUMPED=%d SD_MATCH=0\n", dumped); + return -1; +} + +static int sd_try(uint16_t sport, uint16_t dport, uint32_t sip, uint32_t dip, + uint32_t c0, uint32_t c1, int with_cookie) +{ + struct { + struct nlmsghdr nlh; + struct inet_diag_req_v2 req; + } r; + memset(&r, 0, sizeof r); + r.nlh.nlmsg_len = sizeof r; + r.nlh.nlmsg_type = SOCK_DESTROY; + r.nlh.nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK; + r.req.sdiag_family = AF_INET; + r.req.sdiag_protocol = IPPROTO_TCP; + r.req.idiag_states = 0xFFFFFFFF; + r.req.id.idiag_sport = htons(sport); + r.req.id.idiag_dport = htons(dport); + r.req.id.idiag_src[0] = htonl(sip); + r.req.id.idiag_dst[0] = htonl(dip); + r.req.id.idiag_cookie[0] = with_cookie ? c0 : 0; + r.req.id.idiag_cookie[1] = with_cookie ? c1 : 0; + struct sockaddr_nl sa; memset(&sa, 0, sizeof sa); sa.nl_family = AF_NETLINK; + if (sendto(nl, &r, sizeof r, 0, (struct sockaddr *)&sa, sizeof sa) < 0) return -errno; + char buf[512]; + struct timeval tv = { 0, 300000 }; + setsockopt(nl, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof tv); + ssize_t rr = recv(nl, buf, sizeof buf, 0); + if (rr < 0) return -errno; + struct nlmsghdr *h = (struct nlmsghdr *)buf; + if (h->nlmsg_type == NLMSG_ERROR) return ((struct nlmsgerr *)NLMSG_DATA(h))->error; + return 0; +} + +static int check_destroyed(int fd) +{ + fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) | O_NONBLOCK); + char b[16]; + ssize_t r = recv(fd, b, sizeof b, 0); + if (r == 0) return 1; + if (r < 0) return (errno == ECONNRESET || errno == ECONNABORTED) ? 1 : 0; + return 0; +} + +int main(void) +{ + int lfd = socket(AF_INET, SOCK_STREAM, 0); + int cfd = socket(AF_INET, SOCK_STREAM, 0); + struct sockaddr_in addr; + memset(&addr, 0, sizeof addr); + addr.sin_family = AF_INET; + addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + addr.sin_port = htons(0); + int one = 1; + setsockopt(lfd, SOL_SOCKET, SO_REUSEADDR, &one, sizeof one); + bind(lfd, (struct sockaddr *)&addr, sizeof addr); + listen(lfd, 8); + socklen_t alen = sizeof addr; + getsockname(lfd, (struct sockaddr *)&addr, &alen); + connect(cfd, (struct sockaddr *)&addr, sizeof addr); + int sfd = accept(lfd, NULL, NULL); + struct sockaddr_in sa, sc; + socklen_t sla = sizeof sa, slc = sizeof sc; + getsockname(sfd, (struct sockaddr *)&sa, &sla); + getpeername(sfd, (struct sockaddr *)&sc, &slc); + uint16_t sport = ntohs(sa.sin_port); + uint16_t dport = ntohs(sc.sin_port); + uint32_t sip = ntohl(sa.sin_addr.s_addr); + uint32_t dip = ntohl(sc.sin_addr.s_addr); + open_nl(); + + uint32_t c0 = 0, c1 = 0; + int found = (diag_find_cookie(sport, dport, sip, dip, &c0, &c1) == 0); + if (found) { + /* 主测靠谱路径:cookie 版(与 ss -K 同法;无需 SO_COOKIE)。 */ + int rc_c = sd_try(sport, dport, sip, dip, c0, c1, 1); + int dead_c = check_destroyed(sfd); + printf("SD_DESTROY(cookie) rc=%d destroyed=%d\n", rc_c, dead_c); + if (dead_c) { + printf("CONCL=SOCK_DESTROY_SUPPORTED\n"); + } else if (rc_c == -EPERM) { + printf("CONCL=SOCK_DESTROY_NEED_CAP(rc=-EPERM; 需 root/CAP_NET_ADMIN)\n"); + } else if (rc_c == 0) { + printf("CONCL=SOCK_DESTROY_NOOP(rc=0 但未杀; 内核未真正销毁——视为不可用)\n"); + } else { + printf("CONCL=SOCK_DESTROY_UNSUPPORTED(rc=%d)\n", rc_c); + } + /* 附带:tuple+cookie=0 结果(诊断参考) */ + int rc_t = sd_try(sport, dport, sip, dip, c0, c1, 0); + printf("SD_DESTROY(tuple,cookie=0) rc=%d destroyed=%d\n", rc_t, check_destroyed(sfd)); + } else { + printf("CONCL=SOCK_DESTROY_UNKNOWN(dump no match)\n"); + } + close(cfd); close(sfd); close(lfd); + return 0; +} diff --git a/patch_v2/meow_netmgrd/test_netmgrd.sh b/patch_v2/meow_netmgrd/test_netmgrd.sh index 0cd2bd6..3e6ba5d 100755 --- a/patch_v2/meow_netmgrd/test_netmgrd.sh +++ b/patch_v2/meow_netmgrd/test_netmgrd.sh @@ -43,6 +43,7 @@ cat > "$T/tcp" <<'EOF' 0: 32C14E0A:5137 0905CD8C:01BB 01 00000000:00000000 00:00000000 00000000 1000 0 12345 1 0 0 10 0 1: 32C14E0A:4F32 32C34E0A:01BB 01 00000000:00000000 00:00000000 00000000 1000 0 12346 1 0 0 10 0 2: 32C14E0A:0A00 00000000:0000 07 00000000:00000000 00:00000000 00000000 1000 0 67890 1 0 0 10 0 + 3: 32C14E0A:4F33 32C34E0A:01BB 01 00000000:00000000 00:00000000 00000000 1000 0 0 1 0 0 10 0 EOF cat > "$T/udp" <<'EOF' sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode @@ -232,6 +233,25 @@ ck T13c "IFACE_ALL VALID" "$JOUT" ck T13d "IFACE_WLAN VALID" "$JOUT" echo "$JOUT" | grep -q "INVALID" && { FAIL=$((FAIL+1)); echo "FAIL T13e 存在无效 JSON"; } || { PASS=$((PASS+1)); echo "PASS T13e no INVALID"; } +# ---- T15: apps 无原始端点(tcp 桩含 inode=0 未归因 → proc:unknown,绝不落成 IP:port entity)---- +OUT=$(env $ENVS $Q "$T/meow_net" conns 2>&1) +ck T15a "10.78.195.50:443" "$OUT" # inode=0 的连接仍在表中 +OUT=$(env $ENVS $Q "$T/meow_net" apps 2>&1) +ck T15b "proc:unknown" "$OUT" +echo "$OUT" | grep -qE '^[0-9][0-9.]*:' && { FAIL=$((FAIL+1)); echo "FAIL T15c apps 出现原始端点行"; } || { PASS=$((PASS+1)); echo "PASS T15c no raw endpoint row"; } + +# ---- T16: policy(读级 show 任意调用者;写级仅系统身份 → 宿主 CLI=CALL_OTHER 拒)---- +OUT=$(env $ENVS $Q "$T/meow_net" policy show 2>&1) +ck T16a "app:dev.player.ncm" "$OUT" +ck T16b "domain=" "$OUT" +OUT=$(env $ENVS $Q "$T/meow_net" policy set app:dev.player.ncm allow 2>&1); RC=$? +ck T16c "permission denied" "$OUT" +[ $RC -eq 1 ] && { PASS=$((PASS+1)); echo "PASS T16d rc=1"; } || { FAIL=$((FAIL+1)); echo "FAIL T16d rc=$RC"; } +OUT=$(env $ENVS $Q "$T/meow_net" policy domain app:dev.player.ncm +x 2>&1) +ck T16e "permission denied" "$OUT" +OUT=$(env $ENVS $Q "$T/meow_net" policy del app:dev.player.ncm 2>&1) +ck T16f "permission denied" "$OUT" + # ---- T14: DNS 代理 wire 实测(守护 B:高端口 + 桩上游 + 全局 deny;测 deny/forward/cache)---- HOSTIP=$(hostname -I 2>/dev/null | awk '{print $1}') [ -n "$HOSTIP" ] || HOSTIP="127.0.0.1" diff --git a/patch_v2/meow_netmgrd/test_netmgrd_p2 b/patch_v2/meow_netmgrd/test_netmgrd_p2 index b0e1c32d4951bd0bc1eb73d4a6b5fe26c7cc8206..0a9ce02b59cb13ee20e9aee2070d248caff4aa9e 100755 GIT binary patch literal 148248 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

`}I5e4)0IQkUv(zdqBPKx+|Ye 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 diff --git a/patch_v2/meow_netmgrd/test_netmgrd_p3 b/patch_v2/meow_netmgrd/test_netmgrd_p3 new file mode 100755 index 0000000000000000000000000000000000000000..2a9f51e37aa06738156e13561629fa237f35ef13 GIT binary patch literal 147936 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 literal 0 HcmV?d00001 diff --git a/patch_v2/meow_netmgrd/test_netmgrd_p3.c b/patch_v2/meow_netmgrd/test_netmgrd_p3.c new file mode 100644 index 0000000..c6b8258 --- /dev/null +++ b/patch_v2/meow_netmgrd/test_netmgrd_p3.c @@ -0,0 +1,119 @@ +/* test_netmgrd_p3.c — meow_netmgrd 期3 管控层 纯逻辑宿主自测(本程序非生产代码)。 + * + * 通过 #include 生产源,同一 TU 直接访问 FILE-STATIC:policy_cmd / rules_load / policy_persist_entity / + * policy_net_blocked / dns_query_domain_denied / is_self_lock / policy_find / g_policy_log_level。 + * 覆盖:policy set net(per-entity 持久化读改写)、防自锁拒绝 + 加载校验剔除、domain 白/黑、 + * net=block → DNS 层全量 deny、del、global log_level、RMW 保留他行。真实 IPC 鉴权(CALL_OTHER 拒) + * 由 test_netmgrd.sh 覆盖。 + * + * 用法:cc -Wall -Wextra -I../meow_launcherd test_netmgrd_p3.c -o test_netmgrd_p3 && ./test_netmgrd_p3 + */ +#define main meow_netmgrd_prod_main_unused +#include "meow_netmgrd.c" +#undef main + +#include +#include +#include +#include +#include + +static int g_fail = 0; +#define CHECK(cond) do { if (!(cond)) { printf(" FAIL: %s (line %d)\n", #cond, __LINE__); g_fail++; } \ + else { printf(" ok : %s\n", #cond); } } while (0) +static char rd[512]; +static const char *readfile(const char *p) +{ + FILE *f = fopen(p, "r"); + if (!f) { rd[0] = 0; return rd; } + size_t n = fread(rd, 1, sizeof rd - 1, f); rd[n] = 0; fclose(f); + return rd; +} + +int main(void) +{ + static const char *T = "/tmp/nmg_p3"; + char policy[192]; + mkdir(T, 0755); + snprintf(policy, sizeof policy, "%s/policy", T); + g_net_policy[0] = 0; snprintf(g_net_policy, sizeof g_net_policy, "%s", policy); + FILE *f = fopen(policy, "w"); /* 先建空 policy 文件 */ + if (f) { fputs("# boot\n", f); fclose(f); } + + char out[512]; + int rc; + + printf("== policy_cmd SET_NET(per-entity 持久化)==\n"); + rules_load(); + CHECK(g_rule_n == 0); + rc = policy_cmd(NET_POLICY_SET_NET, "proc:thttpd", "block", out, sizeof out); + CHECK(rc == MEOW_OK); + CHECK(strstr(readfile(policy), "proc:thttpd net=block") != NULL); + CHECK(policy_net_blocked("proc:thttpd") == 1); + CHECK(policy_net_blocked("proc:unknown") == 0); /* 未显式规则 → 默认 allow */ + + printf("== 防自锁:拒绝 block + 加载校验剔除 ==\n"); + rc = policy_cmd(NET_POLICY_SET_NET, "proc:dropbear", "block", out, sizeof out); + CHECK(rc == MEOW_ERR_PERM); + CHECK(strstr(out, "防自锁") != NULL); + CHECK(policy_net_blocked("proc:dropbear") == 0); + CHECK(policy_net_blocked("svc:meow_netmgrd") == 0); + /* 手工改坏文件塞入 dropbear net=block → 加载校验剔除 */ + f = fopen(policy, "w"); + if (f) { fputs("proc:dropbear net=block\nproc:thttpd net=block\n", f); fclose(f); } + rules_load(); + CHECK(policy_net_blocked("proc:dropbear") == 0); + CHECK(policy_net_blocked("proc:thttpd") == 1); + + printf("== policy SET_DOMAIN(白/黑;allow 覆盖)+ net=block → DNS 全量 deny ==\n"); + rc = policy_cmd(NET_POLICY_SET_DOMAIN, "proc:web", "+music.163.com", out, sizeof out); + CHECK(rc == MEOW_OK); + rc = policy_cmd(NET_POLICY_SET_DOMAIN, "proc:web", "-ads.example.com", out, sizeof out); + CHECK(rc == MEOW_OK); + CHECK(strstr(readfile(policy), "proc:web domain=+music.163.com,-ads.example.com") != NULL); + CHECK(dns_query_domain_denied("proc:web", "music.163.com") == 0); /* 白名单允许 */ + CHECK(dns_query_domain_denied("proc:web", "p.music.163.com") == 0); /* 子域也允许 */ + CHECK(dns_query_domain_denied("proc:web", "ads.example.com") == 1); /* 黑名单拒绝 */ + CHECK(dns_query_domain_denied("proc:web", "other.com") == 0); + /* net=block 的实体 → DNS 全量 deny(即使白名单);且已有 domain 规则的实体被 block 后同样全 deny */ + rc = policy_cmd(NET_POLICY_SET_NET, "proc:web", "block", out, sizeof out); + CHECK(rc == MEOW_OK); + CHECK(dns_query_domain_denied("proc:web", "music.163.com") == 1); /* block 覆盖白名单 */ + rc = policy_cmd(NET_POLICY_SET_NET, "app:dev.player.ncm", "block", out, sizeof out); + CHECK(rc == MEOW_OK); + CHECK(dns_query_domain_denied("app:dev.player.ncm", "music.163.com") == 1); + + printf("== del 移除实体(RMW 保留其它行)==\n"); + rc = policy_cmd(NET_POLICY_DEL, "proc:thttpd", NULL, out, sizeof out); + CHECK(rc == MEOW_OK); + CHECK(strstr(readfile(policy), "proc:thttpd") == NULL); + CHECK(strstr(readfile(policy), "app:dev.player.ncm net=block") != NULL); /* 其它实体行保留 */ + /* RMW 保留注释/无关行(写回前 seed 应有 # 头) */ + f = fopen(policy, "w"); + if (f) { fputs("# commentary\nproc:thttpd net=block\napp:dev.player.ncm domain=-tracker.net\n", f); fclose(f); } + rules_load(); + rc = policy_cmd(NET_POLICY_SET_NET, "app:dev.player.ncm", "block", out, sizeof out); + CHECK(rc == MEOW_OK); + CHECK(strstr(readfile(policy), "# commentary") != NULL); + CHECK(strstr(readfile(policy), "app:dev.player.ncm domain=-tracker.net") != NULL); /* domain 行保留 */ + CHECK(strstr(readfile(policy), "app:dev.player.ncm net=block") != NULL); + + printf("== global log_level ==\n"); + f = fopen(policy, "w"); + if (f) { fputs("global log_level=debug\n", f); fclose(f); } + rules_load(); + CHECK(strcmp(g_policy_log_level, "debug") == 0); + + printf("== del 到空文件(write 0 字节场景)==\n"); + f = fopen(policy, "w"); + if (f) { fputs("proc:thttpd net=block\n", f); fclose(f); } + rules_load(); + rc = policy_cmd(NET_POLICY_DEL, "proc:thttpd", NULL, out, sizeof out); + CHECK(rc == MEOW_OK); + CHECK(strstr(readfile(policy), "proc:thttpd") == NULL); /* 文件已无该实体(可为空) */ + CHECK(g_rule_n == 0); + + if (g_fail) { printf("\nNETMGR P3 TEST: %d FAIL\n", g_fail); return 1; } + printf("\nNETMGR P3 TEST: ALL PASS\n"); + return 0; +}