Прокси-сервер Bluecoat: разрешить HTTPS-доступ к веб-сайтам и запретить туннелирование TCP (SSH/...)
У нас есть явная (= не прозрачная) настройка прокси с использованием BlueCoat ProxySG (программное обеспечение 6.4.3.1).
Когда я создаю правила слоя веб-доступа, такие как:
- Протокол: HTTPS -> Все HTTPS: Разрешить,
- Протокол: все TCP туннелирование: DENY, затем
Я все еще могу сделать SSH снаружи через прокси.
Обратно при указании чего-либо в соответствии с
- Протокол: Все Shell: DENY
(без явного указания HTTPS) Я также могу сделать SSH через прокси.
Единственное, что помогает (с SSH) - это указать All TCP Tunneling: DENY
, Однако в этом случае HTTPS также больше не работает.
Таким образом, HTTPS, похоже, рассматривается как туннелирование TCP. Это также то, что файл трассировки показывает по запросу HTTPS:
CONNECT tcp://www.xxx.com:443/
Я знаю, что пока кому-то разрешено создавать исходящие зашифрованные соединения, он, вероятно, сможет заставить работать почти все. Но я не хочу делать это слишком легко.
Итак, как распознать HTTPS, не допуская слишком много других вещей? (Вероятно, невозможно без настройки MitM и т. Д.) И почему существует объект с именем HTTPS, и когда я его использую, он ничего не меняет. Я действительно не понимаю эту часть.
1 ответ
Alrighty,
поиск заголовка User-Agent, который не существует в случае SSH и т.п., является официальным ответом.
Обычный сеанс HTTPS обычно передает эти заголовки вместе с вызовом к методу HTTP CONNECT xxx:443 (в случае туннельного соединения). Мы действительно разрешаем только соединения с портом 80 на прокси-сервере, поэтому все, что не HTTP, не становится (больше не) туннелируется.
Это безопасность по неизвестности, но я думаю, что в этом случае и с этим устройством сделать гораздо больше невозможно...