Comment ouvrir un port spécifique tel que 9090 dans Google Compute Engine

195

J'ai 2 instances de Google Compute Engine et je souhaite ouvrir le port 9090 dans les deux instances. Je pense que nous devons ajouter des règles de pare-feu.

Pouvez-vous me dire comment faire ça?

Subhradip Bose
la source
7
Je pense que cette question a été répondue. Pourriez-vous choisir l'une des réponses ci-dessous? Cela aiderait les futurs lecteurs à reconnaître plus facilement que ce problème a été résolu.
modulitos
Yo, Subhradip, choisissez une réponse.
oligofren

Réponses:

339

Tu dois:

  1. Accédez à cloud.google.com

  2. Accéder à ma console

  3. Choisissez votre projet

  4. Choisissez Réseau> Réseau VPC

  5. Choisissez "Règles de pare-feu"

  6. Choisissez "Créer une règle de pare-feu"

  7. Pour appliquer la règle à certaines instances de machine virtuelle, sélectionnez Cibles> "Balises cibles spécifiées" et entrez dans "Balises cibles" le nom de la balise. Cette balise sera utilisée pour appliquer la nouvelle règle de pare-feu à l'instance que vous souhaitez. Ensuite, assurez-vous que les balises réseau sont appliquées aux instances.

  8. Pour autoriser les connexions TCP entrantes au port 9090, dans "Protocoles et ports", entrez tcp:9090

  9. Cliquez sur Créer

J'espère que ceci vous aide.

Mise à jour Veuillez vous référer aux documents pour personnaliser vos règles.

Carlos Rojas
la source
4
Le moteur de calcul n'a pas d' option « réseaux » (plus?)
Afr
8
Oui, il n'y a pas d'option Réseaux maintenant, le chemin mis à jour est Projet -> Réseau -> Règles de pare-feu
Caio Vertematti
1
Sur mon instance, j'ai seulement allow httpet allow httpsj'ai ajouté une nouvelle règle de pare-feu mais je n'arrive pas à la trouver. Je suis également sur le niveau gratuit, si cela aide.
A. L
1
Vous devez autoriser http pour ouvrir le port 80 et permettre à https d'ouvrir 443. Il s'agit d'un raccourci.
Carlos Rojas
4
Le chemin de menu des documents change constamment. Il est important de pointer le document dans la réponse: cloud.google.com/vpc/docs/using-firewalls
Anupam
81

Voici l'approche en ligne de commande pour répondre à cette question:

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

Cela ouvrira le port 9090pour les instances que vous nommez. Omettre --source-tagset --source-rangesappliquera la règle à toutes les instances. Plus de détails sont dans la documentation Gcloud et le firewall-rule createmanuel de commande

Les réponses précédentes sont excellentes, mais Google recommande d' utiliser les gcloudcommandes les plus récentes au lieu des gcutilcommandes.

PS: Pour avoir une idée des règles de pare-feu de Google, exécutez gcloud compute firewall-rules listet affichez toutes vos règles de pare-feu

modulitos
la source
Je reçois des plaintes lorsque j'utilise la --descriptionpièce, mais sinon cela fonctionne pour moi.
shabbychef
2
Je ne sais pas s'ils ont changé l'api mais la source et la cible semblent être l'opposé de la réponse de @ modulitos. Selon la documentation de la commande firewall-rules , sourcesignifie le trafic entrant alors qu'il targetfait référence aux instances auxquelles appliquer la règle.
cindyxiaoxiaoli
1
ERROR: (gcloud.compute.firewall-rules.create) Could not fetch resource: - Insufficient Permission@modulitos
alper
Qu'est-ce que le test de suivi @modulitos? C'est telnet :instance_ip :portou nmap -p :port :instance_ip?
Nam G VU
@alper Vous devez faire cette commande avant: "gcloud auth login" et login
Anton Tkachov
10

Vous devrez ajouter une règle de pare-feu pour ouvrir l'accès entrant tcp:9090à vos instances. Si vous disposez de plus de deux instances et que vous souhaitez uniquement ouvrir 9090 à ces deux instances, vous devez vous assurer qu'il existe une balise partagée par ces deux instances. Vous pouvez ajouter ou mettre à jour des balises via la console ou la ligne de commande; Je recommanderais d'utiliser l'interface graphique pour cela si nécessaire, car elle gère le cycle de lecture-modification-écriture avec setinstancetags.

