Dans cet atelier, vous allez examiner des journaux de flux VPC. Les journaux de flux VPC enregistrent les flux de réseau envoyés ou reçus par des instances de VM. Ils peuvent être utilisés pour la surveillance et l'investigation des réseaux, l'analyse de la sécurité en temps réel et l'optimisation des dépenses.
Lors de cet atelier, vous allez activer la journalisation de flux VPC et utiliser Cloud Logging pour consulter les journaux. Ensuite, vous surveillerez le réseau, effectuerez une investigation et analyserez la sécurité en temps réel avant de désactiver la journalisation de flux VPC.
Objectifs
Dans cet atelier, vous allez apprendre à :
activer la journalisation de flux VPC pour un sous-réseau ;
accéder aux journaux via Cloud Logging ;
filtrer les journaux selon des sous-réseaux, VM, ports et protocoles spécifiques ;
surveiller le réseau, effectuer une investigation et analyser la sécurité en temps réel ;
désactiver la journalisation de flux VPC.
Avant de commencer l'atelier
Pour chaque atelier, nous vous attribuons un nouveau projet Google Cloud et un nouvel ensemble de ressources pour une durée déterminée, sans frais.
Connectez-vous à Qwiklabs dans une fenêtre de navigation privée.
Vérifiez le temps imparti pour l'atelier (par exemple : 01:15:00) : vous devez pouvoir le terminer dans ce délai.
Une fois l'atelier lancé, vous ne pouvez pas le mettre en pause. Si nécessaire, vous pourrez le redémarrer, mais vous devrez tout reprendre depuis le début.
Lorsque vous êtes prêt, cliquez sur Démarrer l'atelier.
Notez vos identifiants pour l'atelier (Nom d'utilisateur et Mot de passe). Ils vous serviront à vous connecter à Google Cloud Console.
Cliquez sur Ouvrir la console Google.
Cliquez sur Utiliser un autre compte, puis copiez-collez les identifiants de cet atelier lorsque vous y êtes invité.
Si vous utilisez d'autres identifiants, des messages d'erreur s'afficheront ou des frais seront appliqués.
Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
Activer Google Cloud Shell
Google Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud.
Google Cloud Shell vous permet d'accéder à vos ressources Google Cloud grâce à une ligne de commande.
Dans la barre d'outils située en haut à droite dans la console Cloud, cliquez sur le bouton "Ouvrir Cloud Shell".
Cliquez sur Continuer.
Le provisionnement et la connexion à l'environnement prennent quelques instants. Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Par exemple :
gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.
Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project
Résultat :
[core]
project =
Exemple de résultat :
[core]
project = qwiklabs-gcp-44776a13dea667a6
Remarque : Pour consulter la documentation complète sur gcloud, accédez au guide de présentation de la gcloud CLI.
Tâche 1 : Activer la journalisation de flux VPC
Dans cette tâche, vous allez activer la journalisation de flux pour deux sous-réseaux. Vous pouvez également activer la journalisation de flux de la même manière pour les réseaux personnalisés définis par l'utilisateur. L'activation de la journalisation des flux est également possible lorsque vous créez un sous-réseau en une seule étape.
Utiliser gcloud dans Cloud Shell pour activer la journalisation de flux VPC sur deux sous-réseaux
Pour activer la journalisation de flux dans deux sous-réseaux, exécutez les commandes suivantes dans Cloud Shell :
Notez que vous avez activé la journalisation de flux VPC pour les sous-réseaux des régions us-central1 et europe-west1. La journalisation de flux n'est activée sur aucun des autres sous-réseaux.
Pour créer trois instances dans des sous-réseaux différents (qui seront utilisées pour des tests ultérieurs), exécutez les commandes suivantes :
gcloud compute instances create default-us-vm \
--machine-type e2-micro \
--zone=us-central1-a --network=default
gcloud compute instances create default-eu-vm \
--machine-type e2-micro \
--zone=europe-west1-b --network=default
gcloud compute instances create default-ap-vm \
--machine-type e2-micro \
--zone=asia-east1-a --network=default
Remarque : Si une erreur de type ZONE_RESOURCE_POOL_EXHAUSTED s'affiche, mettez à jour la zone dans la commande gcloud et essayez d'exécuter celle-ci à nouveau. Par exemple, si us-central1-a échoue, essayez us-central1-b.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Activer la journalisation de flux VPC sur des sous-réseaux et créer des instances
Tâche 2 : Générer du trafic réseau pour les tests
Dans cette tâche, vous allez créer du trafic réseau pour tester la connectivité entre les instances.
Dans la console Google Cloud, accédez au Menu de navigation, puis cliquez sur Compute Engine > Instances de VM pour afficher la liste des instances de VM.
Enregistrez les adresses IP internes et externes de chaque instance. Vous aurez besoin de ces adresses IP ultérieurement dans cet atelier.
Instance
Adresse IP interne
Adresse IP externe
default-ap-vm
*****
*****
default-eu-vm
*****
*****
default-us-vm
*****
*****
Sur la ligne de l'instance default-us-vm, cliquez sur SSH.
Une fois connecté via SSH, exécutez les commandes suivantes :
Ces commandes ont permis d'effectuer les opérations suivantes :
Installation de l'utilitaire de résolution DNS hôte
Exécution d'une résolution DNS de www.wikipedia.org en utilisant le serveur DNS 8.8.8.8
Envoi d'un ping à l'instance default-eu-vm et www.google.com
Utilisation de curl pour créer une connexion HTTP à www.google.com
Ensuite, vous exécutez les mêmes commandes que ci-dessus, mais au lieu d'envoyer un ping à l'instance default-eu-vm depuis default-us-vm, vous envoyez un ping à l'instance default-us-vm depuis default-eu-vm.
Revenez à la console Cloud, puis dans la ligne de l'instance default-eu-vm, cliquez sur SSH.
Une fois connecté via SSH, exécutez les commandes suivantes :
Tâche 3 : Afficher des journaux de flux dans Cloud Logging
Dans cette tâche, vous allez consulter les journaux de flux VPC de tous les projets dans Cloud Logging.
Accéder à tous les journaux de flux
Dans la console Cloud, accédez au Menu de navigation > Journaux > Explorateur de journaux. (Si cette option de menu n'apparaît pas, passez à l'étape 3 de l'atelier).
Dans le menu Ressource du panneau Requête, cliquez sur Sous-réseau.
Dans le menu Nom du journal, cliquez sur compute.googleapis.com/vpc_flows.
Remarque : Si aucun nom de journal n'apparaît pour la valeur ci-dessus, essayez de coller compute.googleapis.com%2Fvpc_flows à la place.
Cliquez sur Exécuter la requête.
Le volet "Résultats de la requête" affiche les entrées des journaux de flux VPC. Si aucun journal n'apparaît pour compute.googleapis.com/vpc_flows, patientez quelques minutes pour que ce type de journal s'affiche.
Remarque : Tous les journaux de flux VPC de votre projet devraient apparaître. Gardez à l'esprit que vous n'avez activé les journaux de flux que pour deux des sous-réseaux.
Développez l'une des entrées de journal.
Dans cette entrée de journal, développez jsonPayload, puis connection.
Remarque : Certaines entrées ne comportent pas de champ jsonPayload. Vous devrez peut-être en ouvrir plusieurs avant d'en trouver une qui en contient.
Examinez les informations sur la connexion, et notez que le port et l'adresse IP de la source et de la destination ont été enregistrés.
Recherchez un journal comportant une valeur src_instance dans le champ jsonPayload. Examinez les informations concernant cette instance src.
src_instance peut correspondre à l'une de vos instances ou à une adresse IP externe si le trafic ne provient pas de votre réseau VPC.
Examinez les autres informations contenues dans cette entrée de journal ou ailleurs.
Tâche 4 : Effectuer un filtrage avancé
Dans cette tâche, vous allez utiliser des filtres avancés dans le générateur de requêtes. Vous allez également explorer des journaux d'accès pour une adresse IP source ou de destination spécifique, et pour certains ports et protocoles.
Un filtre de journaux avancé est une expression booléenne qui délimite un sous-ensemble parmi toutes les entrées de journal d'un projet. Voici quelques utilisations possibles :
Choisir des entrées de journal pour des VM spécifiques
Choisir des entrées de journal pour des ports sources ou de destination spécifiques
Choisir des entrées de journal pour une adresse IP source ou de destination spécifique
Choisir des entrées de journal pour des protocoles spécifiques
Cliquez dans la zone Requête.
Supprimez la requête précédente et copiez-collez la suivante en remplaçant <INSERT_PROJECT_ID> par l'ID de votre projet Google Cloud Qwiklabs :
Remarque : Dans la suite de cet atelier, assurez-vous de toujours garder ces deux lignes au début du filtre. Vous ajouterez des lignes supplémentaires à la suite de ces lignes. Si vous supprimez ou modifiez ces deux lignes par erreur, vous pouvez copier celles qui figurent ci-dessus (en prenant soin de changer l'ID du projet).
Journaux d'accès pour une adresse IP source ou de destination spécifique
Ajoutez la ligne suivante à la fin du filtre : Remplacez Internal_IP_Of_default_us_vm par l'adresse IP interne de votre instance default_us_vm (enregistrée précédemment) :
Toutes les entrées de journal dont l'adresse IP source est l'adresse IP interne de l'instance default-us-vm sont désormais visibles. Il devrait s'agir des mêmes entrées que celles du filtre précédent qui affichait l'instance source de default-us-vm.
Journaux d'accès pour des ports et protocoles spécifiques
Supprimez la dernière ligne du filtre (celle qui correspond à src_ip) et remplacez-la par la ligne suivante, qui n'affiche que les entrées dont le port de destination correspond à 22 (SSH) :
jsonPayload.connection.dest_port=22
Cliquez sur Exécuter la requête et observez les résultats. Vous devriez voir trois journaux, car vous vous êtes connecté trois fois en SSH aux VM.
Modifiez la dernière ligne du filtre pour n'afficher que le trafic dont le port de destination correspond à 80 (HTTP) :
jsonPayload.connection.dest_port=80
Cliquez sur Exécuter la requête et observez les résultats.
Associez plusieurs ports en remplaçant la dernière ligne et en ajoutant cette instruction avec un opérateur OR à la fin du filtre de port :
jsonPayload.connection.dest_port=(80 OR 22)
Modifiez la dernière ligne du filtre pour n'afficher que les entrées utilisant le protocole UDP (protocole n° 17) :
jsonPayload.connection.protocol=17
Cliquez sur Exécuter la requête et observez les résultats.
Plusieurs entrées devraient apparaître dans le journal. Elles correspondent aux appels DNS que vous avez effectués avec l'utilitaire hôte.
Examinez l'une des entrées de journal et trouvez le numéro du port de destination que le DNS utilise.
Remarque : DNS utilise le port 53.
Modifiez le filtre pour afficher toutes les entrées avec un protocole 17 et un port de destination 53 :
Cliquez sur Exécuter la requête et observez les résultats.
Remarque : Actuellement, les journaux de flux ne surveillent que les protocoles UDP (protocole n° 17) et TCP (protocole n° 6). Vous avez précédemment généré du trafic ICMP sur les instances à l'aide de la commande ping. ICMP correspond au protocole n° 1. Si vous créez un filtre pour afficher le protocole n° 1, aucune entrée ne s'affiche. Vous pouvez essayer.
Tâche 5 : Effectuer la surveillance du réseau et assurer l'analyse de la sécurité en temps réel
Dans cette tâche, vous allez créer un filtre et l'utiliser pour voir si du trafic RDP tente d'accéder au VPC.
Rechercher des ports et des protocoles inattendus
Comme vous exécutez des instances Linux dans le réseau VPC, aucun trafic RDP ne devrait apparaître. Cependant, une règle de pare-feu dans les paramètres par défaut autorise le trafic RDP de toute provenance. Ainsi, une personne ou un élément sur Internet peut tenter de se connecter à vos serveurs à l'aide du protocole RDP.
Modifiez le filtre de journal de flux pour afficher tout le trafic dont le port de destination correspond à 3389 (RDP). Veillez à garder les deux premières lignes du filtre existant, mais supprimez et remplacez les autres lignes par ce qui suit, puis cliquez sur Exécuter la requête :
jsonPayload.connection.dest_port=3389
Si un trafic RDP apparaît, vérifiez sa provenance. Il est possible qu'aucun trafic RDP ne soit visible, mais il est fréquent d'en voir au moins un peu. Si aucun trafic n'est visible, patientez quelques minutes et vérifiez à nouveau.
La présence de trafic RDP, souvent constatée, montre à quel point le trafic indésirable peut être répandu sur Internet. Elle illustre également l'importance de la bonne configuration des réseaux VPC et des règles de pare-feu.
Dans cet atelier, vous avez utilisé le VPC par défaut, ainsi que toutes les règles de pare-feu par défaut. Vous avez donc pu constater les risques auxquels vous vous exposez si vous ne réglez pas précisément ces règles pour exclure le trafic indésirable.
Remarque : Nous vous recommandons d'utiliser un VPC personnalisé avec des règles de pare-feu très spécifiques et de supprimer le VPC par défaut pour les systèmes de production.Remarque : Le service Google Cloud Armor peut également vous aider à limiter le trafic indésirable.
Google Cloud Armor protège votre infrastructure et vos applications à grande échelle contre les attaques par déni de service distribué (DDoS), à l'aide de l'infrastructure mondiale et des systèmes de sécurité de Google.
Créer des exportations pour assurer l'analyse de la sécurité en temps réel
Les journaux de flux peuvent être exportés vers n'importe quelle destination compatible avec l'exportation Cloud Logging (Pub/Sub, BigQuery, etc.). La création d'une exportation permet d'exporter les futurs journaux correspondants vers la destination sélectionnée. Les journaux existants ne sont toutefois pas exportés.
L'exportation des journaux vers BigQuery permet d'utiliser les outils d'analyse BigQuery sur vos journaux pour effectuer des analyses. L'exportation des journaux vers Pub/Sub permet de transmettre vos journaux à d'autres applications, à d'autres dépôts ou à des tiers.
Remarque : Lorsque vous créez une exportation Cloud, les filtres actuellement sélectionnés sont appliqués à l'exportation. Ainsi, seuls les événements qui correspondent au filtre sont exportés. Par exemple, si un filtre n'affiche que le trafic vers le port de destination 3389, seul le trafic correspondant à ce filtre est exporté.
Cela permet de réduire la quantité de données exportées (ce qui pourrait réduire les coûts) ou de réaliser différentes exportations en fonction du contenu des données. Dans cet atelier, vous allez supprimer les filtres et exporter tous les journaux puisque le trafic est faible.
Supprimez le texte dans l'éditeur de requêtes, puis cliquez sur Exécuter la requête.
Cliquez sur Autres actions > Créer un récepteur.
Dans "Nom du récepteur", saisissez FlowLogBQExport, puis cliquez sur Suivant.
Dans "Sélectionner le service de récepteur", choisissez Ensemble de données BigQuery.
Dans "Destination du récepteur", sélectionnez Créer un ensemble de données BigQuery.
Dans "ID de l'ensemble de données", saisissez flowlogs_dataset, puis cliquez sur Créer l'ensemble de données.
Cliquez sur Créer un récepteur. La page "Récepteurs du routeur de journaux" s'affiche.
Le récepteur FlowLogBQExport que vous avez créé devrait y apparaître. Si ce n'est pas le cas, cliquez sur Routeur de journaux.
À droite, cliquez sur le menu Autres actions () correspondant à votre exportation et sélectionnez Afficher les détails du récepteur.
Cliquez sur Annuler.
Remarque : Tous les futurs journaux seront maintenant exportés vers BigQuery. Les outils BigQuery peuvent désormais servir à effectuer une analyse sur les données des journaux de flux. Vous effectuerez une requête simple dans BigQuery dans la suite de l'atelier.Remarque : Vous pouvez également exporter des entrées de journal vers Pub/Sub ou Cloud Storage.
L'exportation vers Pub/Sub est utile si vous voulez effectuer des opérations ETL sur vos journaux avant de les stocker dans une base de données (Opérations > Pub/Sub > Dataflow > BigQuery/Cloud Bigtable).
L'exportation vers Cloud Storage permet de regrouper les entrées et de les écrire dans des objets Cloud Storage environ toutes les heures.
Créez maintenant une exportation vers Pub/Sub.
Sur la page "Routeur de journaux", cliquez sur Créer un récepteur.
Dans "Nom du récepteur", saisissez FlowLogPubSubExport, puis cliquez sur Suivant.
Sélectionnez Sujet Cloud Pub/Sub dans "Sélectionner le service de récepteur".
Dans "Sujet Cloud Pub/Sub", sélectionnez Créer un sujet.
Dans le champ "ID du sujet", saisissez FlowLogsTopic, puis cliquez sur Créer.
Cliquez sur Créer un récepteur.
La page "Récepteurs du routeur de journaux" s'affiche. Le récepteur FlowLogsTopic que vous avez créé devrait y apparaître. Si ce n'est pas le cas, cliquez sur Routeur de journaux.
À droite, cliquez sur le menu Autres actions pour votre exportation et sélectionnez Afficher les détails du récepteur.
Le filtre qui était présent lorsque vous avez créé l'exportation s'affiche.
Cliquez sur Annuler.
Vous pouvez désormais vous abonner au nouveau sujet Pub/Sub et recevoir des notifications lorsque de nouveaux journaux sont disponibles. Les journaux peuvent ainsi être transmis et intégrés à un outil de gestion des informations et des événements de sécurité (SIEM, Security Information and Event Management).
Les outils SIEM servent à obtenir des insights opérationnels en temps réel et à créer des rapports d'audit à l'aide de fonctionnalités de visualisation performantes.
Tâche 6 : Analyser des journaux de flux dans BigQuery
Dans cette tâche, vous allez analyser les journaux de flux dans BigQuery.
Remarque : Lorsque vous exportez des journaux vers un ensemble de données BigQuery, Cloud Logging crée des tables datées pour stocker les entrées de journal exportées. Les entrées de journal sont placées dans des tables dont les noms sont basés sur les noms de journal de ces entrées.
Dans la console Cloud, accédez au Menu de navigation, puis cliquez sur BigQuery.
Dans le volet de navigation, sous Explorateur, développez le nom du projet pour afficher l'ensemble de données flowlogs_dataset.
Développez l'ensemble de données pour consulter la table contenant vos journaux de flux exportés.
Cliquez sur le nom de table qui commence par compute_googleapis_com_vpc_flows_ et examinez les schémas et les détails des tables en cours d'utilisation.
Remarque : Si la table ne s'affiche pas dans l'ensemble de données, ouvrez le menu de navigation et cliquez sur "Présentation du Cloud" ou tout autre service. Ensuite, ouvrez le menu de navigation et sélectionnez BigQuery, puis essayez de trouver la table à nouveau (la table peut mettre une à deux minutes à s'afficher dans l'ensemble de données).
Cliquez sur Requête > Dans un nouvel onglet.
Supprimez le texte fourni dans la fenêtre Nouvelle requête, puis collez-y la requête suivante :
#standardSQL
SELECT
jsonPayload.connection.dest_ip,
resource
FROM
`flowlogs_dataset.compute_googleapis_com_vpc_flows*` WHERE
jsonPayload.connection.dest_port = 22
LIMIT 1000
Cliquez sur Exécuter.
Cette requête renvoie des informations sur le trafic se connectant au port 22.
Les résultats s'affichent après quelques secondes. Ils doivent comporter une ou deux entrées, correspondant aux activités générées lors de cet atelier. N'oubliez pas que BigQuery n'affiche que l'activité générée depuis la création de l'exportation.
Remarque : Si vous n'obtenez aucun résultat, vous devrez peut-être générer du trafic vers les instances. Pour ce faire, accédez au Menu de navigation > Compute Engine et cliquez sur SSH pour chaque instance. Ensuite, essayez à nouveau d'exécuter la requête.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer des exportations et analyser les journaux de flux dans BigQuery
Tâche 7 : Désactiver la journalisation de flux
Dans cette tâche, vous allez désactiver la journalisation de flux VPC. Vous pouvez la désactiver grâce à l'option --no-enable-flow-logs.
Essayez de la désactiver sur l'un de vos sous-réseaux en exécutant la commande suivante dans le terminal Cloud Shell :
Pour vérifier qu'elle a bien été désactivée, consultez le VPC dans la console Cloud. Dans le Menu de navigation, cliquez sur Réseau VPC > Réseaux VPC. Cliquez sur QUITTER si vous y êtes invité.
Tâche 8 : Récapitulatif
Dans cet atelier, vous avez activé la journalisation de flux VPC pour un sous-réseau. Vous avez accédé aux journaux via Cloud Logging. Vous les avez également filtrés selon des sous-réseaux, VM, ports et protocoles spécifiques. Ensuite, vous avez effectué des opérations de surveillance du réseau, d'investigation et d'analyse de la sécurité en temps réel. Enfin, vous avez désactivé la journalisation de flux VPC.
Terminer l'atelier
Une fois l'atelier terminé, cliquez sur Terminer l'atelier. Google Cloud Skills Boost supprime les ressources que vous avez utilisées, puis efface le compte.
Si vous le souhaitez, vous pouvez noter l'atelier. Sélectionnez un nombre d'étoiles, saisissez un commentaire, puis cliquez sur Envoyer.
Le nombre d'étoiles correspond à votre degré de satisfaction :
1 étoile = très insatisfait(e)
2 étoiles = insatisfait(e)
3 étoiles = ni insatisfait(e), ni satisfait(e)
4 étoiles = satisfait(e)
5 étoiles = très satisfait(e)
Si vous ne souhaitez pas donner votre avis, vous pouvez fermer la boîte de dialogue.
Pour soumettre des commentaires, suggestions ou corrections, veuillez accéder à l'onglet Assistance.
Copyright 2020 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.
Les ateliers créent un projet Google Cloud et des ressources pour une durée déterminée.
Les ateliers doivent être effectués dans le délai imparti et ne peuvent pas être mis en pause. Si vous quittez l'atelier, vous devrez le recommencer depuis le début.
En haut à gauche de l'écran, cliquez sur Démarrer l'atelier pour commencer.
Utilisez la navigation privée
Copiez le nom d'utilisateur et le mot de passe fournis pour l'atelier
Cliquez sur Ouvrir la console en navigation privée
Connectez-vous à la console
Connectez-vous à l'aide des identifiants qui vous ont été attribués pour l'atelier. L'utilisation d'autres identifiants peut entraîner des erreurs ou des frais.
Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
Ne cliquez pas sur Terminer l'atelier, à moins que vous n'ayez terminé l'atelier ou que vous ne vouliez le recommencer, car cela effacera votre travail et supprimera le projet.
Ce contenu n'est pas disponible pour le moment
Nous vous préviendrons par e-mail lorsqu'il sera disponible
Parfait !
Nous vous contacterons par e-mail s'il devient disponible
Un atelier à la fois
Confirmez pour mettre fin à tous les ateliers existants et démarrer celui-ci
Utilisez la navigation privée pour effectuer l'atelier
Ouvrez une fenêtre de navigateur en mode navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
Afficher et utiliser les journaux de flux VPC dans Cloud Logging
Durée :
0 min de configuration
·
Accessible pendant 90 min
·
Terminé après 90 min