fix: adopt sing-box 1.14 DNS hijacking
This commit is contained in:
+31
-12
@@ -5,7 +5,8 @@
|
||||
1. Unit: URI, policy, version, renderer, redaction и metadata.
|
||||
2. Failure injection: candidate rejection, restart failure, URI/config restore,
|
||||
unmanaged config, corrupted/legacy last-good.
|
||||
3. Packaging: MPL-2.0, exact dependency, upgrade rejection и postinst guard.
|
||||
3. Packaging: MPL-2.0, exact dependency, cross-release rejection,
|
||||
same-release reinstall и postinst guard.
|
||||
4. Real binary: официальный sing-box 1.14.0 для Gecko и Salamander configs.
|
||||
5. Privileged Linux: TUN, systemd, nftables, routing и DNS.
|
||||
6. HY2XS acceptance: Gecko TCP/UDP/DNS, failures, reconnect и reboot.
|
||||
@@ -38,15 +39,33 @@ Windows — schema decoding через `format`, поскольку Windows bina
|
||||
|
||||
В disposable Incus/VM с двумя NIC проверить:
|
||||
|
||||
1. чистую установку и отказ in-place upgrade;
|
||||
2. Gecko config и отсутствие last-good после первого apply;
|
||||
3. table 2022, rule 9000/32768, marks и NFQUEUE 100;
|
||||
4. bootstrap DNS через `eth0`, DoH через `hy2-out`;
|
||||
5. TCP/UDP/DNS с workload за `eth1`;
|
||||
6. отсутствие прямого WAN при остановленном sing-box;
|
||||
7. credential failure и same-release rollback;
|
||||
8. отказ legacy/mismatched metadata;
|
||||
9. A-record change и reboot recovery.
|
||||
1. собрать package и выполнить чистую установку;
|
||||
2. повторно установить ровно 0.2.0 поверх согласованного состояния;
|
||||
3. подтвердить отказ переходов 0.1.x → 0.2.0 и другой release → 0.2.0;
|
||||
4. применить Gecko config и подтвердить отсутствие `last-good` после первого
|
||||
apply;
|
||||
5. проверить table 2022, rule 9000/32768, marks и NFQUEUE 100;
|
||||
6. до установления HY2 разрешить hostname endpoint через `bootstrap-dns` по
|
||||
`eth0`, без recursion в `172.19.0.2`;
|
||||
7. подтвердить DoH `remote-dns` через `hy2-out`;
|
||||
8. с хоста выполнить `getent hosts example.com`, `dig @8.8.8.8 example.com` и
|
||||
`dig +tcp @8.8.8.8 example.com`;
|
||||
9. повторить оба `dig` с workload за `eth1` и через `tcpdump`/nft counters
|
||||
подтвердить отсутствие реального TCP/UDP 53 через `eth0`;
|
||||
10. при наличии `systemd-resolved` проверить DNS и route-only domain `~.` для
|
||||
`tun-sb0`; отдельно повторить запуск без доступного `resolvectl`;
|
||||
11. проверить TCP/UDP и внешний VPN IP с workload за `eth1`;
|
||||
12. подтвердить отсутствие прямого WAN при остановленном sing-box;
|
||||
13. проверить credential failure и same-release rollback;
|
||||
14. проверить отказ legacy/mismatched metadata и unmanaged identical config;
|
||||
15. проверить смену A-record, reconnect, stop/start и reboot recovery;
|
||||
16. после stop убедиться в очистке sing-box nftables/resolved state, после start
|
||||
— в полном восстановлении.
|
||||
|
||||
Server-side Gecko E2E выполняет владелец HY2XS. Salamander проверяется только на
|
||||
disposable test server и не добавляется в production server configuration.
|
||||
Server-side Gecko E2E выполняется с production-compatible HY2XS. Salamander E2E
|
||||
выполняется на disposable server, явно настроенном в compatibility-режим; это не
|
||||
автоматический fallback и не default новой production-установки.
|
||||
|
||||
Platform hijack не обслуживает DNS, направленный на локальный LAN IP gateway.
|
||||
Такой сценарий допустим только после добавления отдельного DNS listener и не
|
||||
входит в acceptance версии 0.2.0.
|
||||
|
||||
Reference in New Issue
Block a user