Si vous souhaitez ouvrir le port 9090 à toutes les instances, vous pouvez créer une règle de pare-feu comme:

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

qui s'appliquera à toutes vos instances.

Si vous souhaitez uniquement ouvrir le port 9090 aux deux instances qui servent votre application, assurez-vous qu'elles ont une balise comme my-app, puis ajoutez un pare-feu comme ceci:

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

Vous pouvez en savoir plus sur la création et la gestion de pare-feu dans GCE ici .

E. Anderson
la source
10
gcutiln'est plus disponible; veuillez réécrire vos lignes de commande en utilisant gcloud.
Misha Brukman
10

Cette question est ancienne et la réponse de Carlos Rojas est bonne, mais je pense que je devrais poster quelques choses qui devraient être gardées à l'esprit lors de l'ouverture des ports.

La première chose à retenir est que la section Réseau est renommée Réseau VPC . Donc, si vous essayez de savoir où l' option Règles de pare-feu est disponible, consultez le réseau VPC .

La deuxième chose est que si vous essayez d'ouvrir des ports sur une machine virtuelle Linux, assurez-vous en aucun cas que vous n'essayez d'ouvrir le port à l'aide de la ufwcommande. J'ai essayé d'utiliser cela et j'ai perdu l'accès ssh à la machine virtuelle. Alors ne répétez pas mon erreur.

La troisième chose est que si vous essayez d'ouvrir des ports sur une machine virtuelle Windows, vous devrez créer des règles de pare-feu à l'intérieur de la machine virtuelle également dans le pare-feu Windows avec VPC Networking -> Firewall Rules . Le port doit être ouvert dans les deux règles de pare-feu, contrairement à Linux VM. Donc, si vous n'obtenez pas accès au port depuis l'extérieur de la machine virtuelle, vérifiez si vous avez ouvert le port dans la console GCP et le pare-feu Windows.

La dernière chose (évidente) est de ne pas ouvrir inutilement les ports. Fermez les ports dès que vous n'en avez plus besoin.

J'espère que cette réponse est utile.

Noob
la source
Bons conseils sauf que j'ai ouvert certains ports spécifiques avec la ufwcommande et j'ai toujours un accès ssh.
stackErr
7

J'ai eu le même problème que vous et j'ai pu le résoudre en suivant les instructions de @CarlosRojas avec une petite différence. Au lieu de créer une nouvelle règle de pare-feu, j'ai modifié default-allow-internalcelle pour accepter le trafic de n'importe où, car la création de nouvelles règles ne faisait aucune différence.

Nevershowmyface
la source
La création d'une nouvelle règle de pare-feu entraîne des frais. Avez-vous réussi à éviter cela en modifiant cette règle?
killjoy
@killjoy Je n'en suis pas sûr. Je n'utilise pas actuellement le moteur de calcul Google. Désolé.
Nevershowmyface
2
Bien que cela puisse fonctionner, cette méthode pose des problèmes de sécurité. Ce que j'ai trouvé pour moi, c'est d'utiliser les balises de pare-feu sur mes instances. Lorsque vous créez une règle de pare-feu, vous pouvez créer une «balise cible» pour cette règle. Vous pouvez ensuite appliquer cette balise à votre instance VM qui appliquera la règle à votre instance spécifique. Voir la réponse acceptée ici pour en savoir plus: stackoverflow.com/questions/31509722/…
k00k
7

Création de règles de pare-feu

Veuillez consulter les composants des règles de pare-feu [1] si vous n'êtes pas familier avec les règles de pare-feu dans GCP. Les règles de pare-feu sont définies au niveau du réseau et s'appliquent uniquement au réseau sur lequel elles sont créées; cependant, le nom que vous choisissez pour chacun d'eux doit être unique au projet.

