Ошибка 12204 при доступе к ресурсам через TMG

У меня на работе используется софтварный брандмауэр именуемый, как Forefront Threat Management Gateway (7.0.9193.575) на Server 2008 R2 SP1 Enterprise и довольно таки неплохо справляется со всем наложенным функционалом в защите локальной сети как из вне, так и из нее. Конечно в будущем он будет заменен на pfSense 2.4.4, а пока работаем с тем что есть. В процессе работы была обнаружена ошибка доступа на ресурс который представляется из себя https://IP&DNS:PORT который перенаправляется на другой ресурс, т.е. работает вот такая вот схема:

(Проброс порта)

https://<WAN_IP>:48446 -> https://172.33.33.25:8006 (Debian 10 + Proxmox 6)

но TMG не понимает и блокирует соединение, а в логах ошибки.

Данная заметка есть практическое решение дабы схема выше работала — у меня работает.

Шаг №1: Заходим на сервер с установленным TMG с правами Domain Admins и через VBS скрипт который создаем для начала получаем какие порты зарезервированы для политики WebProxy:

notepad.exe -> list.vbs и сохраняю в каталог c:\tmp (это у меня, у вас может быть все по-другому)

12345678910Dim rootSet root = CreateObject(“FPC.Root”)Dim isaArrayDim tpRangesDim tpRangeSet isaArray = root.GetContainingArray()Set tpRanges = isaArray.ArrayPolicy.WebProxy.TunnelPortRangesFor Each tpRange In tpRangesWScript.Echo tpRange.Name & “: ” & tpRange.TunnelLowPort & “-” & tpRange.TunnelHighPortNext

Результат запуска скрипта выше:

12345c:\tmp>cscript list.vbsMicrosoft (R) Windows Script Host Version 5.8Copyright (C) Microsoft Corporation. All rights reserved.NNTP: 563-563SSL: 443-443

Шаг №2: Чтобы добавить нестандартный порт для подключения через SSL, т.е. к примеру у меня настроено, что при доступе https://<WAN_IP>:48446 я попадаю на https://172.33.33.25:8006, а следовательно и не работает правило обработки SSL трафика. Об этом как раз и говорит ошибка

Log type: Web Proxy (Forward)

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

Source: Internal (<MY_IP_COMP>:60977)

Destination: <LOCAL_IP_GW>:48446

Request: <WAN_IP>:48446

Filter information: Req ID: 0b499041; Compression: client=No, server=No, compress rate=0% decompress rate=0%

Protocol: SSL-tunnel

User: anonymous

Failed Connection Attempt SRV-GW 04.02.2020 16:04:08

Log type: Web Proxy (Forward)

Также точно такая же ошибка при обращении к внешней базе neo4j один из сотрудников:

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

Source: Internal (<MY_IP_COMP>:64405)

Destination: <LOCAL_IP_GW>:7687

Request: a731ac9d.databases.neo4j.io:7687

Filter information: Req ID: 0b4ae578; Compression: client=No, server=No, compress rate=0% decompress rate=0%

Protocol: SSL-tunnel

User: anonymous

Шаг №3: Создаю vbs скрипт (ssl_port.vbs) со следующим содержанием:

1234567Dim rootDim tpRangesDim newRangeSet root = CreateObject(“FPC.Root”)Set tpRanges = root.GetContainingArray.ArrayPolicy.WebProxy.TunnelPortRangesset newRange = tpRanges.AddRange(“SSL 48446”, 48446, 48446)tpRanges.Save

После запускаю его:

12345678910111213141516171819c:\tmp>cscript ssl_port.vbs Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation. All rights reserved. c:\tmp>cscript list.vbs Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation. All rights reserved. NNTP: 563-563 SSL: 443-443 SSL 7687: 7687- 7687 SSL 48446: 48446-48446

Шаг №4: После нужно перезагрузить сам сервер для активации изменений.

Шаг №5: Проверяю, открываю браузер и уже спокойно обращаюсь на https://<WAN_IP>:48446 && к базе neo4j.

На этом практическая заметка завершена. С уважением автор блога Олло Александр aka ekzorchik.