Online video hd

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

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

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

04.04.10 18:41 Minoru

На заказ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 такую строку:
ProxyCommand /usr/local/bin/corkscrew proxy.work.com 80 %h %p

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

Команда openssh для подключения и проброса порта через прокси выглядит примерно так:
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):
hts -F localhost:22 80

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


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

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

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

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


Теги:

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

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

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

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

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

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

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

Касательно безличной формы — не понял, можешь другими словами объяснить?
mrak018 05.04.10 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.10 14:38 # +0
Спасибо за пояснения. Примерно через полчасика освобожусь — поправлю в соответствии с твоими замечаниями.
Minoru 05.04.10 16:59 # +0
Сделал. Решил всю статью в безличную форму не переводить — вроде и так неплохо — но в некоторых местах все же убрал лишние и неуместные «вы».
deFINE 05.04.10 12:22 # +1
Я не понял одного. Зачем еще локальный прокси дома?
Minoru 05.04.10 14:41 # +0
Честно говоря, не знаю :) Я обычно ограничиваюсь только первым шагом — пробрасываю порт с локальной машины на домашнюю, потом прописываю SOCKS5 прокси — и радуюсь жизни.

Хотя если в качестве прокси дома юзать squid, вы можете получить какие-то преимущества — скажем, кэш. Вкупе со сжатием передаваемых по ssh туннелю данных это может дать вам некоторый прирост скорости, если у вас дома не очень быстрый интернет.
mrak018 06.04.10 02:30 # +0
Локальный прокси дома для того, чтобы достичь цели, поставленной автором статьи. Автору на работе закрыли "одноклассники", поэтому он протуннелировался ssh-ем домой, и по туннелю гоняет трафик от одноклассников через домашний прокси по туннелю к себе на работу. То есть его работодатель а) не видит, какие сайты он посещает, б) не может запретить их посещать.

Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 102)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 2074 из 158 городов)
            Топ пользователей Топ блогов
            В сети: Goury, s47, Shtsh, MindLess, nvbn, inot

            Новенькие: vital3000, jamos, blackraven, AndreyKauf, divide
            welinux.ru

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

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


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

            Online video HD

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

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

            Full HD video online

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

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

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