Exemples de journalisation des règles de pare-feu VPC

Les règles de pare-feu de cloud privé virtuel (VPC) génèrent des entrées de journal lorsqu'elles s'appliquent au trafic. Bien qu'un flux de paquets puisse générer plusieurs entrées de journal, une règle de pare-feu VPC génère au maximum une entrée de journal par connexion à partir d'une instance de machine virtuelle (VM). Les exemples suivants montrent comment fonctionne la journalisation des règles de pare-feu VPC dans différents scénarios.

Exemple avec refus de trafic sortant

Cet exemple montre la journalisation d'une règle de pare-feu VPC de refus de trafic sortant qui bloque le trafic entre deux instances de VM dans le même réseau VPC.

Dans cet exemple, le trafic transite entre les instances de VM du réseau VPC example-net dans le projet example-proj.

  • Les deux instances de VM sont les suivantes :

    • VM1 située dans la zone us-west1-a, ayant l'adresse IP 10.10.0.99 dans le sous-réseau west-subnet (région us-west1).
    • VM2 située dans la zone us-east1-b, ayant l'adresse IP 10.20.0.99 dans le sous-réseau east-subnet (région us-east1).
  • Règle A : une règle de pare-feu refusant le trafic sortant cible toutes les instances du réseau, pour le trafic à destination de 10.20.0.99 (VM2) et circulant sur le port TCP 80. La journalisation est activée pour cette règle.

  • Règle B : une règle de pare-feu autorisant le trafic entrant cible toutes les instances du réseau, pour le trafic en provenance de 10.10.0.99 (VM1) et circulant sur le port TCP 80. La journalisation est également activée pour cette règle.

Pour créer les règles de pare-feu VPC, utilisez les commandes gcloud suivantes :

  • Règle A : règle de refus du trafic sortant du port TCP 80, applicable à toutes les instances, à destination de 10.20.0.99 :

    gcloud compute firewall-rules create rule-a \
        --network example-net \
        --action deny \
        --direction EGRESS \
        --rules tcp:80 \
        --destination-ranges 10.20.0.99/32 \
        --priority 10 \
        --enable-logging
    
  • Règle B : règle d'autorisation du trafic entrant sur le port TCP 80, applicable à toutes les instances, en provenance de 10.10.0.99 :

    gcloud compute firewall-rules create rule-b \
        --network example-net \
        --action allow \
        --direction INGRESS \
        --rules tcp:80 \
        --source-ranges 10.10.0.99/32 \
        --priority 10 \
        --enable-logging
    
Une règle de sortie de type "Refuser" bloque la connexion de la VM1 à la VM2.
La règle de refus de sortie bloque la connexion de la VM1 à la VM2 (cliquez pour agrandir).

Dans un scénario où la VM1 tente de se connecter à la VM2 sur le port TCP 80, voici ce qui se passe :

  • Une entrée de journal pour la règle A, observée du point de vue de la VM1, est générée lorsque la VM1 tente de se connecter à 10.20.0.99 (VM2).
  • Étant donné que la règle A bloque le trafic, la règle B n'est pas prise en compte. Par conséquent, aucune entrée de journal n'est consignée pour la règle B du point de vue de la VM2.

La VM1 génère l'enregistrement de journal de règle de pare-feu VPC suivant :

Champ Valeurs
connection src_ip=10.10.0.99
src_port=[EPHEMERAL_PORT]
dest_ip=10.20.0.99
dest_port=80
protocol=6
disposition REFUSÉ
rule_details reference = "network:example-net/firewall:rule-a"
priority = 10
action = DENY
destination_range = 10.20.0.99/32
ip_port_info = tcp:80
direction = egress
instance project_id="example-proj"
instance_name=VM1
region=us-west1
zone=us-west1-a
vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=west-subnet
remote_instance project_id="example-proj"
instance_name=VM2
region=us-east1
zone=us-east1-b
remote_vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=east-subnet
remote_location Aucune information Ce champ n'est utilisé que si la destination se situe en dehors de votre réseau VPC.

Exemple avec autorisation du trafic sortant et autorisation du trafic entrant

Cet exemple montre la journalisation d'une règle de pare-feu VPC autorisant le trafic sortant et d'une règle de pare-feu VPC autorisant le trafic entrant, qui permettent ensemble le trafic entre deux instances de VM dans le même réseau VPC.

Dans cet exemple, le trafic transite entre les instances de VM du réseau VPC example-net dans le projet example-proj.

  • Les deux instances de VM sont les suivantes :

    • VM1 située dans la zone us-west1-a, ayant l'adresse IP 10.10.0.99 dans le sous-réseau west-subnet (région us-west1).
    • VM2 située dans la zone us-east1-b, ayant l'adresse IP 10.20.0.99 dans le sous-réseau east-subnet (région us-east1).
  • Règle A : une règle de pare-feu autorisant le trafic sortant cible toutes les instances du réseau, pour le trafic à destination de 10.20.0.99 (VM2) et circulant sur le port TCP 80. La journalisation est activée pour cette règle.

  • Règle B : une règle de pare-feu autorisant le trafic entrant cible toutes les instances du réseau, pour le trafic en provenance de 10.10.0.99 (VM1) et circulant sur le port TCP 80. La journalisation est également activée pour cette règle.

Pour créer les règles de pare-feu VPC, utilisez les commandes gcloud suivantes :

  • Règle A : règle d'autorisation du trafic sortant du port TCP 80, applicable à toutes les instances, à destination de 10.20.0.99 (VM2) :

    gcloud compute firewall-rules create rule-a \
        --network example-net \
        --action allow \
        --direction EGRESS \
        --rules tcp:80 \
        --destination-ranges 10.20.0.99/32 \
        --priority 10 \
        --enable-logging
    
  • Règle B : règle d'autorisation du trafic entrant sur le port TCP 80, applicable à toutes les instances, en provenance de 10.10.0.99 (VM1) :

    gcloud compute firewall-rules create rule-b \
        --network example-net \
        --action allow \
        --direction INGRESS \
        --rules tcp:80 \
        --source-ranges 10.10.0.99/32 \
        --priority 10 \
        --enable-logging
    
Les règles d'autorisation du trafic sortant et entrant permettent la connexion de la VM1 à la VM2.
Les règles d'autorisation de sortie et d'entrée permettent la connexion de la VM1 à la VM2 (cliquez pour agrandir).

Dans un scénario où la VM1 tente de se connecter à la VM2 sur le port TCP 80, voici ce qui se passe :

  • Une entrée de journal pour la règle A, observée du point de vue de la VM1, est générée lorsque la VM1 tente de se connecter à 10.20.0.99 (VM2).
  • Une entrée de journal pour la règle B, observée du point de vue de la VM2, est générée lorsque la VM2 autorise les connexions entrantes en provenance de 10.10.0.99 (VM1).

La VM1 génère l'enregistrement de journal de règle de pare-feu VPC suivant :

Champ Valeurs
connection src_ip=10.10.0.99
src_port=[EPHEMERAL_PORT]
dest_ip=10.20.0.99
dest_port=80
protocol=6
disposition AUTORISÉE
rule_details reference = "network:example-net/firewall:rule-a"
priority = 10
action = ALLOW
destination_range = 10.20.0.99/32
ip_port_info = tcp:80
direction = egress
instance project_id="example-proj"
instance_name=VM1
region=us-west1
zone=us-west1-a
vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=west-subnet
remote_instance project_id="example-proj"
instance_name=VM2
region=us-east1
zone=us-east1-b
remote_vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=east-subnet
remote_location Aucune information Ce champ n'est utilisé que si la destination se situe en dehors de votre réseau VPC.

La VM2 génère l'enregistrement de journal de règle de pare-feu VPC suivant :

