fix(fix3): runtime env hardening and public endpoint source-of-truth
This commit is contained in:
@@ -68,6 +68,7 @@ Hysteria2 — основной транспортный компонент се
|
||||
|
||||
Инварианты:
|
||||
- `acme` -> только `acme` block в конфиге;
|
||||
- `acme` block обязан содержать `type: http|tls|dns` из runtime env (`HY2XS_ACME_TYPE`);
|
||||
- `file` -> только `tls.cert`/`tls.key` block;
|
||||
- `self_signed_dev` -> только dev сценарии.
|
||||
|
||||
@@ -111,3 +112,4 @@ Hysteria2 — основной транспортный компонент се
|
||||
7. bundled UI работает поверх актуального состояния сервера
|
||||
8. `trafficStats.secret` отдельный от `JWT_SECRET`
|
||||
9. IPv6 listen не используется
|
||||
10. публичные клиентские endpoint/URL берутся из `HY2XS_PUBLIC_HOST` + `HY2XS_PUBLIC_PORT`, а не из `listen`/request-host
|
||||
|
||||
@@ -35,6 +35,10 @@
|
||||
|
||||
В клиентской части используется только `public_host/public_port`.
|
||||
|
||||
В runtime-обозначениях HY2XS это эквивалентно:
|
||||
- `HY2XS_PUBLIC_HOST`
|
||||
- `HY2XS_PUBLIC_PORT`
|
||||
|
||||
Инварианты:
|
||||
- `listen` и `public endpoint` разделены;
|
||||
- в клиентских URL не используется `0.0.0.0`;
|
||||
|
||||
@@ -47,6 +47,8 @@
|
||||
12. bootstrap admin secret существует и имеет `0600`
|
||||
13. `trafficStats` API: корректный secret принимает запрос, неверный secret отклоняется
|
||||
14. TLS mode в `config.yaml` соответствует runtime env (`acme|file|self_signed_dev`)
|
||||
15. при `HY2XS_TLS_MODE=acme` в `config.yaml` выставлен `acme.type` из `HY2XS_ACME_TYPE`
|
||||
16. subscribe/node URL в API/QR формируются по `HY2XS_PUBLIC_HOST` + `HY2XS_PUBLIC_PORT`
|
||||
15. `nft -c -f /etc/nftables.conf` проходит после apply
|
||||
|
||||
## D. Negative tests
|
||||
@@ -76,3 +78,4 @@
|
||||
8. Telegram/access layer не требуется для прохождения install acceptance
|
||||
9. отсутствует production path для port hopping
|
||||
10. UI не запускается от root
|
||||
11. клиентские endpoint не зависят от request `Host`/`hostname`
|
||||
|
||||
Reference in New Issue
Block a user