Артефакты в системе

После apt install / dnf install на диске появляются следующие объекты:

  • /usr/bin/ololo-relay — бинарь сервиса. Владелец root:root, права 0755.
  • /lib/systemd/system/ololo-relay.service — systemd-юнит. Type=simple, запускается от пользователя ololo-relay. Владелец root:root, права 0644.
  • /etc/ololo-relay/node.yaml — конфиг узла. Помечен conffile noreplace — обновления пакета его не перетирают. Владелец root:root, права 0644.
  • /etc/ololo-relay/initial-policy.yaml.example — шаблон политики для standalone-режима или первичной настройки мастера. Владелец root:root, права 0644.
  • /var/lib/ololo-relay/ — каталог состояния: bolt-БД политики, кеши peer-токенов. Владелец ololo-relay:ololo-relay, права 0750.

Системный пользователь

Создаётся системный пользователь ololo-relay:

  • UID и GID из системного диапазона (useradd --system).
  • Без shell: /usr/sbin/nologin.
  • Домашний каталог: /var/lib/ololo-relay/.
  • Не используется ни для чего, кроме запуска сервиса.

Capabilities

Через setcap бинарю выдаются:

  • cap_net_admin — для управления TUN-устройством;
  • cap_net_bind_service — для прослушивания привилегированных портов (<1024), например, 443.

Это позволяет сервису запускаться от непривилегированного пользователя, не теряя возможности работать с сетью.

Изоляция systemd

В юнит включены ограничения:

NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
PrivateTmp=true
ReadWritePaths=/var/lib/ololo-relay
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX AF_NETLINK

Файловая система видна только на чтение, кроме /var/lib/ololo-relay/. Каталог /tmp — приватный, доступа к /home нет.

Что не делает postinstall

  • Не запускает сервис (systemctl enable / start) — конфиг должен быть отредактирован администратором; иначе сервис уйдёт в цикл перезапусков и съест место в журнале.
  • Не открывает порты в межсетевом экране — это решение администратора (зависит от выбранного порта и стека: ufw, firewalld, nftables).
  • Не создаёт TLS-сертификаты — relay предполагает, что они уже есть: от Let’s Encrypt, корпоративного CA или собственного.

Что делает postremove

  • При apt remove / dnf remove: останавливает и disable сервис.
  • При apt purge / явном удалении конфигов: удаляет /etc/ololo-relay/.
  • Никогда не удаляет: системного пользователя ololo-relay, каталог /var/lib/ololo-relay/. Эти объекты переживают обновления типа remove+install и оставляются администратору.