Linux Labs

Безопасность сервера / Ступень 7 из 10

Служба с минимальными правами

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 1 из 6 · на машине · 5 мин

Служба просит больше, чем ей нужно

Чему научишься

  • Запускать службу от отдельной учётной записи строкой User= в drop-in и проверять это по процессу.
  • Отбирать у службы доступ к файловой системе и повышение прав через ProtectSystem, ProtectHome, NoNewPrivileges.
  • Оценивать ограничения службы по systemd-analyze security и выдавать службе одну возможность вместо прав root.

Служба lab-preview отдаёт отчёты из /srv/reports по сети. Её поставили как есть, и при старте она пишет в журнал самопроверку: от кого работает и что ей доступно. Посмотри эту строку и оценку службы.

Упражнение · посмотреть

Посмотри, от кого работает lab-preview

Посмотри в журнале lab-preview строку самопроверки, затем её оценку командой systemd-analyze security.

Сначала предположи

lab-preview раздаёт готовые отчёты по сети. От какого пользователя её запустил systemd?

Теперь начни упражнение, выполни команду и сверь прогноз с выводом.

Войти и начать Машина доступна после входа
Проверь себя 1 вопрос

Служба lab-preview работает от root и читает /etc/shadow. Почему systemd запустил её так?

  • Порт 8095 выше 1024 — его открывает любой пользователь. Проверь: та же программа от обычного пользователя слушает его же.

  • Часть служб образа работает от своих пользователей. systemctl show -p User postgresql покажет не root.

  • Файлы отчётов — 644, их читает любой: ls -l /srv/reports. Права root служба получила не из-за них.

В юните нет User=, поэтому служба досталась root со всеми его правами.

Ubuntu 24.04
Загрузка…