Создание правил брандмауэра в Google Cloud

Не приняв должных мер предосторожности, вы рискуете подвергнуть свои системы новым уязвимостям. Поэтому очень важно контролировать входящий и исходящий трафик ваших экземпляров в Google Cloud, создавая правила брандмауэра. В этой лаборатории кода вы узнаете о правилах брандмауэра в Google Cloud и о том, как применять их к экземплярам виртуальных машин Compute Engine.

Что такое правила брандмауэра?

Правила брандмауэра в Google Cloud позволяют разрешать или запрещать входящий и исходящий трафик ваших экземпляров ВМ на основе указанной вами конфигурации. Включенные правила брандмауэра всегда применяются, защищая ваши экземпляры независимо от их конфигурации и операционной системы, независимо от того, запущены ли они.

Каждая сеть VPC функционирует как распределенный брандмауэр. Хотя правила брандмауэра определяются на сетевом уровне, соединения разрешаются или запрещаются для каждого экземпляра. Вы можете думать о правилах брандмауэра как о существующих не только между вашими экземплярами и другими сетями, но и между отдельными экземплярами в одной сети.

Что вы будете строить

  • Два экземпляра Compute Engine в разных подсетях
  • Сетевой пинг-тест
  • Правила брандмауэра с использованием тегов экземпляра
  • Следующая архитектура:

Что вы узнаете

  • Характеристики правил брандмауэра
  • Как применять правила брандмауэра к экземплярам с помощью тегов экземпляров
  • Лучшие практики для правил брандмауэра

Что вам понадобится

  • Аккаунт Google
  • Два экземпляра Compute Engine

Самостоятельная настройка среды

Если у вас еще нет учетной записи Google, ее необходимо создать . Войдите в Google Cloud Console и создайте новый проект:

Запомните идентификатор проекта, уникальное имя для всех проектов Google Cloud. В этих лабораториях он будет называться PROJECT_ID.

Затем вам нужно включить выставление счетов в облачной консоли, чтобы использовать ресурсы Google Cloud.

Выполнение этой кодовой лаборатории не должно стоить вам больше нескольких долларов, но может быть больше, если вы решите использовать больше ресурсов или оставить их включенными (см. раздел очистки в конце этой кодовой лаборатории). Новые пользователи Google Cloud имеют право на бесплатную пробную версию за 300 долларов .

Инициализируйте среду вашего проекта

Перейдите к Compute > Compute Engine > VM Instances .

После того, как вы завершите включение Compute Engine API, вы будете выполнять большую часть работы с Cloud Shell , который позволяет вам управлять своей инфраструктурой и приложениями из командной строки в любом браузере. Виртуальная машина на основе Debian загружена всеми необходимыми инструментами разработки (инструмент командной строки gcloud , Git и другие) и предлагает постоянный домашний каталог размером 5 ГБ. Откройте Cloud Shell, щелкнув значок в правом верхнем углу экрана.

Вы также можете выбирать разные зоны. Дополнительные сведения см. в разделе Регионы и зоны .

Просмотрите существующие правила брандмауэра, выбрав Сеть > Сеть VPC > Правила брандмауэра .

Обратите внимание, что для сети по умолчанию созданы только правила брандмауэра.

Вам нужно создать правила брандмауэра для ваших существующих экземпляров Compute Engine, чтобы подключиться к ним по ssh, учитывая, что вы не указали никаких правил брандмауэра при создании custom-network1 .

Затем создайте правило брандмауэра, разрешающее ssh-доступ к помеченным экземплярам.

Оставайтесь на странице правил брандмауэра. Щелкните Создать правило брандмауэра.

Добавьте следующие характеристики:

  • Имя: разрешить-ssh
  • Сеть: пользовательская сеть1
  • Направление движения: Вход
  • Действие при совпадении: разрешить
  • Цели: указанные целевые теги
  • Целевые теги: iperf-доступ
  • Диапазоны исходных IP-адресов: 0.0.0.0/0
  • Протоколы и порты: указанные протоколы и порты: tcp: 22

Примените теги к двум существующим экземплярам.

Перейдите на страницу экземпляра Compute Engine, выбрав Compute > Compute Engine > Экземпляры VM .

Щелкните экземпляр-1 и просмотрите сведения об экземпляре ВМ. Щелкните Изменить.

Прокрутите вниз до раздела сетевых тегов и присвойте ему тег iperf-access.

Нажмите Сохранить внизу. Вернитесь на страницу экземпляров ВМ и повторите для экземпляра-2, щелкнув «Изменить» и снова добавив iperf-access в качестве тега экземпляра.

iPerf

iPerf — широко используемый инструмент для тестирования сети, который может создавать потоки данных TCP/UDP и измерять пропускную способность сети, по которой они передаются. Вы будете использовать его для запуска быстрого теста между вашими экземплярами в разных подсетях в custom-network1 .

