Collecter les journaux Microsoft IAS/Network Policy Server (NPS)

Compatible avec :

Ce document explique comment collecter les journaux Microsoft Internet Authentication Service (IAS) / Network Policy Server (NPS) en configurant un flux Google SecOps à l'aide de Microsoft Azure Blob Storage V2.

Microsoft Network Policy Server (NPS) est l'implémentation Microsoft d'un serveur et d'un proxy RADIUS (Remote Authentication Dial-In User Service). NPS permet de gérer de manière centralisée l'authentification, l'autorisation et la comptabilité des accès réseau pour les connexions VPN, les points d'accès sans fil, les commutateurs d'authentification 802.1X et l'accès à distance par ligne commutée. NPS était auparavant appelé "Internet Authentication Service" (IAS) dans Windows Server 2003 et les versions antérieures. Étant donné que NPS s'exécute en tant que rôle Windows Server sans fonctionnalités d'exportation cloud natives, ce guide utilise l'agent Azure Monitor pour collecter les fichiers journaux de comptabilité NPS à partir du système de fichiers local et les acheminer via un espace de travail Log Analytics vers Azure Blob Storage.

Avant de commencer

  • Assurez-vous de remplir les conditions préalables suivantes :

  • Une instance Google SecOps

  • Accès privilégié au portail Microsoft Azure avec les autorisations suivantes :

    • Créer des comptes de stockage
    • Créer et gérer des espaces de travail Log Analytics
    • Créer des règles de collecte de données
    • Créer des règles d'exportation de données
    • Gérer les clés d'accès
  • Windows Server 2016 ou version ultérieure avec le rôle NPS installé

  • Accès administrateur au serveur NPS

  • Connectivité réseau du serveur NPS à Azure (HTTPS sortant sur le port 443)

Configurer la journalisation et la comptabilité NPS

Activez NPS pour consigner les requêtes d'authentification et de traçabilité dans un fichier texte local au format IAS.

