Когда-то в Риме: пересекая непокорную сеть
Когда-то в Риме: пересекая непокорную сеть
Допустим, что есть сервер с запущенной на нем программой sshd и клиент с программой ssh. Сервер и клиент хотят установить связь, но сеть не настолько хороша и покорна, чтобы позволить им сделать это. При попытке установить соединение пакеты теряются, связь не устанавливается. Что делать? В рассматриваемом случае возможность прохождения пакетов обычно определяется тем, кто посылает и что посылает. Повышение проходимости пакетов через сеть будет означать изменение маршрута трафика SSH или маршрута непосредственной пересылки данных через сеть.
Прохождение моста: доступ к модулям доступа прокси с помощью опции ProxyCommand
В действительности довольно редко можно встретить сеть, которая непосредственно запрещает выходящие соединения по протоколу SSH. Когда такое случается, то это означает запрет в сети всех выходящих соединений. Обойти этот запрет можно при помощи маршрутизации выходящих соединений через прикладной уровень модулей доступа прокси. Не являясь средством полной дезинформации, модули доступа прокси предоставляют гораздо более простой метод скрытного доступа, чем современные решения трансляции сетевых адресов NAT. По сравнению со многими протоколами модули доступа прокси обладают дополнительными преимуществами, которые позволяют им лучше осуществлять кэширование. Поэтому прокси небесполезны. Существует много различных подходов построения и использования модулей доступа прокси, но поскольку обычно они почти ничего не добавляют к обеспечению безопасности выходящих соединений, то у разработчиков пакета OpenSSH не было желания реализовать их непосредственно внутри клиента. Реализация каждого из этих подходов непосредственно в модуле доступа прокси может превратиться в один из подвигов Геракла.
Поэтому вместо непосредственной интеграции в пакет OpenSSH была добавлена опция общего назначения ProxyCommand. Как правило, используя некоторый порт, протокол SSH непосредственно устанавливает TCP-соединение c заданным хостом и обменивается данными с каким-нибудь найденным там демоном, который может работать по протоколу SSH. Кроме того, опция ProxyCommand отключает это TCP-соединение, маршрутизируя все данные соединения через стандартный поток ввода-вывода I/O, который передается произвольному приложению и принимается от него. Это приложение может выполнять какие-то преобразования, которые потребуются при получении данных от модуля доступа прокси. Задача приложения будет полностью выполнена, если будет установлена полностью работоспособная связь с демоном протокола SSH. Разработчики добавили минимально возможное количество переменных, завершающихся спецификациями преобразования %h и %p, которые соответствуют адресу хоста и номеру его порта. Если клиент SSH инициализировал TCP-соединение, то он ждет эти данные. (Вне всякого сомнения, аутентификация хоста соответствует этим ожиданиям.)
Быстрая демонстрационная версия работы опции ProxyCommand выглядит следующим образом:
# Negotiate an SSH connection with whatever we find by
directly
# establishing a TCP link with 10.0.1.11:22
bash-2.05a$ ssh effugas@10.0.1.11
effugas@10.0.1.11”s password:
FreeBSD 4.3-RELEASE (CURRENT-12-2-01) #1: Mon Dec 3
13:44:59 GMT 2001
$
# Establish a TCP connection to 10.0.1.11:22
$ nc 127.0.0.1 22
SSH-1.99-OpenSSH_3.0.1p1
# Negotiate an SSH connection with whatever we find by using
netcat to
# indirectly establish a TCP link with 10.0.1.11:22
bash-2.05a$ ssh -o ProxyCommand=“nc 10.0.1.11 22”
effugas@10.0.1.11
effugas@10.0.1.11’s password:
FreeBSD 4.3-RELEASE (CURRENT-12-2-01) #1: Mon Dec 3
13:44:59 GMT 2001
$
# Add basic variable substitutions to above command
bash-2.05a$ ssh -o ProxyCommand=“nc %h %p” effugas@10.0.1.11
effugas@10.0.1.11’s password:
FreeBSD 4.3-RELEASE (CURRENT-12-2-01) #1: Mon Dec 3
13:44:59 GMT 2001
$Программа connect.c отличается наибольшей гибкостью реализации возможностей опции ProxyCommand. Ее разработчик Shun-Ichi Goto. Это изящное небольшое приложение можно найти по адресам www.imasy.or.jp/~gotoh/connect.c или www.doxpara.com/tradecraft/connect.c. Оно поддерживает протоколы SOCKS4 и SOCKS5 с аутентификацией, но без протокола HTTP: • SSH с использованием протокола SOCKS4;
effugas@OTHERSHOE ~
$ ssh -o ProxyCommand=“connect.exe -4 -S foo@10.0.1.11:20080
%h %p”
effugas@10.0.1.10
effugas@10.0.1.10’s password:
Last login: Mon Jan 14 03:24:06 2002 from 10.0.1.11
[effugas@localhost effugas]$• SSH с использованием протокола SOCKS5;
effugas@OTHERSHOE ~
$ ssh -o ProxyCommand=“connect.exe -5 -S foo@10.0.1.11:20080
%h %p”
effugas@10.0.1.10
effugas@10.0.1.10’s password:
Last login: Mon Jan 14 03:24:06 2002 from 10.0.1.11
[effugas@localhost effugas]$• SSH с использованием протокола HTTP (запрос HTTP CONNECT выдается программой connect.c).
effugas@OTHERSHOE ~
$ ssh -o ProxyCommand=“connect.exe -H 10.0.1.11:20080 %h %p”
effugas@10.0.1.10
effugas@10.0.1.10’s password:
Last login: Mon Jan 14 03:24:06 2002 from 10.0.1.11
[effugas@localhost effugas]$Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Когда собирать?
Когда собирать? Пшеницу можно собирать, когда вершки становятся коричневыми, а морковь – когда видны торчащие оранжевые вершки. Коричневых вершков появляются, когда картофель созревает. Арбузы или тыквы собирают, когда рядом со стеблем появляются плоды. Как только
Когда яд полезен
Когда яд полезен В случае необходимости вы можете съесть сырую курицу, гнилое мясо и даже паучьи глаза. Вы отравитесь, но потом поправитесь при высоком уровне здоровья. Если вы выпьете коровье молоко, то исцелитесь быстрее. Съев паучьи глаза, вы получите четыре очка
Сеть
Сеть По своей функциональности система RPC занимает промежуточное место между уровнем приложения и транспортным уровнем. В соответствии с моделью этому положению соответствуют уровни представления и сеанса. Таким образом, RPC теоретически независим от реализации сети, в
Сеть
Сеть (6.1) Как управлять пользователями, которым можно заходить на компьютер? В W2k есть механизм идентификации пользователей, при этом каждого пользователя можно ограничить в правах. Пользователей, на одной машине может быть множество, и что бы было проще ими управлять,
Глава 8. Что, где, когда и как?
Глава 8. Что, где, когда и как? Интернет – практически безразмерное хранилище для информации самого разного рода. Рассказать даже вкратце о том, что «складируют» в Сети ее пользователи, совершенно невозможно. Однако я рискнул выбрать для вас некоторое количество полезных
6.1.3. Сеть
6.1.3. Сеть В этом разделе нам предстоит рассмотреть директивы настройки сетевого протокола:? include = файл — позволяет подключить конфигурационный файл smb.conf с другого компьютера. Имя файла задается в формате путь.%m. В данном случае путь — это полное имя файла на удаленной
Сеть
Сеть 8.1. Как обеспечить доступ к моим ресурсам другим пользователям сети? C самого начала в системе существует папка под названием Shared Documents, расположенная в Document and SettingsAll UsersShared Documents, которая расшарена по умолчанию, и очень удобна для обмена файлами и документами, причём
Сеть FIDO
Сеть FIDO Сеть FIDO часто называют прародителем Интернета, по крайней мере, в странах бывшего СССР. Еще каких-нибудь 5–7 лет назад фидошников было намного больше, чем интернетчиков, а по популярности FIDO значительно превосходила Интернет. Естественно, сейчас ситуация
7.Сеть
7.Сеть Работы по улучшению поддержки сети велись и в Windows 2000, и в XP, но Microsoft было все труднее и труднее вносить изменения в старый код. Поэтому в Windows Vista весь код для поддержки сети был написан практически с нуля.Важность компьютерных сетей в настоящее время трудно
Когда индексировать
Когда индексировать Некоторые индексы сами заявят о себе в начальном периоде проектирования - обычно через известные вам требования сортировки, группировки, вычислений. Очень хорошей практикой является консервативный подход к созданию индексов: не создавать их, пока не
Кнопка Сеть
Кнопка Сеть Чтобы удалить из меню Пуск команду Сеть, следует в разделе реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer создать REG_DWORD-параметр NoStartMenuNetworkPlaces и присвоить ему значение 1.Ниже приведен текст REG-файла (путь к файлу на компакт-диске – Файлы
10. Когда открыть, а когда закрыть
10. Когда открыть, а когда закрыть Рассмотрев деловые модели, которые поддерживают разработку программного обеспечения с открытыми текстами, мы можем теперь приблизиться к общему вопросу о том, когда исходному коду, с точки зрения экономики, имеет смысл быть «открытым», а