Cómo abrir un puerto específico como 9090 en Google Compute Engine

195

Tengo 2 instancias de Google Compute Engine y quiero abrir el puerto 9090 en ambas instancias. Creo que necesitamos agregar algunas reglas de firewall.

¿Me puede decir cómo puedo hacer eso?

Subhradip Bose
fuente
77
Creo que esta pregunta ha sido respondida. ¿Te importaría seleccionar una de las respuestas a continuación? Ayudaría a los futuros lectores a reconocer más fácilmente que este problema se ha resuelto.
modulitos
Yo, Subhradip, elige una respuesta.
oligofren

Respuestas:

339

Necesitas:

  1. Ve a cloud.google.com

  2. Ir a mi consola

  3. Elige tu proyecto

  4. Elija Redes> Red VPC

  5. Elija "Reglas de firewalls"

  6. Elija "Crear regla de firewall"

  7. Para aplicar la regla para seleccionar instancias de VM, seleccione Destinos> "Etiquetas de destino especificadas" e ingrese en "Etiquetas de destino" el nombre de la etiqueta. Esta etiqueta se usará para aplicar la nueva regla de firewall en la instancia que desee. Luego, asegúrese de que las instancias tengan aplicada la etiqueta de red.

  8. Para permitir conexiones TCP entrantes al puerto 9090, en "Protocolos y puertos", ingrese tcp:9090

  9. Haz clic en Crear

Espero que esto te ayude.

Actualización Consulte los documentos para personalizar sus reglas.

Carlos Rojas
fuente
44
El motor de cómputo no tiene opción de "redes" (¿ya?)
Después del
8
Sí, no hay una opción de Redes ahora, la ruta actualizada es Proyecto -> Redes -> Reglas de firewall
Caio Vertematti
1
En mi caso, solo tengo allow httpy allow httpshe agregado una nueva regla de firewall, pero parece que no puedo encontrarla. También estoy en el nivel gratuito, si eso ayuda.
A. L
1
Debe permitir que http abra el puerto 80 y permitir que https abra 443. Es un acceso directo.
Carlos Rojas
44
La ruta del menú de los documentos sigue cambiando. Considera
Anupam
81

Aquí está el enfoque de línea de comandos para responder esta pregunta:

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>"

Esto abrirá el puerto 9090para las instancias que nombre. Omitiendo --source-tagsy --source-rangesaplicará la regla a todas las instancias. Más detalles en la documentación de Gcloud y el firewall-rule createmanual de comandos

Las respuestas anteriores son geniales, pero Google recomienda usar los gcloudcomandos más nuevos en lugar de los gcutilcomandos.

PD: para tener una idea de las reglas de firewall de Google, ejecute gcloud compute firewall-rules listy vea todas las reglas de firewall

modulitos
fuente
Recibo quejas cuando uso la --descriptionpieza, pero de lo contrario esto funciona para mí.
shabbychef
2
No estoy seguro de si cambiaron la API, pero la fuente y el destino parecen ser lo opuesto a la respuesta de @ modulitos. De acuerdo con la documentación del comando firewall-rules , sourcesignifica tráfico entrante mientras que se targetrefiere a las instancias a las que se aplicará la regla.
cindyxiaoxiaoli
1
ERROR: (gcloud.compute.firewall-rules.create) Could not fetch resource: - Insufficient Permission@modulitos
Alper
¿Qué es la prueba posterior a @modulitos? Es telnet :instance_ip :porto nmap -p :port :instance_ip?
Nam G VU
@alper Tienes que hacer este comando antes: "gcloud auth login" e iniciar sesión
Anton Tkachov
10

Deberá agregar una regla de firewall para abrir el acceso entrante tcp:9090a sus instancias. Si tiene más de las dos instancias y solo desea abrir 9090 a esas dos, querrá asegurarse de que haya una etiqueta que compartan esas dos instancias. Puede agregar o actualizar etiquetas a través de la consola o la línea de comandos; Recomiendo usar la GUI para eso si es necesario porque maneja el ciclo de lectura-modificación-escritura con setinstancetags.

