sexta-feira, 16 de setembro de 2011

Forefront TMG + Symantec Endpoint Protection + cabo de rede conectado = blue screen (WTF...?!!)

Recentemente, lidei com dois casos semelhantes e no mínimo curiosos: servidor Windows Server 2008 R2 com Forefront TMG 2010. Ao conectar o cabo de rede, após alguns segundos, aparecia a famosa tela azul do Windows com a mensagem IRQL_NOT_LESS_OR_EQUAL e várias outras informações como bugcheck, nome do driver, etc.
Nos dois casos, se máquina fosse iniciada sem o cabo de rede, ela funcionava normalmente.
Bem, como um firewall depende de conexão com a rede, propor como solução não conectar o cabo de rede não daria muito certo :-)
Assim, foi efetuada a análise do dump gerado e descobriu-se que o componente Teefer2, era o culpado.
Em consulta rápida na internet, consegui o documento What is the Teefer2 driver?. Se vocês acessarem-no obterão que ele é o driver do componente de firewall do Symantec Endpoint Protection (SEP). De fato, este anti-virus estava instalado no servidor em ambos os casos.
Assim, como teste inicial, foi proposto desinstalar o suspeito e, bingo! O servidor de firewall Forefront TMG 2010 continuou operando mesmo após conectar o cabo de rede!
De acordo com o documento acima, não é possível apenas desabilitar o Teefer2:

Please note that it is not possible to disable the Teefer2 driver without removing SEP 11's firewall component.

Assim, para permitir que o servidor não ficasse sem anti-virus, a solução foi instalar o SEP sem o componente de firewall. De acordo com este link, a feature Network Threat Protection é responsável pelo firewall do SEP.
O Forefront TMG 2010 possui um driver (fweng) que captura o tráfego de rede da máquina para efetuar as inspeções necessárias e liberá-lo ou bloqueá-lo, de acordo com as regras. Neste caso, dois drivers em modo kernel estavam tentando efetuar a mesma operação e possivelmente, um acessou a área de memória do outro. Estou supondo isso, baseado na explicação acerca do erro IRQL_NOT_LESS_OR_EQUAL, na documentação oficial da Microsoft:

This Stop message indicates that a kernel-mode process or driver attempted to access a memory address to which it did not have permission to access. The most common cause of this error is an incorrect or corrupted pointer that references an incorrect location in memory.

Antes de instalar algum software anti-virus em um servidor com o Forefront TMG ou ISA Server, consulte o documento da Microsoft: Considerations when using antivirus software on FF Edge Products.
Espero ter contribuido de alguma forma. Em breve novos artigos!

Um abraço e até a próxima!