Online video hd

Смотреть узбекский видео

Официальный сайт synclub 24/7/365

Смотреть видео бесплатно

Minoru 04.04.2010 18:41

На заказSSH за проксей

Этот пост является переводом статьи «SSH Over Proxy» Даниэля Стенберга (Daniel Stenberg), выполненный по просьбе пользователя |xed|
Переведена редакция статьи, датированная 24-м ноября 2009-го года, 23:53 (Центральная Европа, Стокгольм, Швеция).

SSH через или за прокси

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

Прокси-сервера не только ограничивают нас в том, что мы можем делать, какие протоколы можем использовать, какие сайты можем посещать и какие TCP порты являются открытыми, они также позволяют вашей компании или друзьям наблюдать и контролировать вас.

Заметьте: даже если вы используете HTTPS через прокси, имя сервера не шифруется, так что логирующий прокси увидит, к каким HTTPS серверам вы подключаетесь.

Я покажу вам некоторые простые способы, позволяющие обойти ограничения большинства проксей, что даст вам больше свободы и не позволит наблюдателям исследовать ваши предпочтения в веб-серфинге!

Что вам нужно

Вам нужен софт, установленный и работающий «снаружи» по отношению к тому месту, где вы находитесь. В этом документе я называю такое место «домом».

Место, из которого вы хотите получить доступ, будет называться «работой». На работе вы находитесь за злым прокси-сервером.

Дома

Вам нужен работающий HTTP-прокси, принимающий соединения с localhost'а. У многих людей есть уже работающий Apache, а подгрузить и сконфигурировать mod_proxy очень легко. Конечно же, вы можете использовать любой другой прокси, например, squid. В этом примере будет подразумеваться, что прокси работает на 80-м порту — том же, что и обычный апач.

Вы можете включить HTTPS и FTP, а также любой другой протокол в конфиге прокси.

Вам также понадобится sshd, работающий на 443-м порту. Почти у каждого уже есть работающий sshd, вам просто нужно сделать так, чтобы он также слушал порт 443. 443-й часто используется для HTTPS, потому-то мы его и используем — большинство проксей позволяют к нему подключаться, так как компании разрешают своим работникам использовать банки и другие HTTPS сервисы в вебе.

Наверное, этого можно и не говорить, но вы должны убедиться, что ваш Apache или другой httpd не использует 443-й порт для HTTPS.

На работе

Вам нужен SSH клиент, способный посылать CONNECT-запросы через ваш корпоративный HTTP прокси. Под Windows можно использовать Putty — в нём есть встроенная поддержка для туннелирования через HTTP прокси. Под unix/linux (или cygwin), вы можете использовать openssh и corkscrew для того, чтобы через прокси попасть на 443-й порт своего домашнего компьютера.

Если вы используете openssh, добавьте в свой ~/.ssh/config такую строку:
1
ProxyCommand /usr/local/bin/corkscrew proxy.work.com 80 %h %p

Теперь вы должны указать вашему ssh клиенту пробросить локальный порт, скажем, 8080-й, на удалённый localhost:80. После этого вы получаете шифрованный канал к вашему домашнему компьютеру. Естественно, у вас также будет обыкновенный SSH, так что вы можете запускать X-приложения так, чтобы они появлялись на экране вашего рабочего компьютера, а также многое другое.

Команда openssh для подключения и проброса порта через прокси выглядит примерно так:
1
ssh -L 8080:localhost:80 [email protected] -p 443

Сконфигурируйте ваш браузер на работе так, чтобы для всех протоколов, которые вы включили на прокси-сервере дома, использовался прокси по адресу localhost:8080.

Теперь все запросы браузера будут посылаться через SSH-соединение через прокси на ssh сервер дома, а потом — прокси-серверу и в мир.

Без CONNECT

В случае, если подключение к 443-у порту запрещены, вы можете попробовать другой (если CONNECT разрешен хоть где-то); вам может понадобится перенести ваш прокси/веб сервер с 80-го порта, если это единственный приемлемый путь.

Если не можете найти подходящий порт или CONNECT запрещены насовсем, вы должны создать туннель с помощью обыкновенного HTTP, используя, например, httptunel. httptunel — это клиент-серверное приложение; вам нужен сервер («hts»), работающий на домашнем компьютере и слушающий 80-й порт, и клиент («htc»), запущенный на вашем рабочем компьютере и создающий тунель.

Дома принимайте входящие соединения на 80-й порт и перенаправляйте их на 22-й (ssh):
1
hts -F localhost:22 80


На работе подключайтесь к дому через корпоративный прокси и пробрасывайте локальный порт (8022-й, например) на SSH дома:
1
htc -P proxy.corp.com:80 -F 8022 server.at.home:80

Дополнительные комментарии

С другими протоколами для начала надо просто пробросить больше портов с работы домой. Дальше всё зависит от протокола. Например, если вы хотите настроить работу IRC, вам понадобится «боунсер» (например muh), работающий на вашей домашней машине, так как в противном случае IRC не будет работать правильно.

В случае, если на работе вас на самом деле не прячут за прокси, вы все равно можете использовать описанные методы (хотя вы можете пропустить часть, описывающую выполнение CONNECT, а также не обязаны привязывать ssh к 443-му порту) для того, чтобы не дать админам шпионить за вашим сетевым траффиком.

Прим. перводчика: спасибо mrak018 за советы и подсказки!


Тэги: proxy ssh
+ 9 -
Похожие Поделиться

stogerc 04.04.2010 18:51 #
+ 0 -
Спасибо за перевод, хорошо постарались.
|xed| 04.04.2010 21:49 #
+ 0 -
Молодец!
mrak018 04.04.2010 22:21 #
+ 0 -
Смысл искажен:
В случае, если CONNECT запрещены на 443-м порту вашего домашнего компьютера, вы можете попробовать другой порт, если, конечно, CONNECT разрешены хоть где-то; потом вам может понадобится перенести ваш прокси/веб сервер с 80-го порта, если это единственный приемлемый путь.

Должно быть:
В случае, если CONNECT запрещен на 443-й порт домашнего компьютера, можно попробовать указать другой порт (например, 80-й) при условии, что CONNECT разрешен хоть куда-то; для этого вам, может быть, придётся убрать ваш прокси/веб сервер с 80-го порта домашнего компьютера, если нет других вариантов.

Было бы отлично ещё американское "вы-вам-ваш-вашего" перевести в отечественную безличную форму.
Minoru 04.04.2010 22:32 #
+ 0 -
У тебя:
для этого вам, может быть,

В оригинале:
and then you may need to move

«then» чётко указывает на то, что действие будет происходить после чего-то; в твоём переводе это не отражено.

«CONNECT запрещены» я писал потому что под CONNECT, скорее всего, подразумеваются syn-пакеты.

В остальном твой перевод от моего по сути ничем не отличается.

Касательно безличной формы — не понял, можешь другими словами объяснить?
mrak018 05.04.2010 08:59 #
+ 1 -
Тут самое главное в первой строчке: коннектиться запрещено не "на порту домашнего компьютера", а "к порту домашнего компьютера". То есть не ты это запрещаешь на домашнем компе, а тебе запрещают в сети на работе.

CONNECT - это команда такая, которую браузер говорит прокси-серверу, не syn-пакеты. Эй, говорит, CONNECT меня к раффайзен-банку на 443 порт, а дальше уж я сам.

then совсем не указывает, что действие происходит после чего-то. Например, в конструкции if-then действие происходит не после, а при условии. В данном тексте действие тоже не после чего-то, а при условии: если уж ты коннектишься к себе домой на 80 порт по ssh, потому что 443 закрыт, то будь добр, выкинь сначала (а не потом) оттуда проксю или веб-сервер, если там таковые имеются.

Безличная форма - это когда американский стиль "выканья" обезличивается:

"Если вы в unix/linux (или под cygwin), вы можете использовать openssh и corkscrew для того, чтобы через прокси попасть на 443-й порт своего домашнего компьютера."


превращается в
"В unix/linux (или под cygwin) можно использовать openssh и corkscrew для того, чтобы через прокси попасть на 443-й порт своего домашнего компьютера."
Minoru 05.04.2010 14:38 #
+ 0 -
Спасибо за пояснения. Примерно через полчасика освобожусь — поправлю в соответствии с твоими замечаниями.
Minoru 05.04.2010 16:59 #
+ 0 -
Сделал. Решил всю статью в безличную форму не переводить — вроде и так неплохо — но в некоторых местах все же убрал лишние и неуместные «вы».
deFINE 05.04.2010 12:22 #
+ 1 -
Я не понял одного. Зачем еще локальный прокси дома?
Minoru 05.04.2010 14:41 #
+ 0 -
Честно говоря, не знаю :) Я обычно ограничиваюсь только первым шагом — пробрасываю порт с локальной машины на домашнюю, потом прописываю SOCKS5 прокси — и радуюсь жизни.

Хотя если в качестве прокси дома юзать squid, вы можете получить какие-то преимущества — скажем, кэш. Вкупе со сжатием передаваемых по ssh туннелю данных это может дать вам некоторый прирост скорости, если у вас дома не очень быстрый интернет.
mrak018 06.04.2010 02:30 #
+ 0 -
Локальный прокси дома для того, чтобы достичь цели, поставленной автором статьи. Автору на работе закрыли "одноклассники", поэтому он протуннелировался ssh-ем домой, и по туннелю гоняет трафик от одноклассников через домашний прокси по туннелю к себе на работу. То есть его работодатель а) не видит, какие сайты он посещает, б) не может запретить их посещать.
Minoru 09.04.2010 01:11 #
+ 0 -
И все равно не понимаю, почему нужен прокси. Я вот спокойно делаю
ssh -D localhost:8080 minoru@eternityпрописываю в Iceweasel SOCKS5 прокси с адресом localhost:8080 — и получаю работающий Интернет. На eternity никаких прокси не поднято (хотя апач и nginx есть, да).

Смотреть онлайн бесплатно

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн