63 lines
2.1 KiB
Markdown
63 lines
2.1 KiB
Markdown
# systemd and firewall
|
|
|
|
## Цель документа
|
|
|
|
Зафиксировать базовый systemd/firewall слой под новую install model.
|
|
|
|
## systemd: Hysteria2
|
|
|
|
Базовые требования:
|
|
- отдельный unit `hysteria-server.service`
|
|
- отдельный пользователь `hysteria`
|
|
- автозапуск после reboot
|
|
- restart policy для падений
|
|
|
|
Базовый ExecStart:
|
|
```bash
|
|
/usr/local/bin/hysteria server -c /etc/hysteria/config.yaml
|
|
```
|
|
|
|
## systemd: HY2XS admin
|
|
|
|
Базовые требования:
|
|
- отдельный unit `hy2xs-admin.service`
|
|
- отдельный install dir
|
|
- отдельный data dir
|
|
- отдельный жизненный цикл от Hysteria
|
|
|
|
Важно:
|
|
- HY2XS admin не должен запускаться как часть unit Hysteria
|
|
- unit-файлы не должны быть склеены
|
|
|
|
## Базовая firewall-модель
|
|
|
|
Нужно разрешить:
|
|
- UDP-порт Hysteria2
|
|
- TCP-порт SSH
|
|
- established/related traffic
|
|
|
|
После staged-проверки можно включать default policy `drop`.
|
|
|
|
## Порядок применения
|
|
|
|
1. Добавить allow-правила.
|
|
2. Проверить, что SSH-сессия не теряется.
|
|
3. Проверить listen Hysteria-порта.
|
|
4. Только потом затягивать policy.
|
|
|
|
## Что не делаем
|
|
|
|
В baseline не делаем:
|
|
- port hopping
|
|
- сложную динамическую firewall-логику
|
|
- смешение UI-портов и публичного транспортного порта в один firewall-контур без правил
|
|
|
|
## Инварианты
|
|
|
|
Система считается корректной, если:
|
|
1. Hysteria и HY2XS admin работают отдельными systemd unit
|
|
2. Hysteria слушает нужный UDP-порт
|
|
3. SSH не ломается после применения firewall
|
|
4. firewall-политика не противоречит listen policy
|
|
5. после reboot оба нужных сервиса стартуют корректно
|