Установить iPerf

Перейдите на страницу экземпляра Compute Engine.

Подключитесь по SSH к двум виртуальным машинам, которые вы создали в последней лаборатории кода, нажав кнопку ssh рядом со списком каждого экземпляра.

Вы должны увидеть два всплывающих окна ssh. Установите iPerf в них обоих с помощью следующей команды:

sudo apt-get install iperf

Запустите тест iPerf

В instance-2 укажите, что это сервер iPerf, введя следующее в ssh-терминал экземпляра-2:

iperf -s

В окне ssh экземпляра-1 введите следующую команду, включая внутренний IP-адрес instance-2 :

iperf -c [INSTANCE-2 INTERNAL IP]

Он будет зависать, потому что вы не реализовали другое правило брандмауэра, разрешающее связь между instance-1 и instance-2 . Завершите команду, введя Control+Z (Command+Z на Macintosh).

На этот раз вы создадите правило брандмауэра с помощью Cloud Shell.

Убедитесь, что вы находитесь в Cloud Shell, а не в сеансах ssh своего экземпляра. Создайте правило брандмауэра, введя следующее:

gcloud compute firewall-rules create iperf-access --allow tcp:5001 \
      --source-ranges 0.0.0.0/0 \
      --network custom-network1 \
      --target-tags=iperf-access

Подтвердите, что он был создан со следующим:

gcloud compute firewall-rules list

NAME                         NETWORK          DIRECTION  PRIORITY  ALLOW                         DENY  DISABLED
allow-ssh                    custom-network1  INGRESS    1000      tcp:22                              False
default-allow-icmp           default          INGRESS    65534     icmp                                False
default-allow-internal       default          INGRESS    65534     tcp:0-65535,udp:0-65535,icmp        False
default-allow-rdp            default          INGRESS    65534     tcp:3389                            False
default-allow-ssh            default          INGRESS    65534     tcp:22                              False
iperf-access                 custom-network1  INGRESS    1000      tcp:5001                            False

Вернитесь к окну SSH, instance-2 . Ваша сессия iperf все еще должна быть активной. Если это не так, снова запустите следующую команду.

iperf -s

В окне ssh instance-1 введите следующую команду, включая внутренний IP-адрес instance-2 :

iperf -c [INSTANCE-2 INTERNAL IP]

Вы должны увидеть, как iPerf устанавливает соединение с instance-2 и возвращает вывод о производительности внутренней сети между instance-1 и instance-2 .

Теперь вы знаете основы создания правил брандмауэра в Google Cloud.

Что вы покрыли

  • Как на экземпляры влияют правила брандмауэра
  • Как создать правило брандмауэра через Cloud Console и Cloud Shell
  • Как применять теги к правилам и экземплярам брандмауэра
  • Как запустить тест iPerf между экземплярами

Следующие шаги

Удалите экземпляры Compute Engine с помощью следующих команд в Cloud Shell:

gcloud compute instances delete instance-1 --zone us-central1-a

The following instances will be deleted. Any attached disks configured
 to be auto-deleted will be deleted unless they are attached to any
other instances or the `--keep-disks` flag is given and specifies them
 for keeping. Deleting a disk is irreversible and any data on the disk
 will be lost.
 - [instance-1] in [us-central1-a]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/ypc-demo/zones/us-central1-a/instances/instance-1].
gcloud compute instances delete instance-2 --zone europe-west1-d

The following instances will be deleted. Any attached disks configured
 to be auto-deleted will be deleted unless they are attached to any
other instances or the `--keep-disks` flag is given and specifies them
 for keeping. Deleting a disk is irreversible and any data on the disk
 will be lost.
 - [instance-2] in [europe-west1-d]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/ypc-demo/zones/europe-west1-d/instances/instance-2].

Удалите правила брандмауэра с помощью следующих команд:

gcloud compute firewall-rules delete allow-ssh

The following firewalls will be deleted:
 - [allow-ssh]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/global/firewalls/allow-ssh].
gcloud compute firewall-rules delete iperf-access

The following firewalls will be deleted:
 - [iperf-access]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/global/firewalls/iperf-access].

Удалите подсети с помощью следующих команд:

gcloud compute networks subnets delete subnet-us-central-192 --region us-central1

The following subnetworks will be deleted:
 - [subnet-us-central-192] in [us-central1]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/regions/us-central1/subnetworks/subnet-us-central-192].
gcloud compute networks subnets delete subnet-europe-west-192 --region europe-west1

The following subnetworks will be deleted:
 - [subnet-europe-west-192] in [europe-west1]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/regions/europe-west1/subnetworks/subnet-europe-west-192].

Удалите пользовательский VPC с помощью следующей команды:

gcloud compute networks delete custom-network1

The following networks will be deleted:
 - [custom-network1]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/global/networks/custom-network1].