Archive

Arquivo por Autor

Não é possível acessar um site HTTPS específico – TLS Encrypted Alert – illegal_parameter(47)

11 de fevereiro de 2012 Deixe um comentário

Problema
=================================

– Não é possível acessar o site https://www.exemplo.com.br através do TMG Server.

Resolução
=================================

– Quando tentamos realizar o acesso ao site através do TMG, o site não era carregado. A página ficava em branco.

– Como de costume, o cliente informou que se o acesso fosse realizado de outra máquina sem passar pelo TMG, o problema não ocorria.

– No log do TMG, filtramos pelo IP do cliente e não foi possível encontrar nada relevante.

– Coletamos o Netmon na máquina cliente que estava realizando o acesso. Como podemos ver abaixo, o SSL handshake não está sendo completado por isso a página não é carregada:

1715 2:42:52 PM 1/27/2012 55.7602103 192.168.0.134      201.XXX.XXX.XXX TCP TCP:Flags=……S., SrcPort=1099, DstPort=HTTPS(443),
1717 2:42:52 PM 1/27/2012 55.8539603 201.XXX.XXX.XXX 192.168.0.134 TCP TCP:Flags=…A..S., SrcPort=HTTPS(443),
1718 2:42:52 PM 1/27/2012 55.8539603 192.168.0.134      201.XXX.XXX.XXX TCP TCP:Flags=…A…., SrcPort=1099, DstPort=HTTPS(443),
1719 2:42:52 PM 1/27/2012 55.8539603 192.168.0.134 201.XXX.XXX.XXX TLS TLS:TLS Rec Layer-1 HandShake: Client Hello
1728 2:42:52 PM 1/27/2012 56.1820853 201.XXX.XXX.XXX 192.168.0.134 TLS TLS:TLS Rec Layer-1 Encrypted Alert
1731 2:42:52 PM 1/27/2012 56.1977103 201.XXX.XXX.XXX 192.168.0.134 TLS TLS:TLS Rec Layer-1 Encrypted Alert

– Se expandirmos o pacote 1728 conseguimos ver mais detalhes do erro:

Frame: Number = 1728, Captured Frame Length = 61, MediaType = ETHERNET
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[00-1F-D0-F3-63-56],SourceAddress:[00-1B-21-9E-A7-27]
+ Ipv4: Src = 201.16.234.41, Dest = 192.168.0.3, Next Protocol = TCP, Packet ID = 65289, Total IP Length = 47
+ Tcp: Flags=…AP…, SrcPort=HTTPS(443), DstPort=1099, PayloadLen=7, Seq=1745586695 – 1745586702, Ack=2332138847, Win=49368 (scale factor 0x0) = 49368
TLSSSLData: Transport Layer Security (TLS) Payload Data
– TLS: TLS Rec Layer-1 Encrypted Alert
– TlsRecordLayer: TLS Rec Layer-1 Encrypted Alert
ContentType: Encrypted Alert
– Version: TLS 1.0
Major: 3 (0x3)
Minor: 1 (0x1)
Length: 2 (0x2)
EncryptedData: Binary Large Object (2 Bytes)

– Abaixo temos os dados do TLS handshake em Hexa. (Não está encriptado ainda, pois o SSL handshake ainda não foi concluído.)

00 1F D0 F3 63 56 00 1B 21 9E A7 27 08 00 45 00 00 2F FF 09 40 00 33 06 D4 D9 C9 10 EA 29 C0 A8 00 03 01 BB 04 4B 68 0B 8A 07 8B 01 9D 5F 50 18 C0 D8 13 88 00 00 15 03 01 00 02 02 2F

– Os 2 últimos Bytes dos dados em Hexa, representam o Alerta.
– Convertendo o 2F em Decimal temos 47.

– Se abrirmos a RFC do TLS 1.0 e procurarmos por AlertDescription vamos encontrar a tabela a seguir:
http://www.ietf.org/rfc/rfc2246.txt

unexpected_message(10),
bad_record_mac(20),
decryption_failed(21),
record_overflow(22),
decompression_failure(30),
handshake_failure(40),
bad_certificate(42),
unsupported_certificate(43),
certificate_revoked(44),
certificate_expired(45),
certificate_unknown(46),
illegal_parameter(47),
unknown_ca(48),
access_denied(49),
decode_error(50),
decrypt_error(51)

– O acesso está falhando, pois o Web Server não está reconhecendo algum parâmetro enviado pelo cliente, e retorna a mensagem de illegal_parameter(47).

– Após pesquisar sobre esse alerta, encontrei o KB http://support.microsoft.com/kb/980436
– Esse KB é para corrigir uma vulnerabilidade do protocolo TLS. Isso NÃO é um problema do Windows, e sim do TLS. E TODOS os fabricantes já disponibilizaram uma correção para isso como pode ser visto na lista abaixo:

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3555

– Ao instalar esse KB na máquina cliente, quando a máquina faz uma requisição TLS, no primeiro pacote enviado, que é o “ClientHello”, ela envia o parâmetro Transport Layer Security (TLS) Renegotiation Indication Extension. Muitos servidores que não tem essas atualizações não conseguem interpretar esse tipo de requisição e retornam essa mensagem de Encrypted Alert fazendo com que a conexão se encerre.

WORKAROUND:
=============================

– Para contornar isso seguimos o procedimento do KB http://support.microsoft.com/kb/980436 e configuramos a máquina cliente para que ela não envie o parâmetro “Transport Layer Security (TLS) Renegotiation Indication Extension”. Isso é um Workaround, já que o real problema é o servidor não suportar essa extensão do TLS e como o WebServer roda em Linux, eles não pretendem instalar a atualização. rs

Obs: Perguntei para o cliente como que ele fez o acesso sem passar pelo TMG e tinha funcionado. Ele respondeu que quando estava acessando sem passar pelo TMG, estava usando uma máquina cliente em Linux. Como essa máquina também não tinha a atualização de segurança do TLS, o acesso ocorria normalmente.

– Esse é só mais um caso em que pudemos constatar que muitos dos administradores Linux não tem o hábito de instalar atualizações de segurança, e nesse caso está causando incompatibilidades com outros sistemas. Sem contar a brecha de segurança do site e para o cliente.

– E mais uma vez, a culpa não era do ISA/TMG. 🙂

Erro 1085 ao aplicar GPO – Error: Windows failed to apply the Scripts settings.

11 de fevereiro de 2012 2 comentários

Problema
======================================

  • Ao aplicar as GPOs o evento 1085 é gerado no Event Viewer.

Log Name: System
Source: Microsoft-Windows-GroupPolicy
Date: 19/01/2012 13:08:07
Event ID: 1085
Task Category: None
Level: Warning
User: SYSTEM
Computer: xxxxxxxx
Description:
Windows failed to apply the Scripts settings. Scripts settings might have its own log file.

Resolução
========================================

  • Nesse chamado, o cliente tinha dezenas de GPOs sendo aplicadas.
  • Segundo o cliente, todos os scripts das GPOs aparentemente estavam sendo aplicados com sucesso. Eles não haviam notado nenhum script que não estivesse sendo aplicado.

–     O primeiro passo foi habilitar o log de GPO conforme abaixo:

http://blogs.technet.com/b/mempson/archive/2010/01/10/userenvlog-for-windows-vista-2008-win7.aspx

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\

New key: Diagnostics

Inside this key:

Value Name: GPSvcDebugLevel

Value Type: REG_DWORD

Value Data: 30002 (hex)

Output: %windir%\debug\usermode\gpsvc.log

– Após algumas pesquisas, encontrei documentos dizendo que esse erro pode ser gerado no caso de a GPO ter a extensão de scripts nos parâmetros da GPO mas não ter nenhum script configurado.

– Toda vez que adicionamos um script de logon ou de startup em uma GPO, é adicionado uma extensão nessa GPO para informar ao Sistema Operacional que essa GPO tem um script para ser executado.