Si desea abrir el puerto 9090 para todas las instancias, puede crear una regla de firewall como:

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

que se aplicará a todas sus instancias.

Si solo desea abrir el puerto 9090 a las dos instancias que sirven a su aplicación, asegúrese de que tengan una etiqueta como my-app, y luego agregue un firewall como este:

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

Puede leer más sobre cómo crear y administrar firewalls en GCE aquí .

E. Anderson
fuente
10
gcutilya no está disponible; reescribe tus líneas de comando usando gcloud.
Misha Brukman
10

Esta pregunta es antigua y la respuesta de Carlos Rojas es buena, pero creo que debería publicar algunas cosas que deben tenerse en cuenta al intentar abrir los puertos.

Lo primero que debe recordar es que la sección Redes se renombra a Redes VPC . Entonces, si está tratando de averiguar dónde está disponible la opción de Reglas de firewall , vaya a VPC Networking .

La segunda cosa es que si está intentando abrir puertos en una máquina virtual Linux, asegúrese de que bajo ninguna circunstancia intente abrir el puerto con el ufwcomando. Intenté usar eso y perdí el acceso ssh a la VM. Así que no repitas mi error.

La tercera cosa es que, si está intentando abrir puertos en una VM de Windows, deberá crear reglas de Firewall dentro de la VM también en Firewall de Windows junto con Networking VPC -> Reglas de Firewall . El puerto debe abrirse en ambas reglas de firewall, a diferencia de Linux VM. Entonces, si no obtiene acceso al puerto desde fuera de la VM, verifique si ha abierto el puerto tanto en la consola GCP como en el Firewall de Windows.

Lo último (obvio) es que no abra puertos innecesariamente. Cierre los puertos tan pronto como ya no lo necesite.

Espero que esta respuesta sea útil.

novato
fuente
Buenos consejos, excepto que abrí algunos puertos específicos con el ufwcomando y todavía tengo acceso ssh.
stackErr
7

Tuve el mismo problema que tú y pude resolverlo siguiendo las instrucciones de @CarlosRojas con una pequeña diferencia. En lugar de crear una nueva regla de firewall, edité la default-allow-internalde aceptar tráfico desde cualquier lugar, ya que crear nuevas reglas no hizo ninguna diferencia.

Nevershowmyface
fuente
Hay un cargo por crear una nueva regla de firewall. ¿Lograste evitar eso editando esta regla?
killjoy
@killjoy No estoy seguro de eso. Actualmente no estoy usando el motor de cálculo de Google. Lo siento.
Nevershowmyface
2
Si bien esto puede funcionar, existen problemas de seguridad con este método. Lo que encontré que funcionó para mí fue utilizar las etiquetas de firewall en mis instancias. Cuando crea una regla de firewall, puede crear una "Etiqueta de destino" para esa regla. Luego puede aplicar esa etiqueta a su instancia de VM que aplicará la regla a su instancia específica. Consulte la respuesta aceptada aquí para obtener más información: stackoverflow.com/questions/31509722/…
k00k
7

Crear reglas de firewall

Revise los componentes de la regla del firewall [1] si no está familiarizado con las reglas del firewall en GCP. Las reglas de firewall se definen a nivel de red y solo se aplican a la red donde se crean; sin embargo, el nombre que elija para cada uno de ellos debe ser exclusivo del proyecto.

