--- title: Безопасность и изоляция привилегий description: Меры безопасности, изоляция привилегий и песочница на уровне проектов. weight: 20 --- Безопасность в Root достигается за счет строгой изоляции привилегий и создания «песочниц» на уровне проектов для минимизации последствий в случае взлома отдельных сервисов. ## Принцип «No-Root» {#noroot} Запуск приложений под пользователем `root` внутри контейнеров является значительным риском безопасности. Общие модули обеспечивают изоляцию с помощью действий `tiers/useradd` и `tiers/chown`. ### Пользователи для конкретных проектов Каждому проекту, расположенному по пути `{repository root}/{node}/{project}`, назначается выделенный системный пользователь на хосте. - **Изоляция**: Если контейнер будет взломан, злоумышленник получит только привилегии этого конкретного низкопривилегированного пользователя. - **Безопасность файловой системы**: Проекты могут читать и записывать данные только в свои собственные директории в рамках [Уровней (Tiers)](/root/glossary#tier). ## Защита сокета Docker {#socket-protection} Прямой доступ к `/var/run/docker.sock` эквивалентен правам root на хосте. В качестве лучшей практики настоятельно рекомендуется защищать сокет Docker. Один из способов достижения этого — использование **Socket Proxy** (например, на базе `tecnativa/docker-socket-proxy`) для фильтрации и ограничения доступа к Docker API. ```yaml filename="docker-socket-proxy-example.yml" 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** для поведенческого анализа и автоматического реагирования. - **Обнаружение вторжений**: CrowdSec отслеживает логи [Traefik](https://traefik.io/) и SSH на предмет подозрительных паттернов (например, брутфорс-атаки, сканирование портов). - **Автоматическая блокировка**: При обнаружении угрозы **CrowdSec Firewall Bouncer** автоматически обновляет правила [UFW](https://help.ubuntu.com/community/UFW), блокируя вредоносный IP на уровне хоста. - **Обмен данными об угрозах**: CrowdSec делится анонимизированными данными об угрозах со своим сообществом, обеспечивая превентивную защиту от известных злоумышленников. ## Сетевое ужесточение {#networking} Root использует `configure/ufw` для реализации политики «Запрещено по умолчанию» (Default Deny). - **Внутренняя маршрутизация**: Сервисы взаимодействуют через выделенную сеть-мост `root-proxy`, которая часто настраивается как `internal: true`. - **Изоляция анклавов**: Исходящий трафик может быть направлен через выделенный узел выхода (egress node) для детального контроля.