Создание HTTP-туннеля для удаленного доступа к Linux-хосту в обход Microsoft ISA |
[исправить] |
Для организации управления внешней рабочей станцией из корпоративной сети,
защищенной Microsoft ISA, можно поднять HTTP-туннель, при помощи которого можно
установить TCP-соединение, несмотря на использование HTTP-прокси и жестких
политик ограничения доступа на межсетевом экране.
Использовать классический пакет GNU HTTPtunnel
(http://www.gnu.org/software/httptunnel/) в такой ситуации мешает отсутствие
поддержки в данной программе NTLM-аутентифиукации, как правило используемой
при организации выхода пользователей в сеть через Microsoft ISA. Выходом в
данной ситуации является использование программы BoutDuTunnel
(http://boutdutunnel.net/), совместимой с большинством HTTP-прокси,
поддерживающей NTLM-аутентифиукацию, способной работать даже при блокировании
HTTPS и метода "Connect", содержащей в себе встроенный HTTP-сервер и
поддерживающей работу поверх Socks.
BoutDuTunnel поддерживает работу из Linux и Windows, при запуске из Linux
достаточно установить пакет mono и загрузить готовый исполняемый файл bdtunnel
(http://sourceforge.net/projects/bdtunnel/files/).
После установки правим на стороне удаленного сервера файл BdtServerCfg.cfg в
директории BdtServer, приведя его примерно в такой вид:
<service
name = "BdtServer"
protocol = "Bdt.Shared.Protocol.TcpRemoting"
port = "80"
/>
<users>
<имя_пользователя
enabled = "true"
password = "пароль"
admin = "false"
stimeout = "12"
ctimeout = "1"
/>
</users>
, где name - имя туннеля (должно быть одинаковым на обоих концах туннеля),
protocol - тип туннельного протокола, port - номер серверного порта для
формирования туннеля. Секция "users" определяет параметры авторизации для
создания туннеля и таймауты для сброса неактивных сессий и соединений.
После настройки запускаем на стороне удаленного сервера (привилегии
суперпользователя нужны для организации приема соединений на 80 порту):
sudo mono BdtServer.exe
На стороне клиента, находящегося в локальной сети за прокси-сервером, правим
файл BdtClientCfg.xml в директории BdtGuiClient, приведя его к виду:
<service
name="BdtServer"
protocol="Bdt.Shared.Protocol.TcpRemoting"
address="адрес удаленного сервера"
port="80"
username="имя пользователя"
password="пароль"
culture=""
/>
<port22
enabled="true"
shared="false"
address="адрес удаленного сервера"
port="22"
/>
Секция port22 определяет проброс 22 порта на удаленный сервер, что позволит
использовать протокол SSH или работающие поверх него сервисы, например, rsync,
git, NX Client.
Запускаем BdtGuiClient.exe, после чего при соединении к localhost по 22 порту
будет автоматически произведен переброс на 22 порт удаленного сервера, при этом
с точки зрения прокси будет установленно классическое HTTP-соединение, так как
на удаленном конце BoutDuTunnel выступает в роли HTTP-сервера, а не использует
HTTPS-метод "Connect".
Для противников Mono вместо BoutDuTunnel можно рекомендовать имеющийся в
стандартных репозиториях Debian/Ubuntu пакет proxytunnel
(http://proxytunnel.sourceforge.net/), который также поддерживает
NTLM-аутентификацию, но может работать только на Unix-совместимых системах и
требует включения метода connect на прокси.
Для проброса 22 порта поверх HTTP-прокси при использовании proxytunnel
достаточно прописать в файл конфигурации OpenSSH ~/.ssh/config:
ProtocolKeepAlives 30
ProxyCommand /usr/bin/proxytunnel --ntlm -p хост_прокси:порт_прокси -u логин -s пароль -d удаленный_сервер:443
|
|
|
|
Раздел: Корень / Безопасность / SSH |
1.1, Аноним (-), 14:18, 18/08/2010 [ответить]
| +/– |
По теме NTLM, MS Isa можно ещё глянуть ntlmaps/cntlm.
| |
1.2, i (??), 14:30, 18/08/2010 [ответить]
| +/– |
ntlmaps не работает
cntlm работает
| |
1.4, Аноним (4), 18:46, 21/08/2010 [ответить]
| +/– |
OpenVPN умеет работать по TCP поверх HTTP-proxy.
А дальше делаем VPN-шлюз маршрутом по умолчанию и вуаля.
| |
|
2.6, sd (??), 11:12, 28/08/2010 [^] [^^] [^^^] [ответить]
| +/– |
>OpenVPN умеет работать по TCP поверх HTTP-proxy.
>А дальше делаем VPN-шлюз маршрутом по умолчанию и вуаля.
а разве OpenVPN не использует метод CONNECT(к-ый будет запрещен с большой долей вероятности)?
| |
|
1.5, john_smith (?), 17:05, 22/08/2010 [ответить]
| +/– |
mono? .exe файл? под *никсом? нде, спасибо за ценные советы, однако после их выполнения это будет винда какая-то вместо *никса!
| |
|