Перейти к основному содержимому
Вернуться в категорию

Сетевая безопасность Zero Trust: руководство по базовой настройке

Принципы сетевой безопасности Zero Trust и практическая реализация: никогда не доверяй всегда проверяй, микросегментация, доступ на основе идентификации и реализация с существующими инструментами Linux.

Время чтения: 14 мин Безопасность
zero trustсетевая безопасностьмикросегментацияаутентификацияархитектура безопасностиlinuxбрандмауэрконтроль доступа

Содержание

Сетевая безопасность Zero Trust: руководство по базовой настройке

Традиционная модель сетевой безопасности доверяет всему внутри внутренней сети. Модель Zero Trust отстаивает противоположное: «Никогда не доверяй, всегда проверяй». Этот подход критически важен в современных облачных и гибридных средах.

Что такое Zero Trust?

Zero Trust — модель безопасности, определённая аналитиками Forrester Research в 2010 году. Её основное предположение: Ни одному пользователю, устройству или сервису внутри или вне сети не доверяют автоматически.

Основные принципы

  1. Никогда не доверяй, всегда проверяй: Каждый запрос доступа должен проходить аутентификацию
  2. Минимальные привилегии: Пользователи должны иметь доступ только к нужным ресурсам
  3. Микросегментация: Разделить сеть на небольшие изолированные сегменты
  4. Непрерывный мониторинг: Записывать весь сетевой трафик и доступы
  5. Безопасность устройств: Проверять безопасность устройства перед предоставлением доступа

Традиционный подход vs Zero Trust

ХарактеристикаТрадиционныйZero Trust
Модель доверияДоверять внутренней сетиНе доверять ничему
АутентификацияНа периметре сетиПри каждом доступе
Контроль доступаНа основе IPНа основе идентификации
СегментацияПлоская сетьМикросегментация
МониторингОриентирован на периметрВезде

Практическая реализация с инструментами Linux

1. SSH-аутентификация на основе сертификатов

hljs bash
# Создать SSH CA
mkdir -p /etc/ssh/ca
cd /etc/ssh/ca

# Создать пару ключей CA
ssh-keygen -t ed25519 -f ssh_ca -C "SSH Certificate Authority"

# Подписать ключ пользователя
ssh-keygen -s /etc/ssh/ca/ssh_ca \
  -I "пользователь@хост" \
  -n имя_пользователя \
  -V +52w \
  ~/.ssh/id_ed25519.pub
# Конфигурация SSH для Zero Trust
PasswordAuthentication no
ChallengeResponseAuthentication no
TrustedUserCAKeys /etc/ssh/ca/ssh_ca.pub
PermitRootLogin no
AllowUsers deploy admin
ClientAliveInterval 300
ClientAliveCountMax 2

2. Микросегментация с iptables

hljs bash
# Политики по умолчанию
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

# Разрешить loopback
sudo iptables -A INPUT -i lo -j ACCEPT

# Разрешить установленные соединения
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH-доступ (только из сети управления)
sudo iptables -A INPUT -p tcp --dport 22 -s 10.0.1.0/24 -j ACCEPT

# Веб-сервер (публичный)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# База данных (только с веб-сервера)
sudo iptables -A INPUT -p tcp --dport 3306 -s 10.0.2.10 -j ACCEPT

# Логировать и отклонять всё остальное
sudo iptables -A INPUT -j LOG --log-prefix "DROPPED: "
sudo iptables -A INPUT -j DROP

3. Контроль доступа на основе идентификации

hljs bash
# Многофакторная аутентификация с PAM
sudo apt install libpam-google-authenticator -y
google-authenticator
# /etc/pam.d/sshd
auth required pam_google_authenticator.so
# Конфигурация SSH
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactive

4. Непрерывный мониторинг и аудит

hljs bash
# Установить auditd
sudo apt install auditd -y

# Мониторинг критических файлов
sudo auditctl -w /etc/passwd -p wa -k passwd_changes
sudo auditctl -w /etc/shadow -p wa -k shadow_changes
sudo auditctl -w /etc/sudoers -p wa -k sudoers_changes

# Мониторинг сетевых соединений
sudo auditctl -a always,exit -F arch=b64 -S connect -k network_connect

# Просмотр журналов аудита
sudo ausearch -k passwd_changes
sudo aureport --auth

5. Изоляция сервисных аккаунтов

hljs ini
# /etc/systemd/system/myapp.service
[Service]
User=myapp
Group=myapp
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/var/lib/myapp
CapabilityBoundingSet=

6. Изоляция сети Docker

hljs bash
docker network create --driver bridge --subnet 172.20.0.0/24 frontend-net
docker network create --driver bridge --subnet 172.21.0.0/24 backend-net
docker network create --driver bridge --subnet 172.22.0.0/24 db-net

Модель зрелости Zero Trust

Уровень 1: Базовый

  • SSH-аутентификация на основе ключей
  • Ограничение портов с помощью брандмауэра
  • Надёжная политика паролей
  • Базовый мониторинг логов

Уровень 2: Средний

  • Многофакторная аутентификация (MFA)
  • Микросегментация
  • Изоляция сервисных аккаунтов
  • Централизованное управление логами

Уровень 3: Продвинутый

  • Аутентификация на основе сертификатов
  • Непрерывный анализ поведения
  • Автоматизированное реагирование на угрозы
  • Доступ точно в срок (Just-in-Time)

Zero Trust — это философия, а не продукт. Начните с существующих инструментов и постепенно повышайте уровень зрелости. Стремитесь к непрерывному совершенствованию, а не к совершенству.

Заключение

Zero Trust — комплексный подход к безопасности, необходимый для современных угроз. С помощью инструментов Linux можно реализовать базовые принципы Zero Trust. SSH-сертификаты, микросегментация, MFA и непрерывный мониторинг могут значительно укрепить вашу позицию безопасности.