Linux Labs

Безопасность сервера / Итоговая лаба

Сервер к публикации готов

сложная ~60 мин
Не запущена Запускается обычно ~20 с
Сообщить о проблеме

Ситуация

node1 — новый сервер заявок helpdesk: на порту 80 стоит nginx, за ним приложение — служба lab-helpdesk. Сервер вот-вот откроют для всей сети, но проверка безопасности завернула его и прислала список замечаний:

  • вход по SSH пускают по паролю;
  • на сервер пускают root;
  • из сети видны лишние порты, помимо сайта;
  • защиты от перебора паролей нет;
  • служба приложения работает от root без каких-либо ограничений.

node1 — твой терминал. node2 — рабочая машина администратора в той же сети; с неё на node1 ходят по ключу. Команды на node2 выполняй через SSH: ssh node2 'команда' или войди в оболочку — ssh node2, назад — exit. sudo на обеих машинах работает без пароля. Другого входа на node2 нет: не закрой себе SSH и не трогай его настройки.

Задача

  1. Вход по SSH на node1 — только по ключу: учётная запись student входит с node2 своим ключом, а пароль сервер больше не предлагает.
  2. Root по SSH на node1 не входит — даже с ключом, который работал раньше, — и пароль ему не предлагается.
  3. Из сети на node1 открыты только порты 22 и 80; порты 8000 и 8080 закрыты. Правила остаются и после перезагрузки node1.
  4. Перебор паролей по SSH ловится: fail2ban работает, запускается сам и следит за входами — jail sshd активен и умеет банить.
  5. Служба lab-helpdesk работает не от root и ограничена средствами systemd (как минимум NoNewPrivileges и ProtectSystem), так что systemd-analyze security lab-helpdesk.service даёт оценку ниже 6.0. При этом сайт по-прежнему отвечает: curl http://localhost/ на node1 возвращает список заявок.

Ограничения

  • Меняй только node1. Настройки SSH, ключи и службы на node2 не трогай.
  • Правила межсетевого экрана и настройки служб должны пережить перезагрузку: храни их в файлах (/etc/...): живое состояние перезагрузку не переживёт.
  • Доступ администратора с node2 по ключу должен сохраниться — и для student, и после всех правок.

Интернета в лабе нет — только сеть между node1 и node2, всё нужное установлено. Иди по списку замечаний: какие порты слушают службы — sudo ss -tlnp; что видно с node2 — проверяй прямо оттуда. После каждой правки перечитывай состояние: sudo systemd-analyze security lab-helpdesk.service, sudo fail2ban-client status sshd, sudo nft list ruleset.

Видна только тебе. Сохраняется при вводе.

Все заметки

Цели лабы

0 из 5
  • С node2 вход на node1 — только по ключу (student входит своим ключом, пароль сервер не предлагает) — ещё не проверялась
  • Root по SSH на node1 не входит даже с прежде рабочим ключом, и пароль ему не предлагается — ещё не проверялась
  • С node2 на node1 открыты только 22 и 80, а 8000 и 8080 закрыты — и правила переживают перезагрузку — ещё не проверялась
  • fail2ban работает, запускается сам и следит за входами по SSH — jail sshd активен с действием бана — ещё не проверялась
  • Служба lab-helpdesk отвечает, работает не от root и ограничена (NoNewPrivileges, ProtectSystem), systemd-analyze security — ниже порога — ещё не проверялась

Подсказки

открыто 0 из 3 · открываются по одной
Подсказка 1
Показать решение после 3 неудачных проверок

Выйти из лабы?

Машина проработает ещё 10 минут и удалится. Файлы пропадут, выполненные цели останутся.

Загрузка…