# 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 оба нужных сервиса стартуют корректно