Files
ermnvldmr.com/services/docs/content/ru/root/concepts/security-model.md
T

4.7 KiB

title, description, weight
title description weight
Безопасность и изоляция привилегий Меры безопасности, изоляция привилегий и песочница на уровне проектов. 20

Безопасность в Root достигается за счет строгой изоляции привилегий и создания «песочниц» на уровне проектов для минимизации последствий в случае взлома отдельных сервисов.

Принцип «No-Root»

Запуск приложений под пользователем root внутри контейнеров является значительным риском безопасности. Общие модули обеспечивают изоляцию с помощью действий tiers/useradd и tiers/chown.

Пользователи для конкретных проектов

Каждому проекту, расположенному по пути {repository root}/{node}/{project}, назначается выделенный системный пользователь на хосте.

  • Изоляция: Если контейнер будет взломан, злоумышленник получит только привилегии этого конкретного низкопривилегированного пользователя.
  • Безопасность файловой системы: Проекты могут читать и записывать данные только в свои собственные директории в рамках Уровней (Tiers).

Защита сокета Docker

Прямой доступ к /var/run/docker.sock эквивалентен правам root на хосте. В качестве лучшей практики настоятельно рекомендуется защищать сокет Docker. Один из способов достижения этого — использование Socket Proxy (например, на базе tecnativa/docker-socket-proxy) для фильтрации и ограничения доступа к Docker API.

services:
  socket-proxy:
    image: tecnativa/docker-socket-proxy:0
    container_name: root-socket-proxy
    user: "0:0"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      CONTAINERS: 1
      SERVICES: 1
      TASKS: 1
    networks:
      socket: {}
    restart: unless-stopped

  traefik:
    # ...
    depends_on:
      - socket-proxy
    command:
      # Использовать прокси вместо локального сокета
      - "--providers.docker.endpoint=tcp://root-socket-proxy:2375"
    networks:
      socket: {}

Мониторинг безопасности (CrowdSec)

Фреймворк интегрирует CrowdSec для поведенческого анализа и автоматического реагирования.

  • Обнаружение вторжений: CrowdSec отслеживает логи Traefik и SSH на предмет подозрительных паттернов (например, брутфорс-атаки, сканирование портов).
  • Автоматическая блокировка: При обнаружении угрозы CrowdSec Firewall Bouncer автоматически обновляет правила UFW, блокируя вредоносный IP на уровне хоста.
  • Обмен данными об угрозах: CrowdSec делится анонимизированными данными об угрозах со своим сообществом, обеспечивая превентивную защиту от известных злоумышленников.

Сетевое ужесточение

Root использует configure/ufw для реализации политики «Запрещено по умолчанию» (Default Deny).

  • Внутренняя маршрутизация: Сервисы взаимодействуют через выделенную сеть-мост root-proxy, которая часто настраивается как internal: true.
  • Изоляция анклавов: Исходящий трафик может быть направлен через выделенный узел выхода (egress node) для детального контроля.