Skip to content

Conchshell 2.8.0 (macOS + Linux)

Choose a tag to compare

@github-actions github-actions released this 29 Jul 05:04

Проксирование работает по-настоящему

Вкладка «Proxy» в диалоге подключения — с выбором HTTP/SOCKS4/SOCKS5, полями хоста, порта и учётных данных, переведённая на три языка — до сих пор была декорацией: введённые значения никогда не покидали интерфейс, не сохранялись и не доходили до сети. Слово «proxy» не встречалось ни в одной исполняемой строке серверной части.

Теперь поддерживаются SOCKS5, SOCKS4, SOCKS4a и HTTP CONNECT — для SSH, SFTP и RDP одинаково. Это стало возможно потому, что все соединения приложения теперь открываются через один общий транспорт; заодно исчезла третья копия кода подключения, из-за расхождения которых раньше ломалась авторизация SFTP по ключу.

Прямого подключения в обход прокси не бывает. Если прокси настроен, но недоступен — соединение не состоится, и в сообщении будет сказано, что молчит именно прокси, а не сервер. Это принципиально: тихий откат на прямое соединение означал бы, что вы считаете трафик проксированным, когда он идёт напрямую. Протоколы, которые маршрут не поддерживают (FTP, VNC), отказываются, а не игнорируют настройку.

Ошибки называют участок пути: не дозвонились до прокси, прокси отверг учётные данные (и это именно его учётные данные, а не сервера), прокси отказался соединять с целью.

Промежуточный хост для SSH

Появился jump host: вход на промежуточный сервер и оттуда — на целевой. Промежуточный хост проверяется тем же хранилищем отпечатков и под собственным ключом, то есть на одно подключение приходится два независимых решения о доверии. Проверяется он до того, как к целевому серверу уйдут любые учётные данные.

Если заданы и прокси, и промежуточный хост, прокси используется для связи с промежуточным.

Что нашли при проверке

Проверка велась через настоящие прокси-серверы, а не через собственные заглушки, и нашла две вещи, каждая из которых обесценила бы функцию:

  • Библиотека SSH записывает буфер аутентификации в лог до шифрования, поэтому при включённом отладочном логировании пароль и пароль промежуточного хоста попадали в журнал открытым текстом.
  • Неизвестный тип прокси считался отсутствием прокси — то есть подключением напрямую. Сработать это могло от опечатки в импортированном конфиге или от socks4a, который серверная часть умеет, а список интерфейса ещё нет. Теперь это отказ с объяснением.

Тесты: Rust 569, интерфейс 1019.