Problema de permissões em C: \ Windows \ System32 \ inetserv

1

Temos o servidor Windows 2012 com o IIS 8 nele.

Existe um aplicativo ASP.NET em execução neste servidor que é autenticado por meio de uma API REST para um aplicativo separado. Esse aplicativo separado responde com um arquivo .XML chamado login.xml, que o aplicativo ASP.NET, por padrão, tenta colocar na pasta local C: \ Windows \ System32 \ inetsrv. O aplicativo ASP.NET não solicita esse arquivo .xml e parece não haver uma maneira de fazer com que esse arquivo seja descartado em outro lugar.

Como o usuário "IIS AppPool \ DefaultAppPool", que é a identidade do pool de aplicativos no qual o aplicativo ASP.NET é executado, não tem permissões nesta pasta C: \ Windows \ System32 \ inetserv, o arquivo .XML não pode ser escrito lá e um erro é exibido no navegador.

Em parte, o erro exibido no navegador diz:

"O acesso ao caminho 'C: \ windows \ system32 \ inetserv \ login.xml' foi negado.

Eu suspeito que, normalmente, dar permissões no diretório "C: \ windows \ system32 \ inetserv \" para esse usuário "IIS AppPool \ DefaultAppPool" não seria uma boa idéia de segurança, mas em nosso caso específico, ficaria bem.

Ao pesquisar mais cedo para encontrar uma solução para o erro exibido no navegador, parece que muitas pessoas conseguiram conceder as permissões necessárias na pasta. No entanto, parece também que em todas as mensagens que estou vendo sobre o assunto, a versão do IIS em uso é de 7 ou mais.

Como administrador local, tentei, sem sucesso, adicionar as permissões necessárias ao usuário para "C: \ windows \ system32 \ inetserv \" e também tentei, sem êxito, desmarcar a propriedade somente leitura na pasta, mas negado porque até mesmo o usuário Administrador não tem os direitos para alterar permissões na pasta. Observando atentamente as permissões na pasta, todos os usuários têm as permissões "Ler e executar", "Listar conteúdo da pasta" e "Ler", mas os Administradores não têm permissões extras.

Eu não encontrei nada na Internet que diga especificamente que a Microsoft bloqueou o Windows Server 2012 ou o IIS 8 para onde permissões extras não podem ser concedidas nessa pasta ... Alguém pode ler isso? conceder estas permissões?

Além disso, uma questão relacionada - Este servidor está localizado na AWS, criado a partir de uma AMI fornecida pela Amazon. É possível que as AMIs da Amazon sejam especialmente fortalecidas de alguma forma, para negar esses tipos de mudanças de permissões, para manter os servidores hospedados pela AWS tão seguros quanto possível?

Obrigado Mike

    
por RelentlessMike 06.05.2016 / 04:19

1 resposta

2

As permissões padrão para system32\inetsrv no Server 2012 são:

NT SERVICE\TrustedInstaller:(F)
NT SERVICE\TrustedInstaller:(CI)(IO)(F)
NT AUTHORITY\SYSTEM:(M)
NT AUTHORITY\SYSTEM:(OI)(CI)(IO)(F)
BUILTIN\Administrators:(M)
BUILTIN\Administrators:(OI)(CI)(IO)(F)
BUILTIN\Users:(RX)
BUILTIN\Users:(OI)(CI)(IO)(GR,GE)
CREATOR OWNER:(OI)(CI)(IO)(F)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(RX)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(OI)(CI)(IO)(GR,GE)

Os administradores têm permissões de modificação, o que significa que os padrões da AWS são diferentes ou que outra pessoa já alterou as permissões.

O principal problema que você tem é que seu aplicativo ASP.NET está tentando gravar em inetsrc , que é um Não-Não. Entre em contato com quem quer que tenha escrito o aplicativo para solicitar a correção.

Se você realmente deseja alterar as permissões no inetsrv, primeiro precisa alterar a propriedade para administradores

takeown.exe /F .\inetsrv /R /A

o proprietário padrão em 2012 é TrustedInstaller

você pode adicionar permissões de modificação para a identidade do AppPool.

Como você afirmou corretamente, isso enfraquece a segurança e pode comprometer todo o servidor. Portanto, tente consertar o aplicativo primeiro.

    
por 07.05.2016 / 11:38