Google Cloud Platform Почему, если я объявлю правило брандмауэра, оно не работает?

Я установил Debian Stretch в качестве ОС в моем экземпляре виртуальной машины. Я загрузил установленное (через git) программное обеспечение AllStarLink, чтобы установить его в указанном экземпляре.

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

Мне нужен порт 4569 / udp для работы с приложением, но после того, как я запрограммировал несколько правил брандмауэра, экземпляр по-прежнему отклоняет любое соединение из офсайда.

Какая правильная конфигурация правила брандмауэра разрешает мое соединение?

Заранее спасибо!


person Fabián A. Juárez Martínez    schedule 26.09.2020    source источник


Ответы (1)


В сетях Compute Engine есть некоторые подразумеваемые правила, которые блокируют весь входящий трафик некоторым исключения, такие как SSH, RDP и т. д., и разрешить весь исходящий трафик.

Чтобы разрешить трафик на 4569 (или любой другой порт, кроме указанного в документации), вам необходимо создайте новое правило брандмауэра с помощью консоли GCP или gcloud утилита.

В нашем случае вам необходимо указать

Вы можете создавать или изменять правила брандмауэра VPC с помощью Google Cloud Console, инструмента командной строки gcloud и REST API. Когда вы создаете или изменяете правило брандмауэра, вы можете указать экземпляры, к которым оно должно применяться, с помощью целевого компонента правила.

Ваша gcloud команда может выглядеть так:

gcloud compute --project=my-project-name firewall-rules create my-rule1 --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:4569,udp:4569

Однако вам необходимо убедиться, что ваш экземпляр также разрешает входящий трафик на этот порт (по умолчанию Debian Stretch не заблокировать что-либо. Чтобы убедиться, что войдите в свою виртуальную машину и выполните эту команду: sudo iptables -L; вы должны увидеть что-то вроде этого:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   

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

person Wojtek_B    schedule 28.09.2020
comment
Могу применить ваше предложение. Команда sudo iptables -L передает это: Цепочка INPUT (policy ACCEPT) target prot opt ​​source destination ACCEPT udp - в любом месте где угодно udp dpt: iax Chain FORWARD (policy ACCEPT) target prot opt ​​source destination Chain OUTPUT (policy ACCEPT) target prot opt ​​source пункт назначения я надеюсь, что это сработает! - person Fabián A. Juárez Martínez; 01.10.2020
comment
Удалось ли вам создать правило брандмауэра с gcloud? Это сработало? - person Wojtek_B; 02.10.2020