Gymterview
middle

Что такое сетевая сегментация и зачем она нужна?

Сетевая сегментация — разделение сети на изолированные сегменты (подсети), между которыми трафик контролируется файрволами и маршрутизаторами. Это фундаментальный принцип безопасности, ограничивающий распространение атаки при компрометации одного сегмента.

Зачем нужна сегментация

  1. Ограничение blast radius — при компрометации одного сервиса злоумышленник не получает доступ ко всей сети
  2. Соответствие PCI DSS — данные карт должны обрабатываться в изолированном сегменте (CDE)
  3. Разграничение сред — production, staging, development изолированы друг от друга
  4. Контроль трафика — легче отслеживать и фильтровать подозрительный трафик

VLAN (Virtual LAN)

VLAN позволяет разделить физическую сеть на логические сегменты на уровне коммутатора (L2):

Пример
┌────────── VLAN 10: Серверы приложений ──────────┐
│  10.0.10.0/24                                    │
│  payment-service  account-service  auth-service  │
└──────────────────────────────────────────────────┘

┌────────── VLAN 20: Базы данных ─────────────────┐
│  10.0.20.0/24                                    │
│  postgresql-master  postgresql-replica  redis     │
└──────────────────────────────────────────────────┘

┌────────── VLAN 30: Управление ──────────────────┐
│  10.0.30.0/24                                    │
│  monitoring  logging  ci-cd  bastion-host        │
└──────────────────────────────────────────────────┘

┌────────── VLAN 40: DMZ ─────────────────────────┐
│  10.0.40.0/24                                    │
│  nginx  api-gateway  waf                         │
└──────────────────────────────────────────────────┘

Подсети (Subnetting)

Пример
# Пример структуры подсетей
10.0.0.0/16          # Общая сеть
10.0.10.0/24         # Серверы приложений (production)
10.0.20.0/24         # Базы данных (production)
10.0.30.0/24         # Управление и мониторинг
10.0.40.0/24         # DMZ
10.0.50.0/24         # Kafka, RabbitMQ (message brokers)
10.0.100.0/24        # Staging
10.0.200.0/24        # Development

Правила маршрутизации между сегментами

Пример
# Серверы приложений могут обращаться к БД
iptables -A FORWARD -s 10.0.10.0/24 -d 10.0.20.0/24 -p tcp --dport 5432 -j ACCEPT

# DMZ может обращаться к серверам приложений
iptables -A FORWARD -s 10.0.40.0/24 -d 10.0.10.0/24 -p tcp --dport 8080 -j ACCEPT

# DMZ НЕ может обращаться к БД напрямую
iptables -A FORWARD -s 10.0.40.0/24 -d 10.0.20.0/24 -j DROP

# Development НЕ может обращаться к production
iptables -A FORWARD -s 10.0.200.0/24 -d 10.0.10.0/24 -j DROP

Сегментация в Kubernetes

В Kubernetes сегментация реализуется через:

  1. Namespaces — логическое разделение
  2. NetworkPolicy — контроль трафика между подами
  3. Service Mesh — дополнительный уровень контроля
Пример
apiVersion: v1
kind: Namespace
metadata:
  name: payment
  labels:
    environment: production
    pci-scope: "true"

Матрица доступа (пример)

Источник \ Назначение DMZ App Servers Databases Monitoring Dev
Интернет 80,443 - - - -
DMZ - 8080 - - -
App Servers - - 5432,6379 9090 -
Monitoring ICMP ICMP,9090 ICMP,9090 - -
Dev - - - - Все

Сетевая сегментация — обязательное требование стандартов PCI DSS, ГОСТ Р 57580 и рекомендаций ЦБ РФ. Java-разработчик должен понимать, в каком сегменте работает его приложение и к каким ресурсам оно имеет доступ.

На собеседовании: интервьюер ожидает понимание VLAN, подсетей и принципа «blast radius». Частая ошибка — не упомянуть матрицу доступа между сегментами и не связать сегментацию с PCI DSS.