Бесплатный прокси через ssh

14 ноября 2012 Юникс

В процессе работы над одним из проектов случайно появилось решение, как можно организовать практически бесплатный прокси-сервер через ssh-соединение (ну например в-контактик на работе закрыт, а ssh — нет).

Алгоритм получается примерно такой:

  1. Регистрация аккаунта на amazon
  2. Создание виртуального сервера
  3. Корректирование параметров доступа
  4. Настройка putty, организация туннеля до созданного сервера
  5. Настройка firefox, корректировка способа доступа к сети

Регистрация аккаунта на amazon

У Амазона есть бесплатное предложение использования виртуального сервера в течение первого года существования аккаунта при некоторых ограничениях. Подробнее можно узнать тут: http://aws.amazon.com/free/. Для создания аккаунта понадобится банковская карточка и сотовый телефон. С карточки снимут доллар при регистрации, на сотовый поступит звонок для проверки.

В качестве карточки очень удобно использовать виртуальные карты от QIWI.

Сложного в регистрации ничего нет описывать подробнее не вижу смысла.

Создание виртуального сервера

В панели управления нужно выбрать «EC2» (Virtual Servers in the Cloud).

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

Нажимаем «Launch Instance». Практически всё будет со стандартными параметрами.

Используем Classic Wizard. Выбираем «Amazon Linux AMI». Проверяем, что в качестве Instance Type указан T1 Micro (который бесплатный). Создаём ключи для доступа, скачиваем открытый ключ.

Для нашей задачи будет достаточно стандартной группы безопасности.

Запускаем виртуальный сервер.

Выбираем раздел «Elastic IPs», нажимаем «Allocate New Address». После выдачи ip-адреса, выбираем его, нажимаем «Associate Address», указываем только что созданный сервер.

В результате этих действий был создан виртуальный сервер и для него назначен внешний ip-адрес.

Корректирование параметров доступа

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

Для скачанного файла ключа устанавливаем права на чтение и запись только для владельца, после чего соединяемся с сервером, используя этот файл ключа. Стоит обратить внимание, что логиниться нужно из-под пользователья ec2-user, а не root.

С помощью команды adduser создаём нового пользователя. Редактируем файл /etc/ssh/sshd_config и устанавливаем «PasswordAuthentication yes». Перезапускаем сервер ssh: service sshd restart. Все команды запускаем через sudo. Пробуем залогиниться из-под нового пользователя с помощью пароля.

Организация туннеля до созданного сервера в *nix

ssh -l логин -D 17778 имя_сервера

Oрганизация туннеля до созданного сервера в Windows, настройка putty

Скачиваем PuTTY с официального сайта.

Прописываем ip-адрес, название сессии, сохраняем сессию.

Соединяемся с сервером.

Создаём для PuTTY ярлык, в строке параметров прописывая следующее:

putty.exe -load proxy -D 17778 -l login -pw password

Теперь при запуске через этот ярлык PuTTY будет устанавливать соедиенение ssh с тунеллированием указанного порта.

Настройка firefox, корректировка способа доступа к сети

В Firefox в настройках прописываем Настройки->Дополнительно->Сеть->Настроить) и ставим Узел SOCKS localhost 17778

Запускаем PuTTY через созданный на предыдущем шаге ярлык и определяем ip-адрес, который у нас видят снаружи.

Как можно наблюдать, ip, который видит яндекс совпадает с ip, который соотнесён виртуальному серверу и к которому мы подключались по ssh.

 

Использованные материалы

http://debianadmin.ru/internet-cherez-ssh-bez-proksi.html

http://habrahabr.ru/post/135713/

http://stackoverflow.com/questions/6119774/ssh-to-aws-instance-without-key-pairs

http://www.shanghaiwebhosting.com/web-hosting/putty-ssh-auto-login