Я всегда использовал простой трюк, чтобы обойти большинство брандмауэров, которые мешали мне использовать любые порты. Я просто открыл ssh на одном из моих серверов через порт 443 и направил туда весь трафик.
Однако сейчас я нахожусь в сети, в которой есть брандмауэр, который я никогда раньше не видел, и я даже не знал, что это возможно.
В этой сети вы можете использовать порт 443 только для законного трафика веб-сервера. Если я открою ssh или что-нибудь еще на порту 443 и попытаюсь подключиться туда из этой сети, он сразу же прекратит работу. Если я запускаю apache на этом сервере, он работает.
Как это вообще возможно? Существуют ли какие-нибудь сверхсложные брандмауэры, которые даже способны анализировать зашифрованный трафик, чтобы убедиться, что это законный трафик https? Как?
источник
Ответы:
Да, и здесь они не нуждаются в магии, только в простом сопоставлении содержимого пакета TCP. Несмотря на то, что SSH и TLS (SSL) шифруют свои полезные данные , сами заголовки протокола по-прежнему различимы и сильно отличаются друг от друга. Например, соединение SSHv2 всегда начинается с отправки клиента
SSH-2.0-(client name and version)
. Точно так же, даже если ваш брандмауэр не может действительно знать, несет ли соединение TLS HTTP внутри, он может распознавать сам TLS .Такая проверка уровней над TCP обычно относится к "Deep Packet Inspection", относительно распространенной функции.
Один очевидный способ обойти это - туннелировать SSH внутри TLS - например, используя stunnel, haproxy или sniproxy. (В дополнение к обычному туннелированию, где порт 443 выделен для SSH-over-TLS, они также могут мультиплексировать SSH / HTTP / другие протоколы через один и тот же порт на основе SNI и ALPN.)
Хотя это не всегда будет препятствовать действительно сложному анализу трафика, оно все равно будет игнорировать большинство фильтров, которые просто проверяют, «выглядит ли это как заголовок TLS».
И еще есть надоедливые межсетевые экраны - те, которые перехватывают TLS для расшифровки и повторного шифрования всего трафика. Они действительно могут видеть внутри TLS и могут передавать HTTP-запросы, блокируя все остальное. (Обратите внимание, что некоторые антивирусные программы также делают то же самое.) Вы можете распознать этот вид, посмотрев сертификаты сервера; все сгенерированные прокси сертификаты выглядят одинаково и часто не проходят проверку, тогда как реальные сертификаты выдаются различными ЦС.
источник