Como abrir uma porta específica como 9090 no Google Compute Engine

195

Tenho duas instâncias do Google Compute Engine e quero abrir a porta 9090 nas duas instâncias. Eu acho que precisamos adicionar algumas regras de firewall.

Você pode me dizer como posso fazer isso?

Subhradip Bose
fonte
7
Eu acho que esta pergunta foi respondida. Você se importaria de selecionar uma das respostas abaixo? Ajudaria futuros leitores a reconhecer mais facilmente que esse problema foi resolvido.
Modulitos 18/09/16
Subhradip, escolha uma resposta.
Oligofren #

Respostas:

339

Você precisa:

  1. Acesse cloud.google.com

  2. Vá para o meu console

  3. Escolha o seu projeto

  4. Escolha Rede> Rede VPC

  5. Escolha "Regras de firewalls"

  6. Escolha "Criar regra de firewall"

  7. Para aplicar a regra à seleção de instâncias de VM, selecione Destinos> "Tags de destino especificadas" e insira em "Tags de destino" o nome da tag. Essa tag será usada para aplicar a nova regra de firewall à instância que você desejar. Em seguida, verifique se as instâncias têm a etiqueta de rede aplicada.

  8. Para permitir conexões TCP de entrada na porta 9090, em "Protocolos e Portas", digite tcp:9090

  9. Clique em Create

Espero que isso ajude você.

Atualização Consulte os documentos para personalizar suas regras.

Carlos Rojas
fonte
4
O motor de computação não tem opção "redes" (mais?)
Afr
8
Sim, não há nenhuma opção Networks agora, o caminho atualizado é de Projetos -> Rede -> Regras de Firewall
Caio Vertematti
1
Na minha instância, eu apenas adicionei allow httpe allow httpsadicionei uma nova regra de firewall, mas não consigo encontrá-la. Eu também estou no nível gratuito, se ajudar.
A. L
1
Você precisa permitir que o http abra a porta 80 e que o https abra 443. É um atalho.
Carlos Rojas
4
O caminho do menu dos documentos continua mudando. É importante apontar para o documento na resposta: cloud.google.com/vpc/docs/using-firewalls
Anupam
81

Aqui está a abordagem da linha de comandos para responder a esta pergunta:

gcloud compute firewall-rules create <rule-name> --allow tcp:9090 --source-tags=<list-of-your-instances-names> --source-ranges=0.0.0.0/0 --description="<your-description-here>"

Isso abrirá a porta 9090para as instâncias que você nomear. Omitir --source-tagse --source-rangesaplicará a regra a todas as instâncias. Mais detalhes estão na documentação do Gcloud e no firewall-rule createmanual de comando

As respostas anteriores são ótimas, mas o Google recomenda o uso dos gcloudcomandos mais recentes em vez dos gcutilcomandos.

PS: Para ter uma idéia das regras de firewall do Google, execute gcloud compute firewall-rules liste visualize todas as regras de firewall

modulitos
fonte
Recebo reclamações quando uso a --descriptionpeça, mas, caso contrário, isso funciona para mim.
shabbychef
2
Não tenho certeza se eles mudaram a API, mas a origem e o destino parecem ser o oposto da resposta do @ modulitos. De acordo com a documentação do comando firewall-rules , sourcesignifica tráfego de entrada, enquanto targetse refere às instâncias às quais a regra é aplicada.
Cindyxiaoxiaoli
1
ERROR: (gcloud.compute.firewall-rules.create) Could not fetch resource: - Insufficient Permission@modulitos
alper
O que é o teste de rescaldo @modulitos? É telnet :instance_ip :portou nmap -p :port :instance_ip?
Nam G VU
@alper Você deve executar este comando antes: "gcloud auth login" e logon
Anton Tkachov
10

