Старая история про SkyLink и «халявный» интернет через Skype

SkyLink и безлимитный Skype (тема уже не актуальна)
Давняя история была. В Московской области есть такой сотовый оператор SkyLink.
В нашей дачной местности, где на тот момент не было проводного интернета, СкайЛинк работал довольно хорошо по сравнению с другими сотовыми операторами. Но вот только никакого тебе безлимитного интернета как сейчас не было. Зато была развернута мега-акция по которой заплатив 1 рубль получаешь безлимитный доступ к Skype на 6 месяцев. Это же хорошая новость для всех халявщиков. Можно же файлы перекидывать через него…. а можно и еще кое-что….

Человек, который немножко знаком с сетевыми технологиями и Скайпом, сразу отметит что, идентифицировать скайп-трафик не так уж и просто. (На тот день было так) Однако, по всей видимости, компании СкайЛинк это удается делать. Ну и хорошо!
Когда-то решил провести небольшой эксперимент. Просто передавал файлы через Скайп. И действительно, трафик был посчитан как безлимитный Skype трафик. Значит, вот вам кусок бесплатного интернета. Вместо того чтобы, сидя у себя на даче качать файлы и платить 3 рубля за мегабайт, можно попросить товарища скачать эти файлы на его безлимитном интернете и отправить по Скайпу Вам.
Теперь можно посмотреть на ситуацию с другой стороны, зачем мучить товарищей с бестолковой пересылкой? Халява есть, но ей пользоваться не удобно. Как бы сделать так, чтобы нужные файлы автоматически загружались где-то там, где есть безлимитный интернет и передавались нам через бесплатный Скайп? Нет, не так. Как весь трафик пустить так, чтобы он считался Скайповским и не тарифицировался? Оказывается очень просто. Сейчас расскажу как…
Сразу хочу отметить, что воровством или обманом оператора мы не занимаемся. Более того трафик, который мы будем передавать ни в коем случае не будет маскироваться под Скайп трафик, это будет действительно скайповский трафик. И еще, весь полученный и отправленный интернет трафик мы будем оплачивать, только не компании СкайЛинк по 3 рубля за мегабайт, а другому провайдеру у которого безлимитный интернет стоит 150 рублей в месяц.
У СкайЛинк безлимитный Скайп за 1 рубль => Почти бесплатный Скайп => Почти бесплатный канал передачи данных => Почти бесплатный интернет
Схема работы весьма проста. Поднимается VPN туннель от машины А (та, которая пользуется SkyLink) до машины B (та, которая сидит на безлимитном интернете). Вот по этому VPN туннелю мы и будем организовывать интернет. Как это сделать не для кого не секрет — доки в открытом доступе. Теперь остается сделать этот VPN туннель бесплатным, а именно пустить его через Скайп.
Пустить через Скайп поток данных используя SkypeAPI очень просто. Вся документация также доступна (https://developer.skype.com/Docs). Получается вот такая схема.
Default Route <=> VpnTunnel <=> SkypeAPI <=> Skype <=> SkypeAPI <=> VPN Tunnel <=> Gateway

Настройка

Теперь немного подробнее, на действительно работающем примере.
На машине B (на сервере) мы имеем: Debian Linux, NAT во внешнюю сеть, OpenVPN сервер работающий по UDP протоколу, xserver, skype, vnc4server, и еще маленькая самопальная утилита.
Программа Скайп запускается на виртуальном рабочем столе к которому есть доступ по VNC. OpenVPN сервер настроен таким образом что принимает входящие соединения по UDP порту, обычно 1194. NAT позволяет пользователю подключившемуся по VPN пользоваться сервером как шлюзом. И маленькая утилита которая пробрасывает UDP пакеты на другую сторону через Скайп.
На машине A (на клиенте) используется почти такая же схема. Самопальная утилита так же пробрасывает UDP пакеты между VPN клиентом и сервером через Скайп.
О том как настраивать OpenVPN есть много статей. Важно чтобы сервер разрешал клиентам выходить в интернет. В iptables примерно так:
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
$IPTABLES -A FORWARD -i $VPNIF -o $EXTIF -j ACCEPT
$IPTABLES -A FORWARD -i $EXTIF -o $VPNIF -m state —state ESTABLISHED,RELATED -j ACCEPT
Утилиту для проброса пакетов через Скайп скачать можно здесь (ссылка потеряна)
Исходники положу потом. (код потерян)
(все потеряно, да и халявы больше нет)
Использовать утилиту на сервере нужно так:
testapp —udp-rhost 127.0.0.1 —udp-rport 1194 —udp-lport 1195
Это означает, что VPN сервер находится на этой машине и слушает на порту 1194, утилита же будет использовать для соединения порт 1195.
На стороне клиента:
testapp —udp-rhost 127.0.0.1 —udp-rport 1195 —udp-lport 1194 —rskype SKYPE_USER
Здесь то же самое, только эта машина будет подключаться к Скайп пользователю который ждет соединения на сервере.
К этому моменту Скайп должен быть запущен на обеих машинах, и учетные записи должны быть известны друг другу.
Вот теперь мы имеем порт 1194 на машине A который выходит на другой стороне через Скайп и попадает прямо на впн сервер.
В настройках ВПН клиент обязательно нужно назначить локальный и удаленный UDP порты. В противном случае, клиент с утилитой контачить не будет.
Это необходимо именно в нашем случае.
——————
proto udp
rport 1194
lport 1195
——————
Вот и получается, что ВПН соединение установлено через Скайп, и является при этом бесплатным. А далее по нему можно осуществлять любую маршрутизацию.
Но тут есть маленькая засада. Если весь трафик по умолчанию направить по ВПН каналу, то соединение упадет. Это происходит потому что Скайп использует хитрый алгоритм и соединение с ним потеряется. Чтобы такого не происходило утилиту и Скайп можно запускать на отдельной машине. Также можно использовать виртуальные машины, кому как удобнее.

У меня это выглядело так:
Дома стоит ящик (системник) с каким-то старым Lebian Linux на безлимитном интернете.
На даче стоит другой ящик (системник) на дорогущем мобильном интернете. Зато с халявным скайпом.
Вот эти два ящика по сути делают VPN через Скайп при помощи SkypeAPI и OpenVPN. Получается халявный туннель.
Гоним весь трафик через этот туннель и он не тарифицируется.
Что дало тестирование?
 
Конечно чем хуже прием сети тем чаще случаются перебои, но утилита автоматически восстанавливает соединение — жить можно.
Пропускная способность, в силу расходов на упаковку пакетов, тоже оказалась меньше на 35% по сравнению с работой напрямую — но, жить можно.
Посидели мы на таком интернете некоторое время. А потом пришла к нам долгожданная оптика и все стали жить как люди.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *