Zero Trust: пошаговое внедрение в корпоративной сети

Принципы Zero Trust и отличие от периметровой модели

Старая модель «замок и ров» строилась на простой идее: всё внутри сети — своё, значит, доверенное. Файрвол держит периметр, а что происходит внутри — никого особо не волнует. На практике эта схема давно рассыпалась: VPN размывает периметр до неузнаваемости, фишинг спокойно обходит файрвол, а злоумышленник, попав внутрь, может неделями ползти по сети — и никто его не остановит.

Zero Trust — модель, где доверие не выдаётся автоматически никому: ни пользователю, ни устройству, ни самой сети. Каждый запрос на доступ проходит проверку — без исключений, вне зависимости от того, откуда он пришёл.

Три ключевых принципа:

  • Verify explicitly — проверяйте каждый запрос по всем доступным сигналам: кто пользователь, с какого устройства, откуда подключается, в какое время, к каким данным хочет получить доступ
  • Use least privilege access — давайте ровно столько доступа, сколько нужно прямо сейчас. Не больше. JIT/JEA — ваши лучшие друзья
  • Assume breach — проектируйте систему исходя из того, что злоумышленник уже внутри. Сегментация сети здесь не паранойя, а способ удержать радиус поражения в разумных пределах

Этап 1: Инвентаризация и классификация

Нельзя защитить то, о чём не знаешь. Звучит банально, но в нашей практике именно инвентаризация становится первым болезненным открытием: у клиентов регулярно находится техника и сервисы, о которых IT-отдел уже давно забыл. Поэтому первый этап — полная инвентаризация активов, данных и потоков трафика, без исключений.

# Сканирование сети для обнаружения всех устройств
nmap -sn 10.0.0.0/16 -oX network_scan.xml

# Идентификация ОС и сервисов
nmap -sV -O -T4 10.0.0.0/24 -oX detailed_scan.xml

# Анализ потоков трафика через NetFlow на маршрутизаторе MikroTik
/ip traffic-flow
set enabled=yes interfaces=all
/ip traffic-flow target
add dst-address=10.0.1.50 port=2055 version=9

Документируйте:

  • Все серверы, рабочие станции, сетевые устройства, IoT — вообще всё, что подключено к сети
  • Какие приложения с какими серверами взаимодействуют и зачем
  • Где хранятся данные, какого уровня критичности, кто вообще в курсе, что они там лежат
  • Кто к чему имеет доступ прямо сейчас — реальная картина, а не то, что написано в регламентах

На выходе получаете карту зависимостей (dependency map) — все легитимные потоки трафика как на ладони. Всё, чего в этой карте нет — потенциально опасно. Точка.

Этап 2: Усиление аутентификации

Identity — краеугольный камень Zero Trust. Если аутентификация ненадёжна, всё остальное просто не имеет смысла. Мы видели инфраструктуры с красивой сегментацией и нулевым MFA — это иллюзия безопасности, не больше.

Обязательные шаги:

  • MFA для всех учётных записей — без исключений и без «ну это же внутренний сервис»
  • Отказ от паролей в пользу FIDO2/WebAuthn — аппаратные ключи YubiKey здесь работают надёжнее всего
  • Conditional Access — доступ по контексту, а не просто по факту правильного пароля
  • SSO (Single Sign-On) — одна точка аутентификации вместо зоопарка логинов
# Пример Conditional Access Policy (Azure AD / Entra ID)
# Через Microsoft Graph PowerShell
Connect-MgGraph -Scopes "Policy.ReadWrite.ConditionalAccess"

$params = @{
  displayName = "Require MFA for all users"
  state = "enabled"
  conditions = @{
    users = @{ includeUsers = @("All") }
    applications = @{ includeApplications = @("All") }
    locations = @{
      includeLocations = @("All")
      excludeLocations = @("AllTrusted")  # MFA не требуется из офиса
    }
  }
  grantControls = @{
    operator = "OR"
    builtInControls = @("mfa")
  }
}
New-MgIdentityConditionalAccessPolicy -BodyParameter $params

