Arquivo

Arquivo de julho, 2009

Isa Server 2006 e log de URL

30, julho, 2009 2 comentários

O Microsoft Isa Server 2006 é uma ferramenta de controle, otimização e proteção de rede. Ela age como servidor de firewall e proxy da sua rede, além de ter um poderoso recurso de cache, o que em muitos casos pode diminuir a utilização do seu link de Internet.

A partir da versão 2004 do produto, o recurso de Log foi aprimorado permitindo inclusive que acompanhemos o tráfego de dados em modo real-time.

Em contrapartida, esse recurso tem um pequeno problema. Caso um usuário acesse alguma página de internet, no log, será gravado o IP do site acessado, e não o endereço real do site. Veja o exemplo abaixo:

01

No campo URL, podemos observar que consta o IP do site, e não o endereço real. Se pensarmos de modo “gerencial”, essa informação acaba não nos servindo muito, certo ? Já existem diversas alternativas comerciais que modificam esse comportamento e gravam os log’s já com o endereço correto do site.

Procurando na Internet, encontrei um plugin gratuito feito por Tarek Majdalani, um russo que tem o título de MVP da Microsoft em Isa Server. Apos baixar o plugin (aqui):

  1. descompacte ele;
  2. copie o arquivo HostLogger.dll para pasta onde o Isa está instalado (normalmente C:\Program Files\Microsoft ISA Server);
  3. no prompt de comando, navegue até essa pasta e registre o plugin com o comando regsvr32 HostLogger.dll ;
  4. após isso, reinicie os serviços do Isa Server;

Pronto, a partir de agora o seu Isa Server irá gerar os log’s das Url’s reais acessadas pelos usuários:

02

Categories: Isa Server Tags: , ,

Erro 403 – Forbidden em um Farm Sharepoint

22, julho, 2009 Sem comentários

Passei recentemente por um problema muito estranho. Na empresa onde trabalho, recentemente fiz uma instalação do EPM 2007, solução composta pelo MOSS2007 e pelo Project Server 2007. A parte mais complicada foi a de migrar os dados da versão antiga do EPM 2003 para o novo farm.

Após um dia inteiro de trabalho, a migração foi concluída com sucesso. Os testes preliminares pós-migração foram feitos e tudo estava funcionando perfeitamente.

Alguns dias depois, quando este farm entrou em produção, os usuários estavam encontrando problemas ao acessar algumas páginas do Project Server. O erro retornado era:

22072009_01

Aliás, o mais estranho mesmo, era que apenas essa informação era retornada. Nenhum código Html era retornado, apenas a string “403 – Forbidden”.  Executando algumas ferramentas de tracing, observei que antes dessa mensagem, o servidor respondia com dois pacotes de erro 401.1 do IIS.

Partindo disso, podemos identificar que o problema está relacionado a autenticação do IIS. Se um usuário tivesse privilégios de Administrador do servidor onde estava instalado esse EPM entrasse nessa mesma página, ele conseguia acessar normalmente. E após isso, todos os outros usuários, mesmos os que estavam com problemas, conseguiam abrir a página.

Estranho não? Pesquisando mais a fundo, consegui identificar um padrão para esse comportamento. Todas as vezes que o pool que executava esse contexto no IIS era reiniciado, o problema voltava a ocorrer.

Após alguns testes, finalmente descobri a razão disso e uma maneira de corrigir. O problema estava ocorrendo porque os usuários do meu domínio não tinham privilégios de leitura nos recursos do sistema usados pelo Sharepoint. Para corrigir isso, adicionei o grupo DOMINIO\Domains Users ao grupo local WSS_WPG  do servidor onde esta sendo executado o EPM.

22072009_02

Após um reinício do IIS, as coisas voltaram a funcionar perfeitamente.

Categories: EPM, IIS, Segurança Tags:

Limitações e curiosidades do Active Directory

14, julho, 2009 Sem comentários

Todos os administradores de redes sabem que o Active Directory é um dos melhores serviços que a Microsoft já desenvolveu. Já imaginou como seria manter sua rede sem ele?

Em ambientes pequenos não haveria problemas, agora imagine gerenciar uma rede com 2 mil usuários, separados em 16 sites (filiais) em 3 continentes? Pois é, agradeça todos os dias ao tio Bill por isso.

Pouca gente sabe, mas como tudo no mundo, esse serviço tem algumas limitações técnicas. Esse artigo descreve algumas das limitações que existem no Active Directory atualmente.

Número máximo de objetos:  cada controlador de domínio na floresta pode criar aproximadamente 2,15 bilhões de objetos durante sua vida;

Número máximo de SSIDs: aproximadamente 1 bilhão de SSIDs únicas;

Associação de Grupos: cada objeto (conta, grupo) pode fazer parte de no máximo 1.015 grupos. Mais informação sobre isso aqui;

Tamanho de FQDNs: Fully qualified domain names não podem exceder 64 caracteres, incluindo traços e pontos;

Tamanho de Nome de Arquivos: o nome e o path do arquivo não podem exceder 255 caracteres.

A explicação dessa e de outras limitações pode ser encontrada neste link.

Delegar acesso a atributos do Active Directory

8, julho, 2009 Sem comentários

Recentemente, fui solicitado a resolver um problema onde um determinado usuário não estava conseguindo identificar quais grupos de segurança um determinado usuário fazia parte.

Entendendo e simulando o problema:

Na situação reportada, um programa de terceiros precisava descobrir se uma conta de usuário fazia parte de um determinado grupo no AD. Para isso, fazia uma consulta através do protocolo LDAP usando um usuário com privilégios mínimos cadastrado neste domínio. Através dessa consulta, o programa lia o atributo memberOf dessa conta. Entretanto, o resultado obtido não era o esperado.

Primeiramente, para identificar se havia algum problema relacionado a maneira como esta equipe estava fazendo essa consulta com o LDAP, tentei atingir o ‘goal’ solicitado (retornar o grupo de usuários de um determinado login) utilizando as próprias ferramentas do Windows. Para isso, usei o utilitário dsget.exe. Esse utilitário nos permite fazer consultas aos medados do Active Directory. Para isso, executei com a seguinte sintaxe:

dsget user “CN=user1,OU=Usuarios,DC=cetil,DC=com,DC=br” -memberof

Vejam que 0 segundo parâmetro é o caminho exato desta conta no Active Directory. Utilizei o parâmetro -memberof para que fosse retornado alista de grupos deste usuário.

Verifiquei que ao executar este comando no contexto do usuário utilizado para fazer as consultas LDAP, apenas o Grupo Primário desta conta era retornado, embora ela faça parte de outros grupos. Porque isso acontece então?

Muito simples. A conta utilizada para fazer essa consulta não possui privilégios suficientes para ler os atributos necessários no Schema do Active Directory. Para resolver isso é muito simples:

1- Abra a guia Active Directoy Users and Computers (dsa.msc) , clique com o botão direito em cima do domínio desejado e escolha a opção Delegate Control;

070709_01

2- Na tela de boas vindas, clique em Next;

3- Na tela de seleção de grupos e usuários, clique em Adicionar e informe a conta a qual você irá atribuir esse privilégio. Após isso, clique em Next;

070709_02

4- Na tela Tasks to delegate, escolha a opção Create a custom task to delegate e depois clique no botão Next;

070709_03

5- Na tela Active Directory Object Type, clique em Only the following objects in folder. Após, habilite na lista o item User Objects e clique em Next;

070709_04

6- Na janela Permissions, desmarque a opção General e habilite a opção Property-specific. Após isso, habilite a opção Read MemberOf e clique em Next;

070709_05

7- Na tela final, temos um sumário da operação que será realizada. Clique em Finish para que a operação seja confirmada.

070709_06

8- A partir de agora, a conta de usuário que você atribuiu terá privilégios para ler o atributo MemberOf do metadados do Active Directory, como podemos identificar na imagem abaixo.

070709_07

Essa operação pode ser feita para delegar o acesso (leitura ou escrita) a qualquer objeto do schema do Active Directory.