Audit de Configuration IIS / IIS Configuration Auditing

Go to English version

[MAJ : 04/09/2020] Ajout d’un script PowerShell pour filtrer les informations utile du journal d’événements.

L’article de blog https://blogs.msdn.microsoft.com/webtopics/2010/03/19/iis-7-5-how-to-enable-iis-configuration-auditing/ explique en détails l’audit de Configuration IIS.  J’aimerai ajouter quelques informations dans cet article.

Je recommende d’augmenter la taille du log à Mo de manière à avoir un historique plus long des changements de configuration. Vous pouvez augmenter la taille en faisant un click droit sur le nom du log et en choisissant Propriétés. Application and Services Logs / Microsoft / Windows / IIS-Configuration/Operational event log

Pour rappel, l’audit de configuration IIS affiche l’élément de configuration qui a été modifié, l’utilisateur qui a initié la modification ainsi que les valeurs avant et après changement. Dans la capture d’écran ci-dessous l’administrateur local a changé la liaison du « Site Web par défaut » de « *: 80: » à « *: 81: » (Seul le numéro de port a changé) le 15 Mars 2017 à 06:15:48.

Event log entry

Remarque: Un seul changement peut générer plusieurs entrées de journal dans ce journal d’événements en fonction des sections de configuration.

Si vous souhaitez activer l’audit de configuration et augmenter la taille du journal à 10 Mo via un script, je propose les deux possibilités suivantes:

  • À partir d’une invite de commande élevée :
REM To enable the configuration auditing and increase the log size to 10 MB.
wevtutil Set-Log Microsoft-IIS-Configuration/Operational /e:true /ms:10485760
  •  A partir d’un invite PowerShell élevé :
 # To enable the configuration auditing and increase the log size to 10 MB. 
$logName = "Microsoft-IIS-Configuration/Operational" 
$log = New-Object System.Diagnostics.Eventing.Reader.EventLogConfiguration $logName 
$log.IsEnabled=$true 
$log.MaximumSizeInBytes=10MB 
$log.SaveChanges() 
Je mets également à disposition le script suivant qui vous permettra de lister rapidement les modifications faites dans la configuration IIS.

Dans la capture d’écran suivante (affichée sous forme de GridView), on peut distinguer (A lire dans l’ordre chronologique – du bas vers le haut) :

  • Arrêt du « Default Web Site »
  • Création d’un site « www.microsoft.com » (Id :2) écoutant sur le port 80 en HTTP et utilisant un application pool homonyme
  • Création de l’application pool « www.microsoft.com »
  • Localisation du site « www.microsoft.com » sur « C:\inetpub\wwwroot »
  • Ajour d’un binding HTTP sur le port 443 avec un Host Header Name « www.microsoft.com » (« *:443:www.microsoft.com »)
  • Le tout fait par le compte « contoso\administrator » entre 15:06:35 et 15:07:25 le 04 Septembre 2020

Aller à la version française

[MAJ : 09/04/2020] Adding a PowerShell script to filter the useful information from the eventlog.

The https://blogs.msdn.microsoft.com/webtopics/2010/03/19/iis-7-5-how-to-enable-iis-configuration-auditing/ blog article explains in details the IIS Configuration Auditing.  I would like add some details in this article.

I recommend to increase the log size to 10 MB to have a longer history about the configuration changes. You can increase the size by right-clicking on the log name in the Event Viewer and choose Properties.

Application and Services Logs / Microsoft / Windows / IIS-Configuration/Operational event log

 

As a reminder, the IIS configuration auditing displays the configuration element which was changed, the user who initiated the change, and the original and the new value of the element. In the screenshot below the local administrator has changed the binding of the “Default Web Site” from “*:80:” to “*:81:” (Only the port number has changed”) the March 15th 2017 at 06:15:48 AM.

Event log entry

Note : A single change can generate multiple log entries in this dedicated event log depending of the configuration sections to commit.

 

If you want to enable the configuration auditing and increase the log size to 10 MB via a script I propose the two following possibilities :

  • From an elevated command prompt:
 
REM To enable the configuration auditing and increase the log size to 10 MB. 
wevtutil Set-Log Microsoft-IIS-Configuration/Operational /e:true /ms:10485760 
  • From an elevated PowerShell prompt:
 
# To enable the configuration auditing and increase the log size to 10 MB. 
$logName = "Microsoft-IIS-Configuration/Operational" 
$log = New-Object System.Diagnostics.Eventing.Reader.EventLogConfiguration $logName 
$log.IsEnabled=$true 
$log.MaximumSizeInBytes=10MB 
$log.SaveChanges()
I also provide the following script which will allow you to quickly list the modifications made in the IIS configuration.

In the following screenshot (displayed as a GridView), we can distinguish (To be read in chronological order – from bottom to top):

  • Stopping the « Default Web Site »
  • Creation of a « www.microsoft.com » site (Id: 2) listening on port 80 in HTTP and using an application pool of the same name
  • Creation of the « www.microsoft.com » pool application
  • Location of the site « www.microsoft.com » on « C: \ inetpub \ wwwroot »
  • Update of an HTTP binding on port 443 with a Host Header Name « www.microsoft.com » (« *: 443: www.microsoft.com »)
  • All done by the account « contoso \ administrator » between 03:06:35 PM and 03:07:25 PM on September 04, 2020

Laurent.

Feel free to share:)