Сетевая безопасность Zero Trust: руководство по базовой настройке
Принципы сетевой безопасности Zero Trust и практическая реализация: никогда не доверяй всегда проверяй, микросегментация, доступ на основе идентификации и реализация с существующими инструментами Linux.
Содержание
Сетевая безопасность Zero Trust: руководство по базовой настройке
Традиционная модель сетевой безопасности доверяет всему внутри внутренней сети. Модель Zero Trust отстаивает противоположное: «Никогда не доверяй, всегда проверяй». Этот подход критически важен в современных облачных и гибридных средах.
Что такое Zero Trust?
Zero Trust — модель безопасности, определённая аналитиками Forrester Research в 2010 году. Её основное предположение: Ни одному пользователю, устройству или сервису внутри или вне сети не доверяют автоматически.
Основные принципы
- Никогда не доверяй, всегда проверяй: Каждый запрос доступа должен проходить аутентификацию
- Минимальные привилегии: Пользователи должны иметь доступ только к нужным ресурсам
- Микросегментация: Разделить сеть на небольшие изолированные сегменты
- Непрерывный мониторинг: Записывать весь сетевой трафик и доступы
- Безопасность устройств: Проверять безопасность устройства перед предоставлением доступа
Традиционный подход vs Zero Trust
| Характеристика | Традиционный | Zero Trust |
|---|---|---|
| Модель доверия | Доверять внутренней сети | Не доверять ничему |
| Аутентификация | На периметре сети | При каждом доступе |
| Контроль доступа | На основе IP | На основе идентификации |
| Сегментация | Плоская сеть | Микросегментация |
| Мониторинг | Ориентирован на периметр | Везде |
Практическая реализация с инструментами Linux
1. SSH-аутентификация на основе сертификатов
# Создать 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
# Политики по умолчанию
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. Контроль доступа на основе идентификации
# Многофакторная аутентификация с 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. Непрерывный мониторинг и аудит
# Установить 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. Изоляция сервисных аккаунтов
# /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
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 и непрерывный мониторинг могут значительно укрепить вашу позицию безопасности.
Связанные статьи
Сканирование на вредоносное ПО и руткиты: rkhunter и ClamAV
Защитите Linux-сервер от вредоносного ПО и руткитов. Установка rkhunter и ClamAV, настройка сканирования, интерпретация результатов, планирование сканирований и реагирование на инциденты.
Настройка Fail2Ban: Защита SSH от брутфорс-атак
Защитите сервер от SSH брутфорс-атак с помощью Fail2Ban. Установка, настройка jail.local, джейлы для Nginx/Apache, белый список IP, мониторинг блокировок и email-уведомления.
Настройка VPN-сервера WireGuard: пошаговое руководство
Настройте VPN-сервер WireGuard: генерация ключей, конфигурация сервера и клиента, IP-пересылка, правила брандмауэра и настройка клиентов Windows/Linux/Android.