Isolando Problemas onde o ISA Server Parece ser o Culpado – Sessão 3
Por: Yuri Diógenes
1. Introdução
Na sessão passada vimos um cenário de VPN bastante interessante, onde o ISA realmente parecia ser o culpado. Porém no final foi visto que o roteador/modem era o elemento que causava o problema. Cenários que envolvem conectividade entre componentes de terceiros são sempre desafiadores e este próximo cenário mais uma vez mostra isso.
2. Cenário – ISA Server parou de autenticar os usuários de domínio
Neste cenário o problema final era que os usuários de domínio não conseguiam acessar a Internet, o ISA sempre pedia autenticação. O pedido de autenticação era para qualquer usuário e mesmo quando o usuário digitava corretamente as credenciais o problema persistia.
Um outro comportamento em particular que acontecia neste cenário é que ao abrir as políticas de Firewall o erro abaixo acontecia:
"The trust relationship between this workstation and the primary domain failed. 0x800706fd"
A partir deste erro podemos entender que este servidor ISA que era membro do domínio estava tendo dificuldades para acessar o controlador de domínio. Contudo ainda não estava claro que este era o problema.
2.1. Coletas
Como se tratava de um problema de acesso, iniciamos uma bateria de testes básicos para entender o nível de acesso que era possível estabelecer entre o ISA e os controladores de domínio.
Testes Realizados a Partir do ISA |
Resultado |
Observações |
Execução de um ping para os controladores de domínio |
Resposta realizada com sucesso |
- |
netdiag /v |
Um dos principais erros observado foi o mostrado abaixo: DC list test . . . . . . . . . . . : Failed [WARNING] Cannot call DsBind to clusterdc.ctest.com (192.168.0.10). [RPC_S_CALL_FAILED] Trust relationship test. . . . . . : Failed Test to ensure DomainSid of domain 'CTEST' is correct. [FATAL] Secure channel to domain 'CTEST' is broken. [ERROR_NO_LOGON_SERVERS] |
É possível notar problemas na comunicação RPC. O teste do canal de segurança pode ser apenas uma vítima neste momento. |
nltest /sc_verify:ctest |
Flags: 80 Trusted DC Name Trusted DC Connection Status Status = 1311 0x51f ERROR_NO_LOGON_SERVERS Trust Verification Status = 1311 0x51f ERROR_NO_LOGON_SERVERS The command completed successfully |
Para testar o canal de segurança o NLTEST foi executado, porém também sem sucesso. |
Adicionalmente usamos também o NLTEST para tentar reiniciar o canal de segurança mas a comunicação com o controlador de domínio não acontecia de forma alguma. Resolvi obter uma captura de rede para entender o que estava de fato ocorrendo.
3.3. Análise
A coleta de dados foi fundamental para a determinação da causa raiz. Pois foi possível entender o que estava ocorrendo a nível de rede durante esta comunicação:
· O teste foi realizado colocando o network monitor no servidor ISA (placa interna) e executando novamente o comando nltest /sc_verify:ctest. Foi possível então observar que o 3 way handshake acontecia normalmente e foi negociado a comunicação RPC e negociação de “End Point Mapper”:
2788 15:24:32.530 192.168.0.8 clusterdc.ctest.com TCP TCP: Flags=.S...... , SrcPort=1571, DstPort=DCE endpoint resolution(135), Len=0, Seq=853700869, Ack=0, Win=16384 (scale factor not found)
2789 15:24:32.530 clusterdc.ctest.com 192.168.0.8 TCP TCP: Flags=.S..A... , SrcPort=DCE endpoint resolution(135), DstPort=1571, Len=0, Seq=3785297540, Ack=853700870, Win=16384 (scale factor not found)
2790 15:24:32.530 192.168.0.8 clusterdc.ctest.com TCP TCP: Flags=....A..., SrcPort=1571, DstPort=DCE endpoint resolution(135), Len=0, Seq=853700870, Ack=3785297541, Win=17520 (scale factor not found)
· Em seguida o servidor ISA tenta fazer o vínculo (bind) usado portas altas:
2791 15:24:32.530 192.168.0.8 clusterdc.ctest.com MSRPC MSRPC: c/o Bind: UUID{E1AF8308-5D1F-11C9-91A4-08002B14A0FA} Endpoint Mapper Call=0x1 Assoc Grp=0x0 Xmit=0x16D0 Recv=0x16D0
+ Tcp: Flags=...PA..., SrcPort=1571, DstPort=DCE endpoint resolution(135), Len=72, Seq=853700870 - 853700942, Ack=3785297541, Win=17520 (scale factor not found)
- RPC: c/o Bind: UUID{E1AF8308-5D1F-11C9-91A4-08002B14A0FA} Endpoint Mapper Call=0x1 Assoc Grp=0x0 Xmit=0x16D0 Recv=0x16D0
+ Bind: {E1AF8308-5D1F-11C9-91A4-08002B14A0FA} Endpoint Mapper
· O pacote enviando pelo ISA não é respondido e com isso o servidor ISA faz uma retransmissão e 3 segundos depois o controlador de domínio envia o TCP Reset:
2831 15:24:35.155 clusterdc.ctest.com 192.168.0.8 TCP TCP: Flags=..R....., SrcPort=DCE endpoint resolution(135), DstPort=1571, Len=0, Seq=3785297601, Ack=3785297601, Win=0 (scale factor not found)
- Tcp: Flags=..R....., SrcPort=DCE endpoint resolution(135), DstPort=1571, Len=0, Seq=3785297601, Ack=3785297601, Win=0 (scale factor not found)
SrcPort: DCE endpoint resolution(135)
DstPort: 1571
SequenceNumber: 3785297601 (0xE19F0EC1)
AcknowledgementNumber: 3785297601 (0xE19F0EC1)
+ DataOffset: 80 (0x50)
- Flags: ..R.....
CWR: (0.......) CWR not significant
ECE: (.0......) ECN-Echo not significant
Urgent: (..0.....) Not Urgent Data
Ack: (...0....) Acknowledgement field not significant
Push: (....0...) No Push Function
Reset: (.....1..) Reset
Syn: (......0.) Not Synchronize sequence numbers
Fin: (.......0) Not End of data
Window: 0 (scale factor not found)
Checksum: 34874 (0x883A)
UrgentPointer: 0 (0x0)
Nesse momento o que ocorre é a seguinte mensagem de erro:
Flags: 80
Trusted DC Name
Trusted DC Connection Status Status = 1311 0x51f ERROR_NO_LOGON_SERVERS
Trust Verification Status = 1311 0x51f ERROR_NO_LOGON_SERVERS
The command completed successfully
4. Conclusão
Após este teste ficou claro que havia algo entre o controlador de domínio e o ISA que estava de alguma forma barrando a comunicação correta. Esta conclusão é devido ao fato de que toda a rede interna do usuário não tinha problema. Todos os serviços de logon interno funcionavam corretamente, toda comunicação RPC era estabelecida.
Envolvemos o time de segurança e foi então que descobrimos que o administrador do Firewall (que só naquele momento foi revelado que existia) havia instalado um software adicional no firewall que fazia um tipo de análise de conteúdo e dinamicamente bloqueava portas. Após desinstalar este produto a comunicação entre o ISA e o controlador de domínio ocorreu corretamente e os usuários voltaram a ter acesso a Internet corretamente.