Если у вас on-premise инфраструктура без Azure AD — не беда. RADIUS с поддержкой MFA закрывает задачу: FreeRADIUS в связке с Google Authenticator или privacyIDEA вполне рабочее решение, которое мы не раз разворачивали на площадках клиентов.

Настройка FreeRADIUS с TOTP

FreeRADIUS позволяет добавить второй фактор практически к любому приложению с поддержкой RADIUS — без переписывания кода и замены оборудования:

# Установка
apt install freeradius freeradius-utils libpam-google-authenticator

# /etc/freeradius/3.0/mods-enabled/pam
pam {
    pam_auth = radiusd
}

# /etc/pam.d/radiusd
auth required pam_google_authenticator.so
auth required pam_unix.so

# Генерация секрета для пользователя
su - username -c "google-authenticator -t -d -f -r 3 -R 30 -w 3"

При входе пользователь вводит пароль и OTP-код из Google Authenticator. Просто, понятно, и уже намного лучше, чем только пароль.

Этап 3: Микросегментация сети

Микросегментация — это когда вместо одного большого VLAN на несколько сотен устройств вы получаете десятки мелких сегментов, где каждый поток трафика явно разрешён. Да, это работа. Но именно она останавливает латеральное движение: злоумышленник, попав на одну машину, упирается в стену уже через два хопа.

# Пример сегментации на MikroTik
# VLAN-ы:
# 10 — Управление
# 20 — Серверы (DMZ)
# 30 — Бухгалтерия
# 40 — Разработчики
# 50 — VoIP
# 60 — Wi-Fi гости

# Правила: бухгалтерия → только 1С и файловый сервер
/ip firewall filter
add chain=forward src-address=10.0.30.0/24 dst-address=10.0.20.10 \
    dst-port=1541,1560-1591 protocol=tcp action=accept \
    comment="Accounting -> 1C Server"
add chain=forward src-address=10.0.30.0/24 dst-address=10.0.20.11 \
    dst-port=445 protocol=tcp action=accept \
    comment="Accounting -> File Server SMB"
add chain=forward src-address=10.0.30.0/24 dst-address=10.0.20.0/24 \
    action=drop comment="Accounting -> Servers DENY ALL OTHER"

# Разработчики → серверы разработки, Git, CI/CD
add chain=forward src-address=10.0.40.0/24 dst-address=10.0.20.20 \
    dst-port=22,80,443,3000,8080 protocol=tcp action=accept \
    comment="Dev -> Dev servers"
add chain=forward src-address=10.0.40.0/24 dst-address=10.0.20.0/24 \
    action=drop comment="Dev -> Servers DENY ALL OTHER"

# Запрет трафика между пользовательскими сегментами
add chain=forward src-address=10.0.30.0/24 dst-address=10.0.40.0/24 \
    action=drop comment="Accounting -X-> Dev"
add chain=forward src-address=10.0.40.0/24 dst-address=10.0.30.0/24 \
    action=drop comment="Dev -X-> Accounting"

Базовый принцип — default deny. Всё, что явно не разрешено, запрещено. На старте ставьте режим мониторинга (action=log), смотрите трафик неделю, разбираетесь что легитимно, а потом переключаете на drop. Не наоборот.

Этап 4: Проверка состояния устройств (NAC)

Zero Trust проверяет не только пользователя, но и устройство, с которого он подключается. Network Access Control (NAC) пускает в сеть только тех, кто соответствует политикам безопасности — остальные уходят в карантин.

Что проверять:

  • Устройство введено в домен или зарегистрировано в MDM
  • ОС обновлена — актуальные security-патчи, а не «обновлюсь на следующей неделе»
  • Антивирус установлен и базы не трёхмесячной давности
  • Шифрование диска включено: BitLocker для Windows, FileVault для Mac
  • Файрвол ОС активен — да, это тоже проверяется