– No log GPSVC.log, localizamos todas as GPOs que tinham a “extensão de scripts” que é representado pela GUID {42B5FAAE-6536-11D2-AE5A-0000F87571E3}

Identifying Group Policy Client-Side Extensions

http://support.microsoft.com/kb/216357/en-us

– Foram encontradas 4 GPOs com essa extensão. Isso significa que essas 4 GPOs deveriam ter um script anexado. Segue abaixo o exemplo de uma dessas GPOs e como localizar a extensão:

GPSVC(440.574) 10:30:47:454 ProcessGPO: ==============================
GPSVC(440.574) 10:30:47:454 ProcessGPO: Searching <cn={E0622561-6CA5-4E18-98B6-C97A4168D8D4},cn=policies,cn=system,DC=Domain,DC=local>
GPSVC(440.574) 10:30:47:454 ProcessGPO: Machine has access to this GPO.
GPSVC(440.574) 10:30:47:454 ProcessGPO: GPO passes the filter check.
GPSVC(440.574) 10:30:47:454 ProcessGPO: Found functionality version of: 2
GPSVC(440.574) 10:30:47:454 ProcessGPO: Found file system path of: \\Domain.local\SysVol\bc\Policies\{E0622561-6CA5-4E18-98B6-C97A4168D8D4}
GPSVC(440.574) 10:30:47:454 ProcessGPO: Found common name of: <{E0622561-6CA5-4E18-98B6-C97A4168D8D4}>
GPSVC(440.574) 10:30:47:454 ProcessGPO: Found display name of: <Nome_da_GPO>
GPSVC(440.574) 10:30:47:454 ProcessGPO: Found machine version of: GPC is 12, GPT is 12
GPSVC(440.574) 10:30:47:454 ProcessGPO: Found flags of: 1
GPSVC(440.574) 10:30:47:454 ProcessGPO: Found extensions: [{35378EAC-683F-11D2-A89A-00C04FBBCFA2}{D02B1F72-3407-48AE-BA88-E8213C6761F1}][{42B5FAAE-6536-11D2-AE5A-0000F87571E3}{40B6664F-4972-11D1-A7CA-0000F87571E3}]
GPSVC(440.574) 10:30:47:454 ProcessGPO: ==============================

– Após encontrar essas 4 GPOs que continham a Extensão para Scripts, rodei o comando GPResult /Z para verificar quais scripts estavam sendo executados e em qual das GPOs estavam vinculados.

– No Gpresult, somente 3 GPOs tinham scripts configurados:

Startup Scripts
—————
GPO: GPO1
Name: Script1.bat

GPO: GPO2
Name: Script2.bat

Logon Scripts
————-
GPO: GPO3
Name: Script3.bat

– Isso significa que uma das GPOs tem a “extensão para scripts” {42B5FAAE-6536-11D2-AE5A-0000F87571E3}, mas atualmente, não tem um script configurado.

– Localizamos essa GPO e abrimos o GPMC. E essa GPO realmente não tinha um Script. Nem Startup Script nem Logon Script.

– Acessamos o AdsiEdit.msc e acessamos Domain NC -> CN=System -> CN=Policies, localizamos o ID da GPOs e clicamos para editar.

– Removemos a GUID [{42B5FAAE-6536-11D2-AE5A-0000F87571E3}{40B6664F-4972-11D1-A7CA-0000F87571E3}] do atributo gPCMachineExtensionNames.

– Forçamos a replicação dos DCs com o comando: Repadmin /syncall /eAPDq

– Após isso, rodamos o comando Gpupdate /force e o erro 1085 não foi mais gerado.

Artigos relacionados
====================

Identifying Group Policy Client-Side Extensions
http://support.microsoft.com/kb/216357/en-us

Userenvlog for Windows Vista/2008/Win7
http://blogs.technet.com/b/mempson/archive/2010/01/10/userenvlog-for-windows-vista-2008-win7.aspx

