В процессе работы над одним из проектов случайно появилось решение, как можно организовать практически бесплатный прокси-сервер через ssh-соединение (ну например в-контактик на работе закрыт, а ssh — нет).
Алгоритм получается примерно такой:
У Амазона есть бесплатное предложение использования виртуального сервера в течение первого года существования аккаунта при некоторых ограничениях. Подробнее можно узнать тут: 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. Пробуем залогиниться из-под нового пользователя с помощью пароля.
ssh -l логин -D 17778 имя_сервера
Скачиваем PuTTY с официального сайта.
Прописываем ip-адрес, название сессии, сохраняем сессию.
Соединяемся с сервером.
Создаём для PuTTY ярлык, в строке параметров прописывая следующее:
putty.exe -load proxy -D 17778 -l login -pw password
Теперь при запуске через этот ярлык PuTTY будет устанавливать соедиенение ssh с тунеллированием указанного порта.
В 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