Как открыть порты в брандмауэре Google Cloud (GCP)

Быстрые ссылки
- Как работает брандмауэр GCP?
- Как открыть порты с помощью Firewall Rules
Как работает брандмауэр GCP
Модель брандмауэра в GCP отличается от многих других провайдеров. В AWS например есть security groups, которые привязываются к инстансу и редактируются напрямую. В GCP сетевой доступ контролируется набором правил — Firewall Rules. Каждое правило описывает, какие протоколы и порты разрешены или запрещены, а также фильтры источника (CIDR) и целевые инстансы.
Вместо прямой привязки к инстансу в GCP обычно используются Network Tags — ярлыки, которые вы присваиваете инстансу. Правило брандмауэра может быть настроено так, чтобы применяться только к инстансам с указанным тегом. Это облегчает управление доступом по прикладному назначению: отдельные теги для ftp, https-server, ssh и т. п.

Коротко:
- Правила описывают разрешённые/запрещённые порты и источники.
- Правило связывается с инстансами через Network Tag.
- Теги можно добавлять/удалять без изменения правил.
Важно: по умолчанию трафик блокируется (implicit deny). Нужно явно разрешать входящие потоки, которые нужны вашему приложению.
Как открыть порты с помощью Firewall Rules
- В консоли Compute Engine откройте страницу инстанса и нажмите “View Network Details”.

- В боковой панели выберите “Firewall Rules”.

- Нажмите “Create Firewall Rule” для создания нового правила.

Задайте имя правила и действие — Allow или Deny. Помните, что по умолчанию трафик запрещён, поэтому чаще потребуется Allow.
Для Target Tags укажите уникальный тег, который вы потом добавите к инстансу (например http-server или my-app).
Для Source IP range при необходимости доступа из любой сети введите:
0.0.0.0/0— это CIDR-нотация для всех возможных IPv4-адресов.

- В разделе Protocols and ports выберите протокол (TCP/UDP/ICMP или указать другие) и введите нужные порты. Можно перечислить несколько через запятую или указать диапазон.

Совет безопасности: не открывайте все порты (0-65535) для 0.0.0.0/0. Это увеличивает поверхность атаки.
- Создайте правило и вернитесь к инстансу. Нажмите “Edit” и добавьте созданный Network Tag в поле Network Tags.

После сохранения изменения применяются автоматически.
Что ещё проверить, если порт всё ещё недоступен
- Локальные фаерволы на инстансе: ufw, firewalld, iptables. Например, ufw может блокировать порт даже если GCP правильно настроен.
sudo ufw status
sudo ufw allow 80/tcp- Приложение слушает на нужном адресе и порту (0.0.0.0 или приватный IP, не только localhost).
- Маршрутизация и VPC: убедитесь, что инстанс находится в нужной подсети и нет дополнительных Network Endpoint Group/Private Google Access, которые блокируют трафик.
- Порядок правил: более специфичные правила имеют приоритет; проверьте, нет ли конфликтующих Deny-правил.
Руководство действий — чеклист для ролей
Администратор сети:
- Создать Firewall Rule с именем и тегом.
- Ограничить Source IP по возможности.
- Проверить логи VPC Firewall для отклонённых соединений.
DevOps инженер:
- Добавить Network Tag к инстансу.
- Проверить, слушает ли приложение на 0.0.0.0 либо нужном интерфейсе.
- Убедиться, что конфигурации CI/CD не перезаписывают теги.
Разработчик приложения:
- Тестировать доступ локально и с внешней сети после открытия порта.
- Проверить, не требует ли приложение дополнительных заголовков/протоколов.
Диагностика — быстрый flowchart
flowchart TD
A[Порт недоступен] --> B{Проблема на уровне GCP?}
B -- Да --> C[Проверить Firewall Rules и Network Tags]
C --> D{Правило есть и тег применён?}
D -- Нет --> E[Создать правило и назначить тег]
D -- Да --> F[Проверить Source IP и приоритет правил]
B -- Нет --> G[Проверить фаервол на инстансе]
G --> H{ufw/iptable блокируют?}
H -- Да --> I[Открыть порт локально или отключить правило]
H -- Нет --> J[Проверить, слушает ли приложение на нужном интерфейсе]
J --> K[Проверить логи приложения и сетевые утилиты 'ss, netstat, tcpdump']Критерии приёмки
- Правило Firewall Rule создано и в статусе Active.
- Network Tag добавлен к инстансу.
- Порт открыт для нужного диапазона IP и протокола.
- Тест подключения проходит извне (curl, telnet, nc).
- Локальный фаервол не блокирует соединение.
Частые ошибки и когда метод не сработает
- Открытие порта для 0.0.0.0/0 без ограничения усиливает риск атак — вместо этого ограничьте конкретными IP или сетями.
- Если приложение слушает только на 127.0.0.1, трафик снаружи не попадёт даже при правильно настроенном брандмауэре.
- Для приватных кластеров или VPC-SC может потребоваться дополнительная конфигурация — в таких случаях простое правило не даст доступа извне.
Короткая сводка
Откройте порт в GCP через создание Firewall Rule и применение его к инстансу по Network Tag. Всегда проверяйте локальные фаерволы и привязку приложения к интерфейсу. Ограничивайте Source IP по возможности.
FAQ
Нужно ли всегда применять 0.0.0.0/0 для публичного доступа?
Нет. Если возможно, ограничьте источник конкретными IP или диапазонами. Использовать 0.0.0.0/0 стоит только когда доступ из любой сети действительно необходим.
Как быстро проверить, слушает ли сервис на порту?
Используйте ss или netstat на инстансе: sudo ss -tulpen | grep :80.
Можно ли автоматизировать применение тегов и правил?
Да — через gcloud CLI, Terraform или Deployment Manager.
Похожие материалы
Herodotus: механизм и защита Android‑трояна
Включить новое меню «Пуск» в Windows 11
Панель полей сводной таблицы в Excel — руководство
Включить новое меню «Пуск» в Windows 11
Дубликаты Диспетчера задач в Windows 11 — как исправить