Você precisará adicionar uma regra de firewall para abrir o acesso de entrada tcp:9090às suas instâncias. Se você tiver mais do que as duas instâncias e desejar abrir apenas o 9090 para essas duas instâncias, verifique se há uma tag que essas duas instâncias compartilhem. Você pode adicionar ou atualizar tags por meio do console ou da linha de comando; Eu recomendo usar a GUI para isso, se necessário, pois ele lida com o ciclo de leitura, modificação e gravação setinstancetags.

Se você deseja abrir a porta 9090 para todas as instâncias, é possível criar uma regra de firewall como:

gcutil addfirewall allow-9090 --allowed=tcp:9090

que se aplicará a todas as suas instâncias.

Se você deseja apenas abrir a porta 9090 para as duas instâncias que estão atendendo ao seu aplicativo, verifique se elas possuem uma marca semelhante my-appe adicione um firewall assim:

gcutil addfirewall my-app-9090 --allowed=tcp:9090 --target_tags=my-app

Você pode ler mais sobre a criação e o gerenciamento de firewalls no GCE aqui .

E. Anderson
fonte
10
gcutilnão está mais disponível; reescreva suas linhas de comando usando gcloud.
Misha Brukman
10

Essa pergunta é antiga e a resposta de Carlos Rojas é boa, mas acho que devo postar algumas coisas que devem ser lembradas ao tentar abrir os portos.

A primeira coisa a lembrar é que a seção Rede é renomeada para Rede VPC . Portanto, se você estiver tentando descobrir onde a opção Regras de Firewall está disponível, consulte a Rede de VPCs .

A segunda coisa é, se você estiver tentando abrir portas em uma VM Linux, certifique-se de que, em nenhuma circunstância, tente abrir a porta usando o ufwcomando Eu tentei usar isso e perdi o acesso ssh à VM. Portanto, não repita meu erro.

A terceira coisa é que, se você estiver tentando abrir portas em uma VM do Windows, precisará criar regras de Firewall dentro da VM também no Firewall do Windows junto com VPC Networking -> Firewall Rules . A porta precisa ser aberta nas duas regras de firewall, diferente da Linux VM. Portanto, se você não está obtendo acesso à porta de fora da VM, verifique se você abriu a porta no console GCP e no Firewall do Windows.

A última coisa (óbvia) é: não abra portas desnecessariamente. Feche as portas assim que não precisar mais delas.

Espero que esta resposta seja útil.

novato
fonte
Boas dicas, exceto que eu abri algumas portas específicas com o ufwcomando e ainda tenho acesso ssh.
stackErr
7

Eu tive o mesmo problema que você e pude resolvê-lo seguindo as instruções @CarlosRojas com um pouco de diferença. Em vez de criar uma nova regra de firewall, editei a regra default-allow-internalpara aceitar tráfego de qualquer lugar, pois a criação de novas regras não fazia diferença.

Nevershowmyface
fonte
Há uma taxa para criar uma nova regra de firewall. Você conseguiu evitar isso editando esta regra?
Kill191816
@killjoy Não tenho certeza. No momento, não estou usando o mecanismo de computação do google. Desculpe.
Nevershowmyface
2
Embora isso possa funcionar, há preocupações de segurança com esse método. O que eu achei que funcionou para mim foi utilizar as tags de firewall nas minhas instâncias. Ao criar uma regra de firewall, você pode criar uma "Etiqueta de destino" para essa regra. Em seguida, você pode aplicar essa marca à sua instância da VM, que aplicará a regra à sua instância específica. Veja a resposta aceita aqui para obter mais informações: stackoverflow.com/questions/31509722/…
k00k
7

Criando regras de firewall

Revise os componentes da regra de firewall [1] se você não estiver familiarizado com as regras de firewall no GCP. As regras de firewall são definidas no nível da rede e aplicam-se apenas à rede em que são criadas; no entanto, o nome escolhido para cada um deles deve ser exclusivo para o projeto.

