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

image

Antes de partirmos para os finalmente, divido um cenário proposto onde é possível reproduzir este “problema”:

image

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:

image

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:

image

image

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
http://technet.microsoft.com/en-us/library/cc608251.aspx

ISA Server 2004 Enterprise Edition in a Workgroup
http://technet.microsoft.com/en-us/library/cc302483.aspx