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) для детального контроля.