Champ Valeurs
connection src_ip=10.10.0.99
src_port=[EPHEMERAL_PORT]
dest_ip=10.20.0.99
dest_port=80
protocol=6
disposition AUTORISÉE
rule_details reference = "network:example-net/firewall:rule-b"
priority = 10
action = ALLOW
source_range = 10.10.0.99/32
ip_port_info = tcp:80
direction = ingress
instance project_id="example-proj"
instance_name=VM2
region=us-east1
zone=us-east1-b
vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=east-subnet
remote_instance project_id="example-proj"
instance_name=VM1
region=us-west1
zone=us-west1-a
remote_vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=west-subnet
remote_location Aucune information Ce champ n'est utilisé que si la destination se situe en dehors de votre réseau VPC.

Exemple de trafic entrant depuis Internet

Cet exemple montre la journalisation d'une règle de pare-feu autorisant le trafic entrant qui autorise le trafic provenant d'Internet vers une instance de VM. Il montre également comment le comportement du pare-feu avec état affecte une règle de refus du trafic sortant.

Dans cet exemple, le trafic transite d'une ressource externe vers une instance de VM au sein du réseau VPC example-net. Le réseau se trouve dans le projet example-proj.

  • Le système situé sur Internet possède l'adresse IP 203.0.113.114.
  • La VM1 située dans la zone us-west1-a possède l'adresse IP 10.10.0.99 dans le sous-réseau west-subnet (région us-west1).
  • Règle C : une règle de pare-feu autorisant le trafic entrant cible toutes les instances du réseau, pour le trafic en provenance de n'importe quelle adresse IP (0.0.0.0/0) et circulant sur le port TCP 80. La journalisation est activée pour cette règle.
  • Règle D : une règle de pare-feu refusant le trafic sortant cible toutes les instances du réseau, pour le trafic à destination de n'importe quelle adresse IP (0.0.0.0/0), quel que soit le protocole. La journalisation est activée pour cette règle.

Pour créer les règles de pare-feu VPC, utilisez les commandes gcloud suivantes :

  • Règle C : règle d'autorisation du trafic entrant sur le port TCP 80, applicable à toutes les instances, en provenance de n'importe quelle source :

    gcloud compute firewall-rules create rule-c \
        --network example-net \
        --action allow \
        --direction INGRESS \
        --rules tcp:80 \
        --source-ranges 0.0.0.0/0 \
        --priority 10 \
        --enable-logging
    
  • Règle D : règle de refus du trafic sortant, quel que soit le protocole, applicable à toutes les instances, quelle que soit la destination :

    gcloud compute firewall-rules create rule-d \
        --network example-net \
        --action deny \
        --direction EGRESS \
        --rules all \
        --destination-ranges 0.0.0.0/0 \
        --priority 10 \
        --enable-logging
    
La règle d'autorisation d'Ingress permet la connexion d'Internet à la VM1.
Connexion depuis Internet vers la VM (cliquez pour agrandir)

Dans un scénario où un système ayant l'adresse IP 203.0.113.114 tente de se connecter à la VM1 sur le port TCP 80, voici ce qui se passe :

  • La VM1 génère une entrée de journal pour la règle C lorsqu'elle accepte le trafic provenant de 203.0.113.114.
  • Malgré la règle D, la VM1 peut répondre à la requête entrante, car les règles de pare-feuGoogle Cloud sont avec état. Si une requête entrante est autorisée, aucune règle de sortie ne peut bloquer les réponses établies.
  • Comme la règle D ne s'applique pas, le système ne la prend pas en compte et ne fait donc l'objet d'aucune entrée de journal.

La VM1 génère l'enregistrement de journal de règle de pare-feu VPC suivant :

Champ Valeurs
connection src_ip=203.0.113.114
src_port=[EPHEMERAL_PORT]
dest_ip=10.10.0.99
dest_port=80
protocol=6
disposition AUTORISÉE
rule_details reference = "network:my-vpc/firewall:rule-c"
priority = 10
action = ALLOW
source_range = 0.0.0.0/0
ip_port_info = tcp:80
direction = ingress
instance project_id="example-proj"
instance_name=VM1
region=us-west1
zone=us-west1-a
vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=west-subnet
remote_location continent
country
region
city

Étapes suivantes