Introduction
Ce document décrit comment utiliser des expressions régulières (regex) avec la commande grep afin de rechercher des journaux.
Conditions préalables
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
- Appareil de sécurité Web Cisco (WSA)
- Appliance de sécurisation de la messagerie Cisco (ESA)
- Appliance de gestion de la sécurité Cisco (SMA)
Grep avec Regex
Regex peut être un outil puissant lorsqu'il est utilisé avec la commande grep pour rechercher parmi les journaux disponibles sur l'appliance, tels que les journaux d'accès, les journaux de proxy et d'autres. Vous pouvez effectuer une recherche dans les journaux en fonction du site Web, ou de n'importe quelle partie de l'URL, et des noms d'utilisateur avec la commande grep CLI.
Voici quelques scénarios courants où vous pouvez utiliser regex avec la commande grep afin d'aider au dépannage.
Scénario 1 : rechercher un site Web particulier dans les journaux d'accès
Le scénario le plus courant est lorsque vous tentez de trouver des requêtes qui sont faites à un site Web dans les journaux d'accès de l'appareil de sécurité Web.
Voici un exemple :
Se connecter à l'appliance via Secure Shell (SSH). Une fois que vous avez l'invite, entrez la commande grep afin de répertorier les journaux disponibles.
CLI> grep
Entrez le numéro du journal que vous souhaitez grep.
[]> 1 (Choose the # for access logs here)
Entrez l'expression régulière à grep.
[]> website\.com
Scénario 2 : Tentative de recherche d'une extension de fichier ou d'un domaine de premier niveau particulier
Vous pouvez utiliser la commande grep afin de trouver une extension de fichier particulière (.doc, .pptx) dans une URL ou un domaine de premier niveau (.com, .org).
Voici un exemple :
Afin de trouver toutes les URL qui se terminent par .crl, utilisez ce regex :
\.crl$
Afin de trouver toutes les URL qui contiennent l'extension de fichier .pptx, utilisez ce regex :
\.pptx
Scénario 3 : Tentative de recherche d'un bloc particulier pour un site Web
Lorsque vous recherchez un site Web particulier, vous pouvez également rechercher une réponse HTTP particulière.
Voici un exemple :
Si vous voulez rechercher tous les messages TCP_DENIED/403 pour domain.com, utilisez cette expression régulière :
tcp_denied/403.*domain\.com
Scénario 4 : rechercher un nom de machine dans les journaux d'accès
Lorsque vous utilisez le schéma d'authentification NTLMSSP, vous pouvez rencontrer une instance où un agent utilisateur (Microsoft NCSI est le plus courant) envoie incorrectement les informations d'identification de l'ordinateur au lieu des informations d'identification de l'utilisateur lorsqu'il s'authentifie. Afin de trouver l'URL/User Agent qui cause ce problème, utilisez regex avec grep afin d'isoler la requête faite quand l'authentification s'est produite.
Si vous n'avez pas le nom d'ordinateur qui a été utilisé, utilisez grep et recherchez tous les noms d'ordinateur qui ont été utilisés comme noms d'utilisateur lors de l'authentification avec cette expression régulière :
\$@
Une fois que vous avez la ligne où cela se produit, grep pour le nom de machine spécifique qui a été utilisé avec cette expression régulière :
machinename\$
La première entrée qui s'affiche doit correspondre à la demande effectuée lorsque l'utilisateur s'est authentifié avec le nom de la machine au lieu du nom de l'utilisateur.
Scénario 5 : rechercher une période spécifique dans les journaux d'accès
Par défaut, les abonnements au journal d'accès n'incluent pas le champ indiquant la date/heure lisible par l'utilisateur. Si vous souhaitez vérifier les journaux d'accès pour une période donnée, procédez comme suit :
- Recherchez l'horodatage UNIX à partir d'un site tel que Conversion en ligne.
- Une fois que vous avez l'horodatage, recherchez une heure spécifique dans les journaux d'accès.
Voici un exemple :
Un horodatage Unix de 1325419200 est équivalent au 01/01/2012 12:00:00.
Vous pouvez utiliser cette entrée regex afin de rechercher les journaux d'accès près de 12:00 le 1er janvier 2012 :
13254192
Scénario 6 : recherche de messages critiques ou d'avertissement
Vous pouvez rechercher des messages critiques ou d'avertissement dans tous les journaux disponibles, tels que les journaux de proxy ou les journaux système, avec des expressions régulières.
Voici un exemple :
Afin de rechercher des messages d'avertissement dans les journaux de proxy, entrez cette expression régulière :
CLI> grep
Entrez le numéro du journal que vous souhaitez grep.
[]> 17 (Choose the # for proxy logs here)
Entrez l'expression régulière à grep.
[]> warning