19

Я всегда использовал простой трюк, чтобы обойти большинство брандмауэров, которые мешали мне использовать любые порты. Я просто открыл ssh на одном из моих серверов через порт 443 и направил туда весь трафик.

Однако сейчас я нахожусь в сети, в которой есть брандмауэр, который я никогда раньше не видел, и я даже не знал, что это возможно.

В этой сети вы можете использовать порт 443 только для законного трафика веб-сервера. Если я открою ssh или что-нибудь еще на порту 443 и попытаюсь подключиться туда из этой сети, он немедленно прекратит работу. Если я запускаю apache на этом сервере, он работает.

Как это вообще возможно? Существуют ли какие-нибудь сверхсложные брандмауэры, которые даже могут анализировать зашифрованный трафик, чтобы убедиться, что это законный трафик https? Как?

1 ответ1

26

Да, и здесь они не нуждаются в магии, только в простом сопоставлении содержимого пакета 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-запросы, блокируя все остальное. (Обратите внимание, что некоторые антивирусные программы также делают то же самое.) Вы можете распознать этот вид, посмотрев на сертификаты сервера; все сгенерированные прокси сертификаты выглядят одинаково и часто не проходят проверку, в то время как реальные сертификаты выдаются различными ЦС.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .