O que está acontecendo com o meu TMG Client!?
Autor: Daniel Pires / Revisão: Daniel Mauser
Introdução
Olá, recentemente trabalhei em um chamado bem interessante com um de nossos clientes. As estações de trabalho as quais tinham o “TMG Client” instalado utilizam o utilitário FTP.exe para transferir arquivos para um servidor FTP externo (internet) e, inesperadamente, estes clientes TMG passaram a reclamar que o upload parou de ser efetuado causando um grande transtorno.
Entendendo o cenário
Antes de partirmos para os finalmente, divido um cenário proposto onde é possível reproduzir este “problema”:
Figura 1 – Regras utilizadas no TMG
Ordem |
Tipo de Regra |
Condição |
1 |
Exchange Web Client Access Publishing Rule |
All Users |
2 |
Non-Web Server Protocol Publishing Rule |
- |
3 |
Array Level - Access Rule |
All Authenticated Users |
Neste cenário, ao tentar efetuar uma conexão a um servidor FTP externo os usuários recebiam o erro abaixo:
Figura 2 – Erro ao acessar o servidor FTP externo via TMG Client
Na figura acima ao ser efetuado o acesso FTP via TMG Client, o usuário recebia a seguinte mensagem de erro “Unknown host” e o ícone do TMG Client automaticamente passava a mostrar um X vermelho com a mensagem “Disabled: Cannot authenticate to Forefront TMG <hostname>”.
Iniciando o Troubleshooting
Como sempre em casos de ISA, TMG e UAG, iniciamos o troubleshooting reproduzindo o problema e coletando um monitoring no TMG:
Pelo log do monitoring não conseguimos identificar o motivo e nem achar o culpado. Partimos então para uma captura de rede com o nosso velho e grande amigo do peito Network Monitor:
1) Vemos o TMG Client iniciando o 3-way handshake com o TMG Server na porta 1745 (porta padrão):
Frame Number |
Time Of Day |
Source |
Destination |
Protocol |
Description |
6 |
23:49:59 |
10.100.100.5 |
10.100.100.50 |
TCP |
TCP:Flags=......S., SrcPort=49233, DstPort=1745, PayloadLen=0, Seq=1543176434, Ack=0, Win=8192 ( Negotiating scale factor 0x8 ) = 8192 |
9 |
23:49:59 |
10.100.100.50 |
10.100.100.5 |
TCP |
TCP:Flags=...A..S., SrcPort=1745, DstPort=49233, PayloadLen=0, Seq=3124779191, Ack=1543176435, Win=8192 ( Negotiated scale factor 0x8 ) = 2097152 |
10 |
23:49:59 |
10.100.100.5 |
10.100.100.50 |
TCP |
TCP:Flags=...A...., SrcPort=49233, DstPort=1745, PayloadLen=0, Seq=1543176435, Ack=3124779192, Win=513 (scale factor 0x8) = 131328 |
2) Channel Setup request, Channel Setup response e Logon:
3) Eis que temos:
Frame: Number = 16, Captured Frame Length = 335, MediaType = ETHERNET
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[00-15-5D-01-64-82],SourceAddress:[00-15-5D-01-64-84]
+ Ipv4: Src = 10.100.100.50, Dest = 10.100.100.5, Next Protocol = TCP, Packet ID = 8039, Total IP Length = 321
+ Tcp: Flags=...AP..., SrcPort=1745, DstPort=49233, PayloadLen=281, Seq=3124780027 - 3124780308, Ack=1543177915, Win=508 (scale factor 0x8) = 130048
- RWS: Logon deny
- RwstPacket: Logon deny
NullChar: 0 (0x0)
ProtoSig: RWS
PktLen: 281 (0x119)
Reserved1: 0 (0x0)
Flags: 0 (0x0)
Reserved2: 0 (0x0)
OpCode: Logon deny
RwsMessage:
Unparsed: Binary Large Object (264 Bytes)
Por que o TMG retornou Logon deny?
Lembrem-se que o TMG está em workgroup, ou seja, não é membro do domínio. Lembrem-se também que o TMG Client, por padrão, automaticamente envia as credenciais do usuário ao TMG server para validação. Como o TMG não é membro do domínio, ele não pode enviar estas credenciais a um Domain Controller para autenticação / autorização. Portanto, para que o TMG server valide as credenciais de usuário enviadas pelo TMG Client é necessário usar mirrored-accounts na base SAM (Security Account Manager) do TMG server, ou seja, que o mesmo nome de usuário e senha sejam utilizados pelo usuário na estação de trabalho TMG Client coincidam com o nome de usuário e senha cadastrados na base SAM do TMG server.
Conclusão
Não pudemos achar a root cause do porquê o acesso através do utilitário ftp.exe parou de funcionar (talvez o usuário tenha trocado a sua senha e esta não foi atualizada na base SAM do TMG??), porém, é importante não perdermos o foco e dar a devida importância a algumas decisões que devem ser tomadas durante a fase de implementação (Domain Joined ou Workgroup) do TMG, visto que dependendo do tipo de implementação adotada algumas funcionalidades poderão ou não ser suportadas ou talvez precisem de customizações adicionais para o perfeito funcionamento.
A resolução definitiva, portanto, é usar mirrored-accounts (mesmo nome de usuário e senha) no TMG Server ou alterar a Array Level Access Rule para All Users, uma vez que o TMG não irá mais validar estas credenciais uma vez que nenhuma regra exige autenticação.
Informações Adicionais
Deployment Recommendations for ISA Server 2004 in a Workgroup or Domain
https://technet.microsoft.com/en-us/library/cc608251.aspx
ISA Server 2004 Enterprise Edition in a Workgroup
https://technet.microsoft.com/en-us/library/cc302483.aspx