# PacketFence — open-source NAC
# /usr/local/pf/conf/authentication.conf
[AD_Auth]
  type=AD
  host=10.0.20.5
  basedn=DC=domain,DC=local
  binddn=CN=pf-service,OU=Service,DC=domain,DC=local
  password=SecurePass123
  scope=sub
  usernameattribute=sAMAccountName
  stripped_user_name=yes

# Правило: некомплаентное устройство → карантинный VLAN
# /usr/local/pf/conf/profiles.conf
[compliant]
  filter=connection_type
  value=Ethernet-EAP
  vlan=production
  
[non_compliant]
  filter=connection_type
  value=Ethernet-EAP
  vlan=quarantine
  registration=enabled

Устройство не прошло проверку? В карантинный VLAN. Там только портал самообслуживания, где можно скачать нужные обновления и привести машину в порядок. Никакого доступа к рабочим ресурсам — пока не соответствуешь политике.

Этап 5: Шифрование всего трафика

В Zero Trust сеть по умолчанию считается враждебной. Весь трафик шифруется — включая внутренний, внутри корпоративной LAN. Да, даже там. Особенно там.

Протоколы шифрования по уровням:

  • Сетевой уровень: IPSec между серверами и сегментами, WireGuard для site-to-site — быстро и без головной боли с конфигурацией
  • Транспортный уровень: TLS 1.3 для всех веб-сервисов, mTLS для межсервисного взаимодействия — оба конца соединения проходят проверку
  • Прикладной уровень: SSH вместо Telnet, HTTPS вместо HTTP, LDAPS вместо LDAP — в 2024 году это уже не обсуждается
# Настройка IPSec между серверами (strongSwan)
# /etc/ipsec.conf
conn server-to-server
    type=transport
    authby=psk
    left=10.0.20.10
    right=10.0.20.11
    auto=start
    esp=aes256gcm16-sha384-prfsha384-ecp384!
    ike=aes256gcm16-sha384-prfsha384-ecp384!

# Включение mTLS на nginx
server {
    listen 443 ssl;
    ssl_certificate /etc/nginx/certs/server.crt;
    ssl_certificate_key /etc/nginx/certs/server.key;
    ssl_client_certificate /etc/nginx/certs/ca.crt;
    ssl_verify_client on;
    ssl_protocols TLSv1.3;
}

Для внутренних сервисов поднимите корпоративный PKI — ADCS или step-ca справятся. Автоматическая выдача и ротация сертификатов избавит вас от ситуации, когда сертификат протух в пятницу вечером, а никто не знает, где он вообще был выпущен.

Этап 6: Непрерывный мониторинг

Zero Trust — это не настроил и забыл. Каждый сеанс, каждый запрос анализируется на аномалии. Централизованный сбор логов и автоматическое реагирование здесь не опция, а часть архитектуры.

# Wazuh — open-source SIEM для Zero Trust мониторинга
# /var/ossec/etc/ossec.conf на агенте
<ossec_config>
  <syscheck>
    <directories check_all="yes" realtime="yes">/etc</directories>
    <directories check_all="yes" realtime="yes">/usr/bin</directories>
  </syscheck>
  <localfile>
    <log_format>syslog</log_format>
    <location>/var/log/auth.log</location>
  </localfile>
</ossec_config>

# Правило: алерт при входе T0-аккаунта с нового устройства
# /var/ossec/etc/rules/local_rules.xml
<rule id="100100" level="12">
  <if_sid>5501</if_sid>
  <user>t0-</user>
  <description>Tier 0 admin logon detected — verify source</description>
</rule>

На что смотреть в первую очередь: отклонённые попытки доступа, входы из нетипичных локаций, эскалации привилегий, изменения в конфигурациях, аномальные объёмы исходящих данных. Автоматическая блокировка при подозрительной активности — не паранойя, а норма. Руками всё это не отследить.