Para la consola de la nube:

  1. Vaya a la página de reglas de Firewall en Google Cloud Platform Console.
  2. Haga clic en Crear regla de firewall.
  3. Ingrese un nombre para la regla de firewall. Este nombre debe ser único para el proyecto.
  4. Especifique la red donde se implementará la regla de firewall.
  5. Especifique la prioridad de la regla. Cuanto menor sea el número, mayor es la prioridad.
  6. Para la dirección del tráfico, elija la entrada o la salida.
  7. Para la Acción en el partido, elija permitir o denegar.
  8. Especifique los objetivos de la regla.

    • Si desea que la regla se aplique a todas las instancias en la red, elija Todas las instancias en la red.
    • Si desea que la regla se aplique a instancias seleccionadas por etiquetas de red (destino), elija Etiquetas de destino especificadas, luego escriba las etiquetas a las que debe aplicarse la regla en el campo Etiquetas de destino.
    • Si desea que la regla se aplique a instancias seleccionadas por cuenta de servicio asociada, elija Cuenta de servicio especificada, indique si la cuenta de servicio está en el proyecto actual u otro en el alcance de la cuenta de servicio, y elija o escriba el nombre de la cuenta de servicio en el servicio Destino campo de cuenta
  9. Para una regla de ingreso, especifique el filtro Fuente:

    • Elija rangos de IP y escriba los bloques CIDR en el campo Rangos de IP de origen para definir el origen del tráfico entrante por rangos de direcciones IP. Use 0.0.0.0/0 para una fuente de cualquier red.
    • Elija Subredes y luego marque las que necesita en el botón emergente Subredes para definir la fuente del tráfico entrante por nombre de subred.
    • Para limitar la fuente por etiqueta de red, elija Etiquetas de fuente, luego escriba las etiquetas de red en el campo Etiquetas de fuente. Para conocer el límite en el número de etiquetas de origen, consulte Cuotas y límites de VPC. El filtrado por etiqueta de origen solo está disponible si la cuenta de servicio no especifica el destino. Para obtener más información, consulte el filtrado por cuenta de servicio vs. etiqueta de red.
    • Para limitar el origen por cuenta de servicio, elija Cuenta de servicio, indique si la cuenta de servicio está en el proyecto actual u otro en el alcance de la cuenta de servicio, y elija o escriba el nombre de la cuenta de servicio en el campo Cuenta de servicio de origen. El filtrado por cuenta de servicio de origen solo está disponible si la etiqueta de red no especifica el destino. Para obtener más información, consulte el filtrado por cuenta de servicio frente a etiqueta de red.
    • Especifique un segundo filtro de origen si lo desea. Los filtros fuente secundarios no pueden usar el mismo criterio de filtro que el primario.
  10. Para una regla de salida, especifique el filtro Destino:

    • Elija rangos de IP y escriba los bloques CIDR en el campo Rangos de IP de destino para definir el destino del tráfico saliente por rangos de direcciones IP. Use 0.0.0.0/0 para significar en todas partes.
    • Elija Subredes y luego marque las que necesita en el botón emergente Subredes para definir el destino del tráfico saliente por nombre de subred.
  11. Defina los protocolos y puertos a los que se aplicará la regla:

    • Seleccione Permitir todo o Denegar todo, según la acción, para que la regla se aplique a todos los protocolos y puertos.

    • Definir protocolos y puertos específicos:

      • Seleccione tcp para incluir el protocolo TCP y los puertos. Ingrese todos o una lista de puertos delimitados por comas, como 20-22, 80, 8080.
      • Seleccione udp para incluir el protocolo UDP y los puertos. Ingrese todos o una lista de puertos delimitados por comas, como 67-69, 123.
      • Seleccione Otros protocolos para incluir protocolos como icmp o sctp.
  12. (Opcional) Puede crear la regla de firewall pero no aplicarla estableciendo su estado de aplicación en deshabilitado. Haga clic en Deshabilitar regla, luego seleccione Deshabilitado.

  13. (Opcional) Puede habilitar el registro de reglas de firewall:

    • Haga clic en Registros> Activado.
    • Haz clic en Activar.
  14. Haz clic en Crear.

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

Kervin L
fuente
0

Tuve que arreglar esto disminuyendo la prioridad (haciéndola más alta). Esto causó una respuesta inmediata. No era lo que esperaba, pero funcionó.

justbob
fuente