Activer les journaux de comptabilité NPS

  1. Sur le serveur Windows exécutant NPS, ouvrez le Gestionnaire de serveur.
  2. Accédez à Outils > Serveur NPS.
  3. Dans l'arborescence de la console NPS, cliquez sur Accounting (Comptabilité).
  4. Dans le volet Détails, sous Comptabilité, cliquez sur Configurer la comptabilité.
  5. Dans l'assistant Accounting Configuration (Configuration de la comptabilité), sélectionnez Log to a text file on the local computer (Consigner dans un fichier texte sur l'ordinateur local), puis cliquez sur Next (Suivant).
  6. Sur la page Configurer les propriétés du fichier journal, configurez les éléments suivants :
    • Dans la section Enregistrer les informations suivantes, cochez les cases correspondant aux informations que vous souhaitez enregistrer :
      • Demandes comptables
      • Demandes d'authentification
      • État comptable périodique
      • État de l'authentification périodique
    • Dans la section Logging failure action (Action en cas d'échec de la journalisation), sélectionnez If logging fails, discard connection requests (Si la journalisation échoue, ignorer les demandes de connexion) si vous souhaitez que le serveur NPS arrête le traitement lorsque les fichiers journaux ne sont pas disponibles. Laissez cette option décochée si vous souhaitez que NPS continue le traitement même en cas d'échec de la journalisation.
  7. Cliquez sur Suivant.
  8. Vérifiez les éléments indiqués dans le récapitulatif, puis cliquez sur Finish (Terminer).

Configurer les propriétés du fichier journal

  1. Dans l'arborescence de la console NPS, cliquez sur Accounting (Comptabilité).
  2. Dans le volet des détails, sous Propriétés du fichier journal, cliquez sur Modifier les propriétés du fichier journal.
  3. Cliquez sur l'onglet Fichier journal.
  4. Dans le champ Répertoire, vérifiez ou modifiez l'emplacement du fichier journal :
    • Emplacement par défaut : %systemroot%\System32\LogFiles
    • Pour une meilleure organisation, spécifiez un répertoire dédié (par exemple, C:\NPSLogs).
  5. Dans le menu déroulant Format, sélectionnez IAS (ancien).

  6. Dans Créer un fichier journal, sélectionnez l'intervalle de rotation des journaux :

    • Quotidienne (recommandée pour la plupart des environnements)
    • Toutes les semaines
    • Tous les mois
    • Jamais (taille de fichier illimitée)
    • Lorsque le fichier journal atteint cette taille (spécifiez la taille en Mo)
  7. Si vous souhaitez que le serveur NPS supprime les anciens fichiers journaux lorsque l'espace disque est faible, sélectionnez When the disk is full delete older log files (Lorsque le disque est plein, supprimer les anciens fichiers journaux).

  8. Cliquez sur OK pour enregistrer la configuration.

  9. Vérifiez que les fichiers journaux sont bien créés dans le répertoire configuré.

Configurer un compte de stockage Azure

Créer un compte de stockage

  1. Sur le portail Azure, recherchez Comptes de stockage.
  2. Cliquez sur + Créer.
  3. Fournissez les informations de configuration suivantes :

    Paramètre Valeur
    Abonnement Sélectionnez votre abonnement Azure
    Groupe de ressources Sélectionner une base de données existante ou en créer une
    Nom du compte de stockage Saisissez un nom unique (par exemple, npsiaslogs).
    Région Sélectionnez la région (par exemple, East US).
    Performances Standard (recommandé)
    Redondance GRS (stockage géoredondant) ou LRS (stockage localement redondant)
  4. Cliquez sur Examiner et créer.

  5. Examinez l'aperçu du compte, puis cliquez sur Créer.

  6. Attendez la fin du déploiement.

Obtenir les identifiants du compte de stockage

  1. Accédez au compte de stockage que vous venez de créer.
  2. Dans le menu de navigation de gauche, sélectionnez Clés d'accès sous Sécurité et mise en réseau.
  3. Cliquez sur Afficher les clés.
  4. Copiez et enregistrez les éléments suivants pour les utiliser ultérieurement :
    • Nom du compte de stockage : nom de votre compte de stockage (par exemple, npsiaslogs)
    • Clé 1 ou Clé 2 : clé d'accès partagée (chaîne aléatoire de 512 bits encodée en base64)

Obtenir le point de terminaison du service Blob

  1. Dans le même compte de stockage, sélectionnez Endpoints (Points de terminaison) dans le menu de navigation de gauche.
  2. Copiez et enregistrez l'URL du point de terminaison du service Blob.
    • Exemple : https://npsiaslogs.blob.core.windows.net/

Créer un espace de travail Log Analytics

Un espace de travail Log Analytics est requis pour recevoir les journaux de texte personnalisés de l'agent Azure Monitor avant de les exporter vers Azure Blob Storage.

  1. Dans le portail Azure, recherchez Espaces de travail Log Analytics.
  2. Cliquez sur + Créer.
  3. Fournissez les informations de configuration suivantes :

    Paramètre Valeur
    Abonnement Sélectionnez votre abonnement Azure
    Groupe de ressources Sélectionnez le même groupe de ressources que votre compte de stockage.
    Nom Saisissez un nom unique (par exemple, nps-ias-workspace).
    Région Sélectionnez la même région que votre compte de stockage.
  4. Cliquez sur Examiner et créer.

  5. Vérifiez les paramètres, puis cliquez sur Créer.

  6. Attendez la fin du déploiement.

Créer une table de journaux personnalisée

Créez une table personnalisée dans l'espace de travail Analyse des journaux pour stocker les données de journaux NPS/IAS.

  1. Dans le portail Azure, accédez à l'espace de travail Log Analytics que vous venez de créer.
  2. Dans le menu de navigation de gauche, sélectionnez Tables sous Paramètres.
  3. Cliquez sur + Créer > Nouveau journal personnalisé (basé sur une règle de collecte de données).
  4. Dans le champ Nom de la table, saisissez NpsIasLogs. Le nom complet de la table sera NpsIasLogs_CL.
  5. Cliquez sur Créer.

Intégrer le serveur NPS à Azure Arc

Comme NPS s'exécute sur un serveur Windows sur site, vous devez intégrer le serveur à Azure Arc avant d'installer l'agent Azure Monitor.

Enregistrer le serveur NPS auprès d'Azure Arc

  1. Dans le portail Azure, recherchez Azure Arc.
  2. Dans le menu de navigation de gauche, sélectionnez Machines sous Infrastructure.
  3. Cliquez sur + Ajouter/Créer > Ajouter une machine.
  4. Dans la section Add servers with Azure Arc (Ajouter des serveurs avec Azure Arc), sélectionnez Generate script (Générer un script) sous Add a single server (Ajouter un seul serveur).
  5. Fournissez les informations de configuration suivantes :
    • Abonnement : sélectionnez votre abonnement Azure.
    • Groupe de ressources : sélectionnez le même groupe de ressources que celui utilisé précédemment.
    • Région : sélectionnez la même région que votre espace de travail Log Analytics.
    • Système d'exploitation : sélectionnez Windows.
    • Méthode de connectivité : sélectionnez Point de terminaison public (ou Serveur proxy si votre réseau l'exige).
  6. Cliquez sur Télécharger et exécuter le script.
  7. Copiez le script PowerShell généré sur le serveur NPS.
  8. Sur le serveur NPS, ouvrez PowerShell en tant qu'administrateur et exécutez le script :

    & '.\OnboardingScript.ps1'
    
  9. Suivez les instructions à l'écran pour vous authentifier auprès d'Azure et terminer l'intégration.

  10. Une fois le script terminé, revenez au portail Azure > Azure Arc > Machines et vérifiez que le serveur NPS s'affiche avec l'état Connecté.

Installer l'agent Azure Monitor

Installer l'agent Azure Monitor sur le serveur avec Arc activé

  1. Sur le portail Azure, accédez à Azure Arc > Machines.
  2. Sélectionnez le serveur NPS dans la liste des machines.
  3. Dans le menu de navigation de gauche, sélectionnez Extensions sous Paramètres.
  4. Cliquez sur + Ajouter.
  5. Sélectionnez Azure Monitor Agent dans la liste des extensions.
  6. Cliquez sur Suivant.
  7. Cliquez sur Examiner et créer.
  8. Cliquez sur Créer.
  9. Attendez que l'installation de l'extension soit terminée. L'état passe à Provisioning réussi.

Créer une règle de collecte de données pour les fichiers journaux NPS

Une règle de collecte de données (DCR) indique à l'agent Azure Monitor de collecter les fichiers journaux NPS IAS et de les envoyer à l'espace de travail Log Analytics.

  1. Dans le portail Azure, recherchez Monitor.
  2. Dans le menu de navigation de gauche, sélectionnez Règles de collecte de données sous Paramètres.
  3. Cliquez sur + Créer.
  4. Dans l'onglet Principes de base, fournissez les informations de configuration suivantes :
    • Nom de la règle : saisissez dcr-nps-ias-logs.
    • Abonnement : sélectionnez votre abonnement Azure.
    • Groupe de ressources : sélectionnez le même groupe de ressources que celui utilisé précédemment.
    • Région : sélectionnez la même région que votre espace de travail Log Analytics.
    • Type de plate-forme : sélectionnez Windows.
  5. Cliquez sur Suivant : Ressources.
  6. Dans l'onglet Ressources :
    1. Cliquez sur + Ajouter des ressources.
    2. Développez le groupe de ressources et sélectionnez le serveur NPS compatible avec Azure Arc.
    3. Cliquez sur Appliquer.
  7. Cliquez sur Suivant : Collecter et livrer.
  8. Dans l'onglet Collecte et livraison :

    1. Cliquez sur + Ajouter une source de données.
    2. Dans le menu déroulant Type de source de données, sélectionnez Journaux de texte personnalisés.
    3. Dans le champ Modèle de fichier, saisissez le chemin d'accès aux fichiers journaux NPS :

      C:\Windows\System32\LogFiles\IN*.log
      
    4. Dans le menu déroulant Nom de la table, sélectionnez NpsIasLogs_CL.

    5. Dans le champ Délimiteur d'enregistrement, sélectionnez Fin de ligne.

    6. Dans le champ Transformation, saisissez source pour envoyer les données de journal brutes sans les modifier.

    7. Cliquez sur Ajouter une source de données.

  9. Dans la section Destination, vérifiez que l'espace de travail Log Analytics que vous avez créé est listé.

  10. Cliquez sur Suivant : Vérifier + créer.

  11. Vérifiez la configuration, puis cliquez sur Créer.

Configurer l'exportation de données vers Azure Blob Storage

Créez une règle d'exportation de données pour exporter en continu les données de journaux NPS/IAS de l'espace de travail Log Analytics vers Azure Blob Storage.

Créer une règle d'exportation de données

  1. Sur le portail Azure, accédez à l'espace de travail Log Analytics que vous avez créé.
  2. Dans le menu de navigation de gauche, sélectionnez Exportation de données sous Paramètres.
  3. Cliquez sur + Nouvelle règle d'exportation.
  4. Dans l'onglet Principes de base, fournissez les informations de configuration suivantes :
    • Nom de la règle : saisissez export-nps-ias-logs.
    • Destination : sélectionnez Storage Account (Compte de stockage).
  5. Cliquez sur Suivant : Source.
  6. Dans l'onglet Source, sélectionnez la table NpsIasLogs_CL.
  7. Cliquez sur Suivant : Destination.
  8. Dans l'onglet Destination :
    • Abonnement : sélectionnez l'abonnement contenant votre compte de stockage.
    • Compte de stockage : sélectionnez le compte de stockage que vous avez créé précédemment (par exemple, npsiaslogs).
  9. Cliquez sur Examiner et créer.
  10. Vérifiez la configuration, puis cliquez sur Créer.

Configurer un flux dans Google SecOps pour ingérer les journaux Microsoft IAS

  1. Accédez à Paramètres > Gestion des données > Flux. Si vous utilisez une plate-forme SIEM uniquement, accédez à Paramètres > Flux.
  2. Cliquez sur Ajouter un flux d'actualités.
  3. Sur la page suivante, cliquez sur Configurer un seul flux.
  4. Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Microsoft IAS NPS Logs).
  5. Sélectionnez Microsoft Azure Blob Storage V2 comme Type de source.
  6. Sélectionnez Microsoft IAS comme type de journal.
  7. Cliquez sur Suivant.
  8. Spécifiez les valeurs des paramètres d'entrée suivants :

    • URI Azure : saisissez l'URL du point de terminaison du service Blob avec le chemin d'accès au conteneur :
    https://npsiaslogs.blob.core.windows.net/am-NpsIasLogs_CL/
    
    • Remplacez l'élément suivant :
      • npsiaslogs : nom de votre compte de stockage Azure.
      • am-NpsIasLogs_CL : nom du conteneur de blobs créé automatiquement par la règle d'exportation de données.
    • Option de suppression de la source : sélectionnez l'option de suppression de votre choix :
    • Jamais : ne supprime jamais aucun fichier après les transferts.
    • Supprimer les fichiers transférés : supprime les fichiers après un transfert réussi.
    • Supprimer les fichiers transférés et les répertoires vides : supprime les fichiers et les répertoires vides une fois le transfert réussi.
    • Âge maximal du fichier : incluez les fichiers modifiés au cours d'un certain nombre de jours (180 jours par défaut).
    • Clé partagée : saisissez la valeur de la clé partagée (clé d'accès) que vous avez récupérée précédemment à partir du compte de stockage.
    • Espace de noms de l'élément : espace de noms de l'élément
    • Étiquettes d'ingestion : étiquette à appliquer aux événements de ce flux.
  9. Cliquez sur Suivant.

  10. Vérifiez la configuration de votre nouveau flux d'actualités sur l'écran Finaliser, puis cliquez sur Envoyer.

Configurer le pare-feu Azure Storage (si activé)

Si votre compte de stockage Azure utilise un pare-feu, vous devez ajouter les plages d'adresses IP Google SecOps.

  1. Dans le portail Azure, accédez à votre compte de stockage.
  2. Sélectionnez Mise en réseau sous Sécurité et mise en réseau.
  3. Sous Pare-feu et réseaux virtuels, sélectionnez Activé à partir des réseaux virtuels et des adresses IP sélectionnés.
  4. Dans la section Pare-feu, sous Plage d'adresses, cliquez sur + Ajouter une plage d'adresses IP.
  5. Ajoutez chaque plage d'adresses IP Google SecOps au format CIDR.

    Pour obtenir les plages d'adresses IP actuelles :

  6. Vérifiez que la case Autoriser les services Azure figurant sur la liste des services de confiance à accéder à ce compte de stockage est cochée (obligatoire pour que l'exportation des données Log Analytics fonctionne).

  7. Cliquez sur Enregistrer.

Table de mappage UDM

Champ du journal Mappage UDM Logique
packet_type additional.fields Fusionné avec les libellés de chaque champ s'il n'est pas vide
auth_type additional.fields
filter_id additional.fields
framed_netmask additional.fields
framed_address additional.fields
framed_protocol additional.fields
framed_routing additional.fields
framed_mtu additional.fields
framed_compression additional.fields
reason_code additional.fields
extensible_auth_protocol additional.fields
service_type additional.fields
nas_port additional.fields
reply_message additional.fields
nas_identifier additional.fields
device-type additional.fields
coa-push additional.fields
audit-session-id additional.fields
date metadata.event_timestamp Concaténation de la date et de l'heure, puis analyse au format MM/jj/aaaa HH:mm:ss
heure metadata.event_timestamp
principal_present metadata.event_type Définissez sur "GENERIC_EVENT", puis sur "NETWORK_CONNECTION" si principal_present et target_present, sinon sur "STATUS_UPDATE" si principal_present
target_present metadata.event_type
ac-user-agent network.http.parsed_user_agent Converti à partir de ac-user-agent si l'analyse réussit
ac-user-agent network.http.user_agent Valeur copiée directement
session_duration network.session_duration.seconds Valeur copiée directement, puis convertie en entier
session_id network.session_id Valeur copiée directement
principal_hostname principal.asset.hostname Valeur copiée directement
principal_ip principal.asset.ip Valeur de principal_ip s'il s'agit d'une adresse IP valide, sinon calling_station_id s'il s'agit d'une adresse IP valide
calling_station_id principal.asset.ip
principal_hostname principal.hostname Valeur copiée directement
principal_ip principal.ip Valeur de principal_ip s'il s'agit d'une adresse IP valide, sinon calling_station_id s'il s'agit d'une adresse IP valide
calling_station_id principal.ip
device-mac principal.mac Valeur de device-mac si elle n'est pas vide (après avoir remplacé - par :), sinon device-public-mac
device-public-mac principal.mac
nat_ip principal.nat_ip Valeur copiée directement
plateforme-appareil principal.platform Définissez sur "WINDOWS" si ["Win","win"], "MAC" si =~ "mac|iOS", "LINUX" si =~ "lin"
device-platform-version principal.platform_version Valeur copiée directement
device-uid principal.resource.product_object_id Valeur copiée directement
user_name principal.user.user_display_name Valeur copiée directement
userid principal.user.userid Valeur copiée directement
service_name target.application Valeur copiée directement
computer_name target.asset.hostname Valeur copiée directement
target_ip target.asset.ip Valeur de target_ip s'il s'agit d'une adresse IP valide, sinon called_station_id s'il s'agit d'une adresse IP valide
called_station_id target.asset.ip
computer_name target.hostname Valeur copiée directement
target_ip target.ip Valeur de target_ip s'il s'agit d'une adresse IP valide, sinon called_station_id s'il s'agit d'une adresse IP valide
called_station_id target.ip
target_port target.port Valeur copiée directement, puis convertie en entier
metadata.product_name metadata.product_name Définissez cette option sur "MICROSOFT_IAS".
metadata.vendor_name metadata.vendor_name Définissez cette option sur "MICROSOFT_IAS".

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.