Para o Cloud Console:

  1. Vá para a página de regras do Firewall no Google Cloud Platform Console.
  2. Clique em Criar regra de firewall.
  3. Digite um nome para a regra do firewall. Este nome deve ser exclusivo para o projeto.
  4. Especifique a rede na qual a regra do firewall será implementada.
  5. Especifique a prioridade da regra. Quanto menor o número, maior a prioridade.
  6. Para a direção do tráfego, escolha entrada ou saída.
  7. Para a Ação na partida, escolha permitir ou negar.
  8. Especifique os destinos da regra.

    • Se você deseja que a regra se aplique a todas as instâncias da rede, escolha Todas as instâncias da rede.
    • Se você deseja que a regra se aplique a selecionar instâncias por tags de rede (destino), escolha Tags de destino especificadas e digite as tags às quais a regra deve ser aplicada no campo Tags de destino.
    • Se você deseja que a regra se aplique a selecionar instâncias por conta de serviço associada, escolha Conta de serviço especificada, indique se a conta de serviço está no projeto atual ou em outra no escopo da conta de serviço e escolha ou digite o nome da conta de serviço no serviço de destino campo da conta.
  9. Para uma regra de entrada, especifique o filtro Origem:

    • Escolha intervalos IP e digite os blocos CIDR no campo Intervalo IP de origem para definir a origem do tráfego recebido pelos intervalos de endereços IP. Use 0.0.0.0/0 para uma fonte de qualquer rede.
    • Escolha Sub-redes e marque as que você precisa no botão pop-up Sub-redes para definir a origem do tráfego recebido pelo nome da sub-rede.
    • Para limitar a origem por marca de rede, escolha Tags de origem e digite as marcas de rede no campo Tags de origem. Para o limite do número de tags de origem, consulte Cotas e limites da VPC. A filtragem por tag de origem estará disponível apenas se o destino não for especificado pela conta de serviço. Para obter mais informações, consulte Filtrando por conta de serviço x tag de rede.
    • Para limitar a fonte por conta de serviço, escolha Conta de serviço, indique se a conta de serviço está no projeto atual ou outro no escopo da conta de serviço e escolha ou digite o nome da conta de serviço no campo Conta de serviço de origem. A filtragem por conta de serviço de origem estará disponível apenas se o destino não for especificado pela tag de rede. Para mais informações, consulte filtragem por conta de serviço x etiqueta de rede.
    • Especifique um segundo filtro de origem, se desejar. Os filtros de origem secundária não podem usar o mesmo critério de filtro que o principal.
  10. Para uma regra de saída, especifique o filtro Destino:

    • Escolha intervalos de IP e digite os blocos CIDR no campo Intervalo de IP de destino para definir o destino do tráfego de saída por intervalos de endereços IP. Use 0.0.0.0/0 para significar em qualquer lugar.
    • Escolha Sub-redes e marque as que você precisa no botão pop-up Sub-redes para definir o destino do tráfego de saída pelo nome da sub-rede.
  11. Defina os protocolos e portas às quais a regra se aplicará:

    • Selecione Permitir tudo ou Negar tudo, dependendo da ação, para que a regra se aplique a todos os protocolos e portas.

    • Defina protocolos e portas específicos:

      • Selecione tcp para incluir o protocolo e as portas TCP. Digite todas ou uma lista de portas delimitadas por vírgula, como 20-22, 80, 8080.
      • Selecione udp para incluir o protocolo e as portas UDP. Digite todas ou uma lista de portas delimitadas por vírgula, como 67-69, 123.
      • Selecione Outros protocolos para incluir protocolos como icmp ou sctp.
  12. (Opcional) Você pode criar a regra de firewall, mas não aplicá-la, definindo seu estado de aplicação como desativado. Clique em Desativar regra e selecione Desativado.

  13. (Opcional) Você pode habilitar o log de regras de firewall:

    • Clique em Logs> Ativado.
    • Clique em Ativar.
  14. Clique em Create.

Link: [1] https://cloud.google.com/vpc/docs/firewalls#firewall_rule_components

Kervin L
fonte
0

Eu tive que corrigir isso diminuindo a prioridade (aumentando). Isso causou uma resposta imediata. Não era o que eu esperava, mas funcionou.

justbob
fonte