21 мая 2011 г.

Создание Firefox SOCKS прокси с помощью Putty SSH tunnel

Иногда информацию или каналы связи полезно шифровать. У Kamrain был хороший обзор книги о шифрах, в котором приведены примеры того, для чего может понадобиться шифрование. Мы с вами не шпионы, но даже нам, простым пользователям, шифрование может пригодиться.

В наше время никого не удивить тем фактом, что, сидя за чашечкой кофе в кафе, можно просматривать любимые сайты, получать почту и болтать с друзьями в любимом IM. Free Wi-Fi стал неотъемлемой частью жизни делового человека. Это удобно, это быстро — имея любое устройство с Wi-Fi модулем можно выйти в сеть практически в любой забегаловке. Но давайте, сидя в кафе, оглядимся по сторонам.


И увидим много людей, которые так же как и мы используют тот же Wi-Fi. Кто-то работает, кто-то заливает фотографии в соц-сеть, кто-то следит за курсом акций. А кто-то в этот момент может при помощи самого обычного ноутбука или смартфона перехватывать весь трафик проходящий через точку доступа в кафе.

Представьте, что вы отправляете макет журнала, или дизайн-документ, или копию своего диплома. Ваш файл проходит по радиоволнам до точки доступа, установленной в кафе, а потом по проводам на сервер почты или файловый сервер. Точно так же, когда вы заходите на сайт любимой браузерной игры, вы получаете трафик по проводам до точки доступа, а потом по волне в свое мобильное устройство. Самым уязвимым местом в этой системе является радиоволна, потому что не только вы подключены к этой разделяемой среде передачи данных. Если злоумышленник имеет своей целью перехватить ваш трафик, то самым простым для него способом будет подключение к той же точке доступа что и вы. В криптографии такая атака называется Человек посередине



Смахивает на паранойю (да кому нужны страницы, которые я просматриваю?), но увы даже для нашего медвежьего угла, эта проблема уже актуальна. Злоумышленником может оказаться хакер, который потом передаст использованные вами пароли для почты или соц-сети спамерам. Им может быть сотрудник спецслужб, которых вы по какой-то причине заинтересовали или которые просто проводят мониторинг трафика на предмет экстремистских, террористических и прочих опасных явлений. В конце концов им может оказаться кто-то вроде меня, кто собирает подобную информацию в целях самообучения.

Итак, сегодня я хочу вам рассказать об одном из способов защитить свою информацию передаваемую по Wi-Fi.

Разберемся, что нам потребуется
1. Удаленный сервер, к которому можно подключиться по SSH. Обычно это сервер с Linux или Unix на борту и имеющий белый IP.
2. Возможность подключиться к серверу по порту 22. Некоторые точки доступа блокируют порты для безопасности подключенных к ним клиентов. Но если у вас есть возможность сконфигурировать SSH на сервере для использования другого порта, то закрытый порт 22 не станет для вас проблемой. Используйте порт 80 или порт 443.
3. Программа Putty доступная как для Windows так и для Linux.

Устанавливаем Putty
Установка довольно проста. Идем на официальный сайт проекта. Скачиваем putty.exe и используем его. Для Linux тоже нет никаких проблем.

Конфигурируем тоннель на ваш SSH сервер
Стартовый экран Putty выглядит примерно вот так:


Введем в поле Host Name (or IP adress) адрес нашего сервера. В целях демонстрации пусть сервер называется myremotesshserver.com. Протокол, естественно, выбираем SSH и соответственно порт вводим тот, который у нас сконфигурирован на сервере. Далее в поле Saved Sessions вводим имя профиля под которым мы сохраним наши настройки для подключения к серверу (не вводить же каждый раз их заново).


Слева мы видим навигационное дерево. Переходим в раздел Connection > SSH > Tunnels, как показано на следующем рисунке:


В секции обозначенной как Add new forwarded port, введите любой порт, на пример 5150. С листом портов можно ознакомиться в этой статье. Нажмите кнопку Add. 
Этот порт нужен будет для того чтобы ваш браузер смог подключиться к тоннелю. Оставьте поле Destination пустым и переключите кнопки ниже с Local на Dynamic. Получется что-то похожее на следующий скриншот:


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

Настройка Firefox
Запускаем Firefox, идем в настройки, выбираем Advanced > Network.


Жмем кнопку Settings. Настроим прокси вручную как показано на нижнем скриншоте:


SOCKS Host находится на нашей локальной машине, поэтому используем адрес 127.0.0.1, а порт тот, который мы выбрали для туннеля Putty. Сохраняем все что натворили и переходим к следующей секции.

Проверка
Просто попробуйте теперь войти допустим на google.com. Если вы увидели страницу гугла, поздравляю все настроено правильно. Лично у меня при первом запуске отвалилось подключение к SSH серверу, но я повторил подключение и повторно запустил браузер, все заработало.
Теперь, чтобы действительно проверить свое подключение, закройте Putty. Это вызовет разрыв связи с сервером. Теперь обновите страницу в браузере. Если вы получили сообщение о том, что браузер не может отобразить страницу, поздравляю, ваша система работает.


По сути мы отключили прокси-сервер выключив Putty и соответственно Firefox не смог подключиться к интернету.

Итак, чтобы наладить все вновь, запускаем Putty, загружаем нашу сохраненную сессию, жмем Open, соединяемся с сервером, вводим свои данные, запускаем/обновляем страницу браузера.

Заключение
Описанный способ так же хорош когда на работе вам запретили выход в глобальную сеть заблокировав например 80 порт или любимый сайт.


Но будьте осторожны! Ваш трафик шифруется! Если на вашей работе кто-то сумел настроить фаервол на то, чтобы не пускать вас в сеть, то скорее всего ведется и мониторинг проходящего трафика, в целях предотвращения утечки корпоративной информации. И представьте, вы создаете шифрованный канал для того, чтобы прополоть грядки в веселой ферме, при этом администратор сети видит, что передается какая-то шифровка через удаленный сервер. Естественно это вызывает очень большие подозрения в ваш адрес. А в случае проверки вы вряд ли сможете доказать, что вы не крот.

P.S. Основная статья находится тут. Спасибо автору.

3 комментария:

  1. Полезно. Нифига не поняла на первый взгляд, но попробую разобраться. А почему описан именно файрфокс? В хроме можно сделать по аналогии, м?

    ОтветитьУдалить
  2. Думаю можно сделать в любом браузере поддерживающим настройку прокси. :)

    ОтветитьУдалить
  3. вы не сказали где взять этот ssh сервер. к какому подключаться то.

    ОтветитьУдалить