Não é possível selecionar IUSR para executar um serviço em

2

Temos uma caixa do Windows 2008 R2 executando o IIS 7.5 que, devido a um requisito de segurança, precisamos definir o Serviço de Publicação na World Wide Web para ser executado em IUSR. Eu posso dar permissões de pasta IUSR muito bem. Mas quando tento selecionar IUSR para a conta ser executada no Serviço de Publicação na World Wide Web, recebo uma mensagem informando que o usuário não pode ser encontrado. Atualmente, temos o serviço sendo executado em "Conta do sistema local". Qualquer ajuda seria muito apreciada.

    
por Ben 13.01.2014 / 23:45

3 respostas

5

IUSR é o contexto de segurança usado quando visitantes anônimos navegam em seu site. Eu recomendaria contra usá-lo para o serviço WWW.

Antes do IIS7.5, uma conta de serviço (IWAM) seria criada para você, que era uma conta local, além da conta IUSR local. O novo modelo é executado com diferentes identidades do pool de aplicativos para que um site não possa afetar outro na caixa se um site estiver comprometido. Eu provavelmente consideraria uma conta local sem privilégios para o serviço WWW, para confinar as credenciais a essa caixa específica.

Eu testei usando um usuário local para WWW e o Windows Process Activation Service, e continuei recebendo mensagens de erro de "esta conta não é privilegiada o suficiente" para o Serviço de Ativação de Processos do Windows. Por isso, adicionei a conta local ao IIS_IUSRS e a qualquer outro grupo relacionado ao IIS, e entrei na política de segurança local e adicionei os privilégios na Atribuição de direitos de usuário da Diretiva de segurança local:

  • Substituir um token no nível do processo
  • Ajustar cotas de memória para um processo
  • Gerar auditorias de segurança
  • Fazer logon como um trabalho em lotes

Isso não funcionou, então adicionei "Criar objetos globais" depois de encontrar algo no Google sugerindo que isso poderia ajudar. Isso não aconteceu. Mas então chegou a hora de eu ir para casa, então eu desfiz tudo (mesmo que fosse um ambiente de teste).

Eu então tentei

  • Representar um cliente após a autenticação

Sem alegria. Os serviços são executados como sistema local e o link do qual eu estava trabalhando diz,

The Local System account is a powerful account that has full access to the computer and acts as the computer on the network. If a service uses the Local System account to log on to a domain controller, that service has access to the entire domain. Some services are configured by default to use the Local System account, and this should not be changed. The Local System account does not have a user-accessible password.

Desculpe, tentei, mas acho que você está sem sorte. Você certamente pode tentar dar uma conta com os privilégios listados aqui :

  • SE_ASSIGNPRIMARYTOKEN_NAME (desativado)
  • SE_AUDIT_NAME (ativado)
  • SE_BACKUP_NAME (desativado)
  • SE_CHANGE_NOTIFY_NAME (ativado)
  • SE_CREATE_GLOBAL_NAME (ativado)
  • SE_CREATE_PAGEFILE_NAME (ativado)
  • SE_CREATE_PERMANENT_NAME (ativado)
  • SE_CREATE_TOKEN_NAME (desativado)
  • SE_DEBUG_NAME (ativado)
  • SE_IMPERSONATE_NAME (ativado)
  • SE_INC_BASE_PRIORITY_NAME (ativado)
  • SE_INCREASE_QUOTA_NAME (desativado)
  • SE_LOAD_DRIVER_NAME (desativado)
  • SE_LOCK_MEMORY_NAME (ativado)
  • SE_MANAGE_VOLUME_NAME (desativado)
  • SE_PROF_SINGLE_PROCESS_NAME (ativado)
  • SE_RESTORE_NAME (desativado)
  • SE_SECURITY_NAME (desativado)
  • SE_SHUTDOWN_NAME (desativado)
  • SE_SYSTEM_ENVIRONMENT_NAME (desativado)
  • SE_SYSTEMTIME_NAME (desativado)
  • SE_TAKE_OWNERSHIP_NAME (desativado)
  • SE_TCB_NAME (ativado)
  • SE_UNDOCK_NAME (desativado)

Mas pode ser mais fácil simplesmente pegar um pedaço de papel da Microsoft dizendo para você não fazer isso.

    
por 14.01.2014 / 22:47
2

Eu também estou procurando uma maneira de fazer isso. Eu suspeito que o OP tenha o mesmo requisito que eu. Isso seria um requisito do JITC do DoD. Aqui está:

Check Content: 
1. Go to Start, Administrative Tools, then Services.
2. Right click on service name World Wide Web Publishing Service, Select Properties, then select the Log On tab.
3. The username next to this account is the web service account ID.  If any other user than IUSR is listed, continue to step 4.  If the service account IUSR is used to run the service, this is not a finding.
4. Open a command prompt and enter Net User [service account ID], press Enter.
5. Verify the values for Password last set and Password expires to ensure the password has been changed in the past year, and will be required to change within the coming year.

Fix Text: 
Configure the service account ID, used to run the web-site, to have its password changed at least annually or use the service account IUSR.
    
por 01.04.2014 / 23:22
1

Tantos níveis de erro aqui. Versão realmente curta : Não faça isso !

Suspeito que você esteja interpretando mal o requisito de segurança ou que tenha sido escrito sem levar em conta como o IIS foi projetado.

O WAS precisa ser executado como sistema local. Ponto final. Não é acessível remotamente, por isso tem uma superfície de ataque muito limitada, ou seja, administradores de computadores locais.

Um motivo pelo qual ele é executado como Sistema Local é que ele cria o applicationhost.config em partes distintas para cada Pool de Aplicativos, que obtém sua própria cópia isolada no Inetpub \ Temp \ AppPools.

Outra é que ele lança os processos de trabalho do Pool de Aplicativos (W3WPs) com identidades específicas, conforme configurado pelo administrador da Web - ou seja, se um Pool de Aplicativos tiver uma identidade básica de ApplicationPoolIdentity, essa é uma conta exclusiva com poucos privilégios usada como base processar a identidade quando não se passar por outra pessoa.

Outra é que não há suporte para alterar a identidade do WAS e foi projetado para ser executado como Sistema Local. É um processo privilegiado.

O Serviço WWW, que era o InetInfo e suportava o processamento de páginas em épocas passadas (isto é, mais recentemente o período de tempo do Windows 2000), mas não é mais, pode ser o alvo da recomendação.

Mas ele não está mais envolvido no processamento de páginas (IIS 6+), apenas na configuração HTTP.SYS para uso futuro por W3WPs.

Assim, os pools de aplicativos (especificamente, Processos de trabalho associados) fazem o trabalho real e você pode configurar sua identidade básica por meio da guia Pool de aplicativos e a conta específica usada para trabalhos anônimos por meio da autenticação - > Configurações anônimas.

Sem ver o texto escrito real ou entender sua origem, algo parece estar malformado em algum lugar. Ou como se fosse escrito por alguém que soubesse um pouco sobre os serviços padrão do Win32, mas não muito sobre o IIS.

Para proteger e isolar um site do IIS e, aparentemente, atingir a intenção da orientação (se não o que foi escrito), tudo o que você precisa fazer é:

  • Use a Identidade do pool de aplicativos como a conta anônima (ou IUSR se sua diretiva exigir isso, mas reduz a segurança (pois é uma conta compartilhada comum, em vez de uma conta exclusiva por site)
  • Definir permissões no conteúdo para que somente o IIS AppPool \ AppPoolName tenha permissão de leitura nas pastas de conteúdo

E pronto!

    
por 19.01.2014 / 23:21