Как ограничивать сетевой доступ к серверам и сервисам?
- Чем stateful-файрвол отличается от stateless?
- Что такое security group?
Принцип — запрещено всё, что не разрешено явно. Слои защиты: файрвол хоста (nftables/iptables, ufw), облачные security groups у каждой машины, сетевые ACL подсетей, NetworkPolicy в Kubernetes. Наружу открыты только 80/443 балансировщика; БД, кэши и брокеры — только из подсети приложений; SSH — только с bastion или через VPN.
- Stateful-файрвол помнит соединения: ответный трафик разрешён автоматически
- Security group разрешает доступ по ссылке на другую группу, а не только по IP
- Сервис, слушающий 0.0.0.0 без файрвола, доступен всем — частая причина утечек баз
А ещё Docker публикует порты в обход ufw, правя iptables напрямую
Подробно
Пример политики для веб-сервиса:
| откуда | куда | порт |
|---|---|---|
| интернет | балансировщик | 443 |
| балансировщик | приложения | 8080 |
| приложения | PostgreSQL | 5432 |
| bastion | все узлы | 22 |
Stateful и stateless. Security groups и nftables с conntrack — stateful: разрешили входящее — ответ пройдёт. Сетевые ACL облака — stateless: нужно явно разрешить и обратное направление (эфемерные порты).
Kubernetes NetworkPolicy: по умолчанию все поды видят друг друга. Политика «запретить всё входящее» на namespace и явные разрешения ограничивают последствия взлома одного сервиса. Работает, только если сетевой плагин поддерживает политики (Calico, Cilium).
Проверка: nmap снаружи — какие порты реально открыты.
Что хотят услышать
- Принцип запрета по умолчанию и слои защиты.
- Stateful против stateless.
- Практическая схема доступа.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Открыть все порты и закрывать их по мере обнаружения атак
- ✓Запрещено всё, что не разрешено: наружу только 80/443, БД — из подсети приложений
- ✗Открыть базу данных в интернет, защитив её сложным паролем
- ✗SSH открыть всему интернету на нестандартном порту — этого достаточно для защиты сервера
Разбор темы
- Сети на сервере — подсети, firewall, reverse proxy и диагностика
Как читать CIDR и планировать подсети, как ограничивать сетевой доступ, зачем nginx перед приложением и как искать, почему сервис A не видит сервис B.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.