Categorias:Active Directory, GPO Tags:, , ,

TMG – User Activity Report – Error: Subreport Could not be shown

15 de setembro de 2011 3 comentários

A Mensagem de erro abaixo foi constatado como sendo um problema na parte de User Activity Report do Forefront TMG.

Esse erro será corrigido no Service Pack 2 ( SP2 ) do TMG que será lançado em breve.

Caso você esteja com esse erro e tenha urgencia em resolve-lo, você pode abrir um chamado na Microsoft pois já existe um correção que pode ser disponibilizada.

Abraços

Renato Marson Pagan

Troubleshooting: ISA / TMG Instável, congelando, intermitente

Nos últimos meses tivemos muitos chamados referentes a problemas de performance no TMG.

Casos em que o TMG congelava, parava de responder por alguns instantes entre outros.

Abaixo seguem algumas recomendações que normalmente resolvem esses problemas e que podem ser aplicadas em todos os ambientes para prevenir que esse tipo de problema ocorra no futuro.

——————-

  • Evitar ao máximo a utilização de regras com a opção All Outbound Traffic + Autenticação de usuário.
  • Evitar ao máximo a utilização de regras com a opção All Outbound Traffic + Domain Name Set

    Em ambos os casos, o TMG depende de outros servidores para validar as regras.

    No primeiro caso, toda requisição que chega ao TMG, ele precisa contatar o DC para autenticar o usuário, mesmo que esse trafego não seja necessário.

    No segundo caso, o TMG depende do servidor DNS para fazer uma consulta reversa e assim comparar com o Domain Name Set

    Por isso é altamente recomendado que regras que contenham autenticação de usuários ou Domain Name Set NÃO sejam utilizadas com All Outbound Traffic.

    O link abaixo explica bem esse comportamento.

    http://blogs.technet.com/b/isablog/archive/2009/01/12/isa-server-2006-stops-answering-requests.aspx

—————-

———————–

————————

  • Verificar as configurações de rede.

    Deixar DNS configurado somente na placa de rede interna.

    Verificar Binding Order: Rede interna sempre no topo.

    Sempre verificar que as placas de rede estão utilizando os drivers mais atuais possiveis.

————————-

————————–

  • Caso o TMG continue travando e apresentando problemas de performance será necessário coletar alguns logs para serem analisados:

    Configurar Perfmon com os contadores abaixo:

ISA Server Firewall Packet Engine/*

ISA Server Firewall Service/*

ISA Server Web Proxy/*

Cache/*

Logical Disk/*

Memory/*

Netlogon/*

Network Interface/*

Objects/*

Paging File/*

Physical Disks/*

Process/*

Processor/*

Redirector/*

Server/*

Server Work Queues/*

System/*


Ativar o modo Debugging do Netlogon

http://support.microsoft.com/kb/109626

Uma boa maneira de iniciar a análise do Perfmon é utilizando o PAL:

http://pal.codeplex.com/

————————-

[]’s

Renato Marson Pagan

Categorias:TMG Tags:, , , ,

Liberar acesso HTTPS em uma porta diferente da 443

Problema
==========================

 

 

Resolução
==========================

– Por padrão o ISA Server / TMG só permite conexões SSL na porta 443 e 563 (NNTP).

– Quando tentamos acessar o site acima na porta 7778, recebemos a seguinte mensagem no Monitoring do ISA/TMG:

Status: 12204 The specified Secure Sockets Layer (SSL) port is not allowed. ISA Server is not configured to allow SSL requests from this port. Most Web browsers use port 443 for SSL requests.

Para liberar esse acesso, precisamos fazer uma configuração para que seja permitido a utilização de SSL na porta 7778.

Liberar a porta 7778 nas regras, não resolve o problema. O Web Proxy Filter intercepta a conexão e nega o acesso da mesma maneira.

Para corrigir esse problema, utilizamos uma ferramenta do site ISA TOOLS http://www.isatools.org/tools/ISAtrpe.zip

Essa ferramenta mostra em quais portas o trafego SSL está liberado.

Por padrão, as portas 443 e 563 são liberadas conforme pode ser visto abaixo:

Com essa ferramenta podemos adcionar uma nova porta para utilizar SSL.

Adicionando a porta 7778 como porta permitida para a utilização do SSL, nós não precisamos liberar a porta 7778 na access rule que libera o trafego. Apenas liberando o protocolo HTTPS, o acesso aos sites HTTPS que utilizam a porta 7778 estarão liberados.

—————————————————————-

Renato Marson Pagan

Categorias:Uncategorized

Problema de Replicação entre dominios – Lingering Objects

Problema
==========================

– Problemas de replicação, um dos DCs da floresta estava apresentando problemas de replicação. Vários eventos relatando Lingering Objects.

– O Servidor DC02.subdomain.Contoso.com não estava conseguindo replicar com nenhum outro DC da Floresta.

– Ao Rodar o comando REPADMIN /SHOWREPS recebemos a mensagem:

Last error: 8606 (0x219e):
Insufficient attributes were given to create an object.  This object may not exist because it may have been deleted and already garbage collected.

Nos DCs que ele estava tentando se replicar, estavamos recebendo o evento abaixo:

  Event
Type: Error

  Event Source: NTDS Replication

  Event Category: Replication

  Event ID: 1988

  Date:
5/9/2011

  Time:
9:02:46 AM

  User:
NT AUTHORITY\ANONYMOUS LOGON

  Computer: ARMG33

  Description:

  Active Directory Replication encountered the
existence of objects in the following partition that have been deleted from the
local domain controllers (DCs) Active Directory database.  Not all direct or transitive replication
partners replicated in the deletion before the tombstone lifetime number of
days passed.  Objects that have been
deleted and garbage collected from an Active Directory partition but still
exist in the writable partitions of other DCs in the same domain, or read-only
partitions of global catalog servers in other domains in the forest are known
as “lingering objects”.

      This event is being logged because the
source DC contains a lingering object which does not exist on the local DCs
Active Directory database.  This
replication attempt has been blocked.

      The best solution to this problem is to
identify and remove all lingering objects in the forest.

  

  Source DC (Transport-specific network
address):

  0f6b1a87-a727-4962-a8a6-ecdfe8a60bb6._msdcs.contoso.com

  Object:


CN=testeADEL:xxxxxxx-50fb-480c-890c-xxxxxxxxxx,CN=Deleted
Objects,DC=subdominio,DC=contoso,DC=com

  Object
GUID:  1ba4696a-50fb-480c-890c-xxxxxxxxxx

     User Action:

     Remove Lingering Objects:

      The action plan to recover from this
error can be found at http://support.microsoft.com/?id=314282.

      If both the source and destination DCs
are Windows Server 2003 DCs, then install the support tools included on the
installation CD.  To see which objects
would be deleted without actually performing the deletion run “repadmin
/removelingeringobjects
/ADVISORY_MODE”. The eventlogs on the source DC will enumerate
all lingering objects.  To remove
lingering objects from a source domain controller run “repadmin
/removelingeringobjects
<NC>”.

      If either source or destination DC is a
Windows 2000 Server DC, then more information on how to remove lingering
objects on the source DC can be found at
http://support.microsoft.com/?id=314282 or from your Microsoft support personnel.

      If you need Active Directory replication
to function immediately at all costs and don’t have time to remove lingering
objects, enable loose replication consistency by unsetting the following
registry key:

     Registry Key:

  HKLM\System\CurrentControlSet\Services\NTDS\Parameters\Strict
Replication Consistency

      Replication errors between DCs sharing a
common partition can prevent user and compter acounts, trust relationships,
their passwords, security groups, security group memberships and other Active
Directory configuration data to vary between DCs, affecting the ability to log
on, find objects of interest and perform other critical operations. These
inconsistencies are resolved once replication errors are resolved.  DCs that fail to inbound replicate deleted
objects within tombstone lifetime number of days will remain inconsistent until
lingering objects are manually removed by an administrator from each local DC.

      Lingering objects may be
prevented by ensuring that all domain controllers in the forest are running
Active Directory, are connected by a spanning tree connection topology and
perform inbound replication before Tombstone Live number of days pass.

Ambiente
==========================

– DC01.Contoso.com (Global Catalog)

– DC02.subdomain.Contoso.com

– O dominio subdomain.contoso.com tem somente o Domain Controller DC02

Resolução:
==========================

– Resumidamente, Lingering Objects são objetos que existem em um DC mas não existem em outros. Esses objetos podem existir em qualquer partição, menos no schema. Esses objetos ocorrem quando um objeto é deletado de um DC e essa informação não é replicada para outro DC.

– Para iniciar o Troubleshooting precisavamos encontrar qual era o servidor que estava com problemas. Para isso, pegamos o Source DC apresentado no evento acima e rodamos o comando:

PING 0f6b1a87-a727-4962-a8a6-ecdfe8a60bb6._msdcs.contoso.com

O servidor que respondeu foi o dc02.subdominio.com. Com isso sabemos qual é o servidor que está com esses lingering Objects.

– Seguimos o artigo http://technet.microsoft.com/en-us/library/cc780362(WS.10).aspx para fazer a remoção de Lingering Objects. Esse é um procedimento comum e ocorre com muita frequencia.

——-

Ao rodar o comando:

repadmin /removelingeringobjects ServerName ServerGUID DirectoryPartition /advisory_mode

onde:

ServerName = Servidor que tem os Lingering Objects. No nosso caso DC02.subdomain.contoso.com

ServerGUID = GUID de um DC saudavel com uma copia da Partição onde se encontra os Lingering objects com permissão de escrita. No nosso caso, nós não tinhamos um segundo DC no dominio subdominio.contoso.com. Então tentei rodar o comando utilizando o GUID do servidor DC01.contoso.com que tem uma cópia de leitura da partição subdomain.contoso.com

DirectoryPartition = Partição com o Lingering Object

———–

O comando ficou assim: repadmin /removelingeringobjects DC02.subdomain.contoso.com
1e70340f-6287-491b-8026-0fd38b3c4136 DC=subdomain,DC=contoso,DC=com /advisory_mode

Recebemos a mensagem:

DsReplicaVerifyObjectsW() failed with status 8440 (0x20f8):    The naming context specified for this
replication operation is invalid.

———–

Isso ocorre pois o DC01.contoso.com não tem uma copia com permissão de escrita (writable) da partição DC=subdomain,DC=contoso,DC=com. Ele é um Global Catalog, com isso ele hospeda uma copia somente leitura de todas as partições da floresta incluindo a partição do dominio filho DC=subdomain,DC=contoso,DC=com

Como o único Domain Controller do dominio subdomain.contoso.com é o servidor DC02.subdomain.contoso.com não é possivel rodar o comando repadmin
/removelingeringobjects pois não há nenhum outro DC com uma copia de escrita dessa partição.

O DC02.subdomain.contoso.com é o único DC da floresta que tem uma copia da partição DC=subdomain,DC=contoso,DC=com
com permissão de escrita. Como esse DC02 estava saudavel e funcionando normalmente podemos considera-lo como tendo a versão válida da partição DC=subdomain,DC=contoso,DC=com

—–

Para resolver esse problema precisamos recriar a partição DC=subdomain,DC=contoso,DC=com no DC01.Contoso.com

—–

Uma das opções para resolver esse problema é desmarcar a opção de GC e marca-la novamente no servidor DC01.Contoso.com. Se na floresta só existir um subdominio esse processo não tem tanto impacto, mas nesse caso existiam 27 subdominio um em cada site / cidade. Com isso o DC01.Contoso.com hospedava uma copia de leitura de 27 partições.

Realizando esse procedimento de remover a flag de GC e adiciona-la novamente, iria gerar um enorme trafego de rede pois o DC01.Contoso.com iria ter que contatar todos os dominios filhos e fazer a transferencia de todas as partições novamente.

—–

Para eliminar esse problema, utilizamos o comando REPADMIN /REHOST. Esse comando deleta somente uma partição especifica e contata o DC que tem uma cópia de escrita para recuperar essa partição.

A sintaxe desse comando é: REPADMIN /REHOST

Mais informações sobre o commando Repadmin /rehost http://technet.microsoft.com/en-us/library/cc811549(WS.10).aspx

No nosso caso rodamos o comando REPADMIN /REHOST DC01.contoso.com DC=subdominio,DC=dominio,dc=com
DC02.subdominio.contoso.com para refazer a partição DC=subdominio,DC=dominio,dc=com no servidor DC01.contoso.com tendo como referencia o DC02.subdominio.contoso.com.

Rodar esse comando para todos os GCs que estão com problema de replicação para esse servidor especifico e apresentando os eventos de Lingering Objects.

——-

Artigos Relacionados
=======================================

Clean that Active Directory forest of lingering objects

http://blogs.technet.com/b/glennl/archive/2007/07/26/clean-that-active-directory-forest-of-lingering-objects.aspx

http://blogs.technet.com/b/glennl/archive/2007/10/04/so-you-want-to-clean-up-your-forest-of-lingering-objects-before-you-set-your-forest-to-strict-but-you-have-windows-2000-dcs-in-the-forest.aspx

————————————————————————————————–

Renato Marson Pagan

Problemas ao acessar HTTP e HTTPS em uma VPN Site to Site

12 de julho de 2011 1 comentário

Problema
=============================

– Cliente tem uma VPN site to site e precisa acessar o webserver localizado no site remoto mas não está sendo possivel.

Ambiente
==================================

– VPN IPSEC Site to Site entre um TMG e um CISCO ASA.

– Nas configurações do TMG em Network Rules o relacionamento entre as redes da VPN era Route.

Resolução
=============================

– Nesse caso, só não era possível fazer o acesso HTTP ao Webserver.

– Conseguiamos nos conectar no webserver através de RDP e era possível pingar o servidor. Somente o acesso HTTP recebia Timeout.

– Nos logs do TMG tínhamos a mensagem:

Log type: Web Proxy (Forward)
Status: 10060 A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

– Estavamos realizando os testes a partir da máquina cliente 192.168.0.10. Ao monitorar o CISCO os pacotes HTTP estavam chegando com o IP 200.200.200.1 que é o IP externo do TMG.

– Como a relação entre as duas redes é de Roteamento, isso significa que o trafego HTTP estava sofrendo NAT e isso não é recomendado em uma VPN IPSEC. O trafego deveria chegar com o IP do cliente.

– Isso ocorre pois quando o trafego HTTP passa pelo TMG ele é tratado pelo Web Proxy Filter e esse filtro sempre utiliza NAT. Mesmo não marcando o endereço de proxy no navegador (Navegando por SecureNAT) o problema ocorre, pois é tratado como transparente Proxy pelo Web Proxy Filter.

– Para solucionar esse problema precisamos de um “workaround” para que o trafego HTTP entre as redes VPN não seja tratado pelo Web Proxy Filter:

– Criar um novo protocolo “HTTP Sem filtro” com a porta 80 outbound e desabilitar o Web Proxy Filter.

– Criar uma nova access rule com Source = “Internal” e Destination = “Rede VPN” utilizando esse novo protocolo criado.

– Criar uma acess rule com All outbound traffic except selected e selecionar o protocol HTTP como exceção – From “Internal” to “Rede VPN”. Colocar essa regra abaixo da regra liberando o trafego “HTTP sem filtro”.

– Outro Workaround é desabilitar o filtro Web Proxy Filter do protocolo HTTP, mas nesse caso teríamos várias desvantagens. Todo o trafego HTTP não seria tratado pelo WebProxy Filter e a funcionalidade de Cache do TMG não funcionaria.

———————————————————————————————-

Renato Marson Pagan