Comment restreindre l'access au réseau par l'user sur une machine multi-servers Windows?

J'ai une machine multitenant Windows 2012 exécutant plusieurs sites Web IIS, chacun d'entre eux fonctionnant avec son propre groupe d'applications avec sa propre identité user Windows, et je dois restreindre l'access réseau total de chaque pool d'applications.

J'ai cherché une solution mais avec peu de succès. Je pense que l'on peut restreindre la connection par user Windows, ou "mapper" une adresse IP à un user Windows et restreindre par IP. Mais il ne semble rien qui me permette de faire l'une ou l'autre des approches. J'ai enquêté:

  • Utilisation du Pare-feu Windows -> ne permet pas de créer des règles par user, uniquement par IP / Port / nom de process
  • Utilisation des ressortingctions de security ASP.NET/IIS -> Ils sont tous entrants et non sortants.
  • Utilisation de plusieurs adresses IP -> ne peut pas affecter une adresse IP sortante au pool d'applications correspondantes
  • Utilisation des conteneurs -> Typiquement, les conteneurs partagent les mêmes adresses IP … et c'est encore l'aperçu de la technologie pour Windows 2016
  • En utilisant les parameters du proxy .net -> ne couvre pas les connections non-http / https, comme ado.net.

J'ai trouvé dans Linux (iptables module ipt_owner) exactement ce dont j'ai besoin, mais la commutation du operating system n'est pas une option. J'ai besoin de la même chose mais pour Windows.

Je suis ouvert au développement d'un module IIS ou d'un service système qui s'exécute dans la machine pour y parvenir, mais je ne vois pas comment un module IIS peut gérer les connections sortantes du process de travail et la mise en œuvre d'un service système qui gère les connections réseau des process semble pour moi un très grand projet, avec un risque élevé de causer des problèmes de réseau dans la machine …

Avez-vous d'autres idées à investiguer?

Merci d'avance pour toute aide que vous pouvez fournir.

À votre santé

ModSecurity sera en mesure d'accomplir ce dont vous avez besoin car il aura une visibilité complète dans le stream de requêtes / réponses HTTP. Il suffit de formuler les règles appropriées pour limiter l'access comme vous l'avez décrit.