У меня на работе используется софтварный брандмауэр именуемый, как 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 (это у меня, у вас может быть все по-другому)

Dim root
Set root = CreateObject("FPC.Root")
Dim isaArray
Dim tpRanges
Dim tpRange
Set isaArray = root.GetContainingArray()
Set tpRanges = isaArray.ArrayPolicy.WebProxy.TunnelPortRanges
For Each tpRange In tpRanges
WScript.Echo tpRange.Name & ": " & tpRange.TunnelLowPort & "-" & tpRange.TunnelHighPort
Next

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

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

Шаг №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) со следующим содержанием:

Dim root
Dim tpRanges
Dim newRange
Set root = CreateObject("FPC.Root")
Set tpRanges = root.GetContainingArray.ArrayPolicy.WebProxy.TunnelPortRanges
set newRange = tpRanges.AddRange("SSL 48446", 48446, 48446)
tpRanges.Save

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

c:\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.

От ekzorchik