Дорожная карта внедрения

Честно: внедрение Zero Trust — это не sprint на неделю. Это непрерывный процесс, который занимает месяцы и требует изменений в привычках всей команды. Вот план, который реально работает:

Месяц 1-2: Фундамент

  • Инвентаризация активов и потоков трафика — да, буквально всё, что ходит по сети
  • MFA для всех пользователей без исключений: директор, бухгалтер, стажёр — все
  • Логирование включаем на каждом сервере и сетевом устройстве — без этого двигаться дальше бессмысленно

Месяц 3-4: Сегментация

  • Режем сеть на VLAN по функциональным группам — бухгалтерия отдельно, разработка отдельно, гости отдельно
  • Настройка межсегментного доступа по принципу default deny — всё закрыто, открываем только то, что нужно
  • NAC разворачиваем в режиме мониторинга: смотрим, что происходит, не ломая рабочие процессы

Месяц 5-6: Контроль устройств

  • Переводим NAC в режим enforcement — теперь некомплаентное устройство просто не попадёт в сеть
  • Проверка комплаентности устройств: антивирус актуален? Патчи установлены? Шифрование диска включено?
  • Шифруем критичные потоки трафика — особенно между сегментами с чувствительными данными

Месяц 7-12: Зрелость

  • SIEM с автоматическим реагированием — система сама блокирует аномалию, не ждёт, пока администратор проснётся
  • Just-in-Time доступ к критичным ресурсам: выдали на час, задача выполнена, доступ закрыт
  • Регулярные пентесты — проверяем, не появились ли дыры после очередного раунда изменений
  • Документация и обучение персонала: люди должны понимать, почему всё так устроено, а не обходить защиту «для удобства»

Часто задаваемые вопросы

Нет, дорогое железо — не обязательное условие. Zero Trust — это философия, а не продукт с ценником. Микросегментацию вполне реально поднять на существующих управляемых коммутаторах через VLAN и ACL. MFA — через бесплатный FreeRADIUS. SIEM — через Wazuh, который open-source и ничего не стоит. Коммерческие решения вроде Cisco ISE или Palo Alto Prisma действительно упрощают жизнь, но мы неоднократно строили нормальную Zero Trust-инфраструктуру вообще без них.

Забудьте про классический VPN, который даёт пользователю ключи от всей сети сразу. Используйте ZTNA (Zero Trust Network Access): человек сначала проходит аутентификацию, его устройство проверяется на комплаентность — и только потом он получает доступ к конкретному приложению. Не к сети целиком, а именно к приложению. Из open-source вариантов хорошо себя показали Zitadel, OpenZiti и Teleport.

При грамотном внедрении — нет, пользователи разницы почти не замечают. SSO убирает необходимость помнить пять паролей, MFA через push-уведомление — это буквально 2 секунды, микросегментация для конечного пользователя вообще прозрачна. Проблемы начинаются только когда планирование сделано на коленке: легитимный трафик попадает под правила блокировки, и начинаются звонки в поддержку.

Если бюджет и ресурсы ограничены — начните с MFA. По соотношению усилий и закрытых рисков это самый выгодный первый шаг. Следом берёмся за сегментацию сети через VLAN — новое оборудование для этого не нужно. Потом централизованное логирование через Wazuh. Эти три шага стоят ноль рублей и реально закрывают около 70% типичных векторов атак.

Нужна помощь с настройкой?

Если хотите пройти этот путь не в одиночку — команда АйТи Фреш занимается именно такими внедрениями. Больше 15 лет в деле, обслуживание от 15 000 ₽/мес.

📞 Связаться с нами
#Zero Trust#нулевое доверие#микросегментация#ZTNA#безопасность сети#MFA#NAC#identity-based security
Комментарии 0

Оставить комментарий

загрузка...