Реализован production-hardening по fix1: env/reconfigure, IPv4-only, TLS, secrets, firewall, docs
This commit is contained in:
@@ -21,10 +21,19 @@
|
||||
|
||||
Базовые требования:
|
||||
- отдельный unit `hy2xs-admin.service`
|
||||
- запуск от `User=hy2xs-admin`, не от root
|
||||
- отдельный install dir
|
||||
- отдельный data dir
|
||||
- отдельный жизненный цикл от Hysteria
|
||||
|
||||
Рекомендуемый hardening:
|
||||
- `NoNewPrivileges=true`
|
||||
- `PrivateTmp=true`
|
||||
- `ProtectHome=true`
|
||||
- `ProtectSystem=strict`
|
||||
- `ReadWritePaths=/var/lib/hy2xs-admin /var/log/hy2xs`
|
||||
- `RestrictAddressFamilies=AF_INET AF_UNIX`
|
||||
|
||||
Важно:
|
||||
- HY2XS admin не должен запускаться как часть unit Hysteria
|
||||
- unit-файлы не должны быть склеены
|
||||
@@ -36,14 +45,21 @@
|
||||
- TCP-порт SSH
|
||||
- established/related traffic
|
||||
|
||||
IPv4-only policy:
|
||||
- использовать `table ip`, а не `table inet`;
|
||||
- IPv6 правила не добавлять;
|
||||
- UI-порт разрешать только с локального bind-host.
|
||||
|
||||
После staged-проверки можно включать default policy `drop`.
|
||||
|
||||
## Порядок применения
|
||||
|
||||
1. Добавить allow-правила.
|
||||
2. Проверить, что SSH-сессия не теряется.
|
||||
3. Проверить listen Hysteria-порта.
|
||||
4. Только потом затягивать policy.
|
||||
1. Подготовить candidate-файл (`/etc/nftables.d/hy2xs.nft`).
|
||||
2. Проверить `nft -c -f`.
|
||||
3. Создать rollback timer.
|
||||
4. Применить candidate и проверить SSH/Hysteria/UI.
|
||||
5. При успехе отменить rollback timer.
|
||||
6. При провале — rollback.
|
||||
|
||||
## Что не делаем
|
||||
|
||||
|
||||
Reference in New Issue
Block a user