Pour Cloud Console:

  1. Accédez à la page des règles de pare-feu dans la console Google Cloud Platform.
  2. Cliquez sur Créer une règle de pare-feu.
  3. Entrez un nom pour la règle de pare-feu. Ce nom doit être unique pour le projet.
  4. Spécifiez le réseau sur lequel la règle de pare-feu sera implémentée.
  5. Spécifiez la priorité de la règle. Plus le nombre est faible, plus la priorité est élevée.
  6. Pour la direction du trafic, choisissez entrée ou sortie.
  7. Pour l'action sur match, choisissez autoriser ou refuser.
  8. Spécifiez les cibles de la règle.

    • Si vous souhaitez que la règle s'applique à toutes les instances du réseau, choisissez Toutes les instances du réseau.
    • Si vous souhaitez que la règle s'applique à la sélection d'instances par balises réseau (cible), choisissez Balises cible spécifiées, puis saisissez les balises auxquelles la règle doit s'appliquer dans le champ Balises cible.
    • Si vous souhaitez que la règle s'applique pour sélectionner des instances par compte de service associé, choisissez Compte de service spécifié, indiquez si le compte de service se trouve dans le projet en cours ou un autre sous Étendue du compte de service, puis choisissez ou saisissez le nom du compte de service dans le service cible champ de compte.
  9. Pour une règle d'entrée, spécifiez le filtre source:

    • Choisissez Plages IP et saisissez les blocs CIDR dans le champ Plages IP source pour définir la source du trafic entrant par plages d'adresses IP. Utilisez 0.0.0.0/0 pour une source de n'importe quel réseau.
    • Choisissez Sous-réseaux, puis marquez ceux dont vous avez besoin dans le bouton contextuel Sous-réseaux pour définir la source du trafic entrant par nom de sous-réseau.
    • Pour limiter la source par balise réseau, choisissez Balises source, puis saisissez les balises réseau dans le champ Balises source. Pour connaître la limite du nombre de balises source, voir Quotas et limites VPC. Le filtrage par balise source n'est disponible que si la cible n'est pas spécifiée par le compte de service. Pour plus d'informations, voir Filtrage par compte de service et balise réseau.
    • Pour limiter la source par compte de service, choisissez Compte de service, indiquez si le compte de service se trouve dans le projet en cours ou un autre sous Étendue du compte de service, puis choisissez ou saisissez le nom du compte de service dans le champ Compte de service source. Le filtrage par compte de service source n'est disponible que si la cible n'est pas spécifiée par la balise réseau. Pour plus d'informations, voir Filtrage par compte de service et balise réseau.
    • Spécifiez un deuxième filtre source si vous le souhaitez. Les filtres source secondaire ne peuvent pas utiliser les mêmes critères de filtre que le filtre principal.
  10. Pour une règle de sortie, spécifiez le filtre de destination:

    • Choisissez Plages IP et saisissez les blocs CIDR dans le champ Plages IP de destination pour définir la destination du trafic sortant par plages d'adresses IP. Utilisez 0.0.0.0/0 pour signifier partout.
    • Choisissez Sous-réseaux, puis marquez ceux dont vous avez besoin dans le bouton contextuel Sous-réseaux pour définir la destination du trafic sortant par nom de sous-réseau.
  11. Définissez les protocoles et les ports auxquels la règle s'appliquera:

    • Sélectionnez Autoriser tout ou Refuser tout, selon l'action, pour que la règle s'applique à tous les protocoles et ports.

    • Définissez des protocoles et des ports spécifiques:

      • Sélectionnez tcp pour inclure le protocole TCP et les ports. Entrez tous ou une liste de ports séparés par des virgules, tels que 20-22, 80, 8080.
      • Sélectionnez udp pour inclure le protocole et les ports UDP. Entrez tous ou une liste de ports séparés par des virgules, tels que 67-69, 123.
      • Sélectionnez Autres protocoles pour inclure des protocoles tels que icmp ou sctp.
  12. (Facultatif) Vous pouvez créer la règle de pare-feu mais ne pas l'appliquer en définissant son état d'application sur désactivé. Cliquez sur Désactiver la règle, puis sélectionnez Désactivé.

  13. (Facultatif) Vous pouvez activer la journalisation des règles de pare-feu:

    • Cliquez sur Journaux> Activé.
    • Cliquez sur Activer.
  14. Cliquez sur Créer.

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

Kervin L
la source
0

J'ai dû résoudre ce problème en diminuant la priorité (en l'augmentant). Cela a provoqué une réponse immédiate. Pas ce à quoi je m'attendais, mais cela a fonctionné.

justbob
la source