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

Смотреть 365 видео

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

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

31.03.09 15:05 DarkMan

How-to`sСоздание ssh-туннелей

Наверное многие попадали в ситуацию, когда доступ к необходимым ресурсам в интернете был ограничен. Например вы сидите на работе и у вас ограниченный доступ к интернету, запрещено все что не разрешено.
Вы не можете поговить с друзьями по IRC, ограниченный доступ к сайтам, пароли летают в plain-text, или вы хотите поиграть в игрушки ;).

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


Описывать все действия я буду исключительно для Linux, под Windows можно использовать putty, но за этим в гугл.

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

Теория



Для начала, чтобы вы не походили на обезьянок-космонавтов немного теории, вы же должны понимать как это все работает.

То что мы делаем это, так называемый, SOCKS-прокси в который мы будем заворачивать весь интересующий нас траффик. Сразу оговорюсь, что сокс поддерживают далеко не все программы, но и тут есть выход из положения, существуют так назваемые "соксификаторы" например tsocks, которые весь траффик генерируемый некоторыми приложениями заворачивает в сокс.

Ну ладно хватит теории, если вам будет интересно, на что я очень сильно надеюсь, то вы все узнаете в гугле.

Практика


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

Способ первый

Если вы хотите получить доступ к какому-то определенному ресурсу через туннель, то принцип такой:
ssh -f -N -L <local_port>:<host>:<host_port> <ssh_user>@<ssh_server>

Давайте рассмотрим ключи которые я описал выше:
  • -N — этим ключем мы говорим, что мы не хотим получить интерактивную оболочку, то есть банально не хотим иметь возможности печатать комманты в этой сессии
  • -f — сворачивает сессию в бекграунд
  • -L — собственно сам туннель этим ключем мы говорим, что хотим чтобы соединения с <host>:<host_port> форвардились (передавались) на <local_port>

Пример 1:
ssh -f -N -L 8080:welinux.ru:80 user@server

Запустив эту сессию, мы можем в фаерфоксе прописать SOCKS прокси, с параметрами localhost и портом 8080, и принимать все данные передающиеся с 80 порта welinux.ru через организованный нами ssh-туннель.

Пример 2:
ssh -f -N -L 8080:welinux.ru:80 -L 110:mail.welinux.ru:110 -L 25:mail.welinux.ru:25 user@server

Таким образом мы пробрасываем еще POP3 и SMTP протоколы через наш туннель. Но тут есть одна проблемма, на привелигированные порты (<=1024) может форвардить только root, но на самом деле это не так и фатально, просто нужно форвардить на непривелигированные.

Способ второй

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

ssh -N -f -D 5555 user@ssh_server

Ключ -D фактически организует на вашей машине SOCKS-прокси.
Таким образом, весь интересующий вас траффик будет заворачиваться на 5555 порт в системе и передаваться через туннель (если вы соответсвующим образом настроили программы умеющие использовать SOCKS).

Вот и все, за большим советую лезть в гугл и маны, в частности man ssh
Удачного использования.



l1feh4ck3r 31.03.09 16:20 # +0
Полезная это штука - туннели.
Laz 31.03.09 18:11 # +0
Хорошая статья. Но, имхо, для полноты картины стоит написать про -R, для проброса удалённого порта в локальный (тоже очень полезная штука), и, наверное, добавить, что можно биндить порт не только на localhost, но и на другие адреса, тоже иногда может пригодиться. Хотя, само собой, в мане это всё есть :)
yuretsz 31.03.09 18:37 # +0
Надо наоборот самое простое вверх писать. Если статья на новичков рассчитана.
DarkMan 31.03.09 20:41 # +0
Если самое простое, то есть вероятность не дочитать до конца. По поводу -R я бы отдельную статейку написал, по поводу ковыряния дырок в фаерволе. Ну а насчет биндинга на другие хосты это конечно хорошо и полезно, но новичкам нафиг не нужно, а если будет интересно и будет необходимость, то в гугле найдут =)
maestro 02.10.09 13:32 # +0
Есть рабочая машина, на которой доступ в интернет ограничен только 80 портом. И есть домашная машина без ограничений. Рабочая имеет внешний адрес и я могу подключаться к ней с домашней по SSH.
Как настроить туннель, чтобы с рабочей можно было бы обойти ограничение файрвола и подключатся на другие порты, например для CVS?

Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 151)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 3057 из 226 городов)
            Топ пользователей Топ блогов
            welinux.ru

            В хорошем качестве hd видео

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


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

            Online video HD

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

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

            Full HD video online

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

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

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