Utilizando Grupos Restritos (Restricted Groups) - Parte 1

by Daniel Cordeiro 23. junho 2009 23:43

Não importa se você é ou não da área de suporte ao usuário ou administração de servidores. Usuário com perfil de administrador na máquina é sempre um problema para nós. Com tal “poder”, é incrível o estrago que um usuário (principalmente os descuidados) pode fazer no ambiente de uma empresa. Estragos estes que vão desde a criação de compartilhamentos Full Control, que é um prato cheio para vírus e trojans, à instalação de softwares indevidos e piratas que podem causar sérios problemas jurídicos à empresa.

Acabar com os usuários que são administradores locais (e a festa daqueles que se “auto-inserem” no grupo admin local) é muito fácil - e revigorante! Basta criarmos uma GPO de grupo restrito. Até aí, tudo bem, todos nós sabemos como fazer isso. Mas, como tratar a exceção?  Quando um usuário realmente precisa ser administrador local da estação? Um dos maiores problemas da GPO de grupos restritos é que não temos como gerar uma exceção somente para um usuário em uma máquina. Ou o usuário não é administrador ou será administrador de todas as máquinas! Undecided Então, como dar acesso administrativo a um somente um usuário ou usuários, mas somente em suas máquinas?

A solução que encontrei utiliza um simples script vbs que é executado como script de inicialização e desligamento, e irei explicá-la abaixo. Confesso que ainda está em fase de homologação aqui onde trabalho, mas todos os testes que realizamos foram realizados com sucesso.
Não irei detalhar o processo de criação de GPO’s, pois esse não é o intuito deste post. Caso haja o interesse, futuramente conversamos sobre isso!

1° Passo – Criar a GPO de Restricted Group

Primeiro passo é criar a GPO de grupo restrito, configurando o grupo, ou os grupos, que devem ser administradores de todas as estações de trabalho e linka-la a OU desejada;

2º Passo – Criar um compartilhamento para o script vbs e o arquivo de configuração

A criação desse compartilhamento pode ser no próprio DC ou em um servidor de arquivos qualquer. Para nosso exemplo irei criar o compartilhamento com o nome de teste no próprio DC e com as seguintes configurações de segurança:
As permissões do compartilhamento devem ser as seguintes:

  • Admins. do domínio – Leitura
  • Computadores do domínio – Leitura
  • Grupo/Usuário – Leitura/Escrita » Grupo ou usuário com permissão de escrita para alterar o arquivo de configuração do script

Nas configurações de segurança, adicionamos as seguintes entradas:

  • Computadores do domínio – Leitura
  • Grupo/Usuário – Leitura/Escrita » Grupo ou usuário com permissão de escrita para alterar o arquivo de configuração do script

 

 

3° Passo – Colocar no compartilhamento criado o script e o arquivo de configuração

O arquivo de configuração nada mais que é um arquivo de texto com a seguinte estrutura conforme exemplo (toda linha com o símbolo # será tratado como comentário):

# FORMATO DO ARQUIVO
# nome_computador;login1-login2-login3-etc
WINXP01;daniel-prisca

Isto é, o nome da máquina separado dos logins por ponto e vírgula e os logins que devem ser administradores desta máquina específica separados por traço. Salve o arquivo com o nome de restrictedgroups.txt.
Agora, vamos criar um arquivo vbs com o nome restrictedgroupsex.vbs ( ex de exceção e não sex Tongue out)

On Error Resume next
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile _
  ("\\labserver.labdc.local\teste\restrictedgroups.txt", ForReading)
Set objComputer = CreateObject("Shell.LocalMachine")
strComputer = objComputer.MachineName
Do Until objTextFile.AtEndOfStream
 Linha = objTextFile.Readline
 If InStr(1,Linha,"#") = 0 Then
   vetor = Split(Linha,";")
   If UCase(strComputer) = UCase(vetor(0))Then
    vetor2 = Split(vetor(1), "-")
    For i = 0 To UBound(vetor2)
     usuario = vetor2(i)
    Set objGroup = GetObject("WinNT://" & strComputer & "/Administradores,group")
    Set objUser = GetObject("WinNT://LABDC/" & usuario & ",user")
    objGroup.Add(objUser.ADsPath)
   Next
   Exit Do
  End If
 End If 
Loop
objTextFile.close

Prestar atenção para o formato do caminho do arquivo de configuração e não esquecer de alterar o nome do domínio de sua empresa.

4° Passo – Criar a GPO das Exceções

Vamos agora criar a GPO que irá configurar as exceções. Crie uma nova GPO com o nome de restrictedEx, por exemplo, e configure o vbs como script de inicialização e desligamento. IMPORTANTE: O caminho do vbs deve ser no formato UNC!! Conforme imagem abaixo:

Depois vamos linka-la a mesma OU onde aplicamos a GPO do passo 1. A ordem de aplicação das GPO’s é importante, primeiro devemos aplicar a GPO de grupo restrito (passo 1) e depois a GPO que irá configurar as exceções conforme imagem abaixo:

 

5° Passo – Hora de testar!

Depois de seguidos os passos acima, chegou a hora do teste. No arquivo de configuração, coloque o nome de alguma maquina que esteja na OU que recebe estas políticas, colocando o login do usuário ou dos usuários que devem ser a exceção. Atentando para separar o hostname por ponto-e-vírgula e os logins por traço.
Na máquina de teste, executar o comando gpupdate /force para pegar as políticas e depois reinicializar a máquina para os scripts serem executados.
Se todos os passos foram seguidos corretamente, deve irá funcionar.Tongue out

PS.: Se por acaso ficou curioso por causa de outra GPO que está no print (NegarLogonLocal), aguarde que está será assunto para a parte 2 na semana que vem. Wink
Abraços!


Visualizações(2020)

Tags: , , ,

Active Directory | GPO | Segurança | Servidor

Os comentários estão fechados

Powered by BlogEngine.NET 1.6.1.0
Theme by Mads Kristensen | Modified by Mooglegiant