Я тут случайно взломал французского сотового оператора. Ну ка | .и в продакшен
Я тут случайно взломал французского сотового оператора.
Ну как "взломал". Не взломал конечно. Просто замаскировал использование "personal hotspot", он же "tethering", он же "data sharing". Оказалось что в Европе многие операторы его запрещают и даже блокируют.
Это когда в телефоне безлимитный и быстрый интернет, а подключаешь ноутбук через hotspot - нету.
Оказалось, что это обходится за 30 секунд и 6 кликов мышкой. Но это если знать. Я - не знал.
Началось с того, что я приехал с велосипедом в Альпы и случайно забукал Airbnb без WiFi. Полное фиаско. Ладно, за 15 секунд нагуглился eSim-провайдер "Holafly", предлагающий безлимитный интернет по всей Европе за 19 евро в неделю. Звучит неплохо. Берем.
...И hotspot через мобилу, конечно же, не работает. Для верности позвонил в поддержку - да, нельзя, "у нас там внизу мелкими серыми буквами написано, что дата-шаринг запрещен, вы разве не читали?!"
"D'accord" говорю "merci bien". Про себя конечно думаю "ну все, суки, вам кабзда"
Let the hacking begin.
Как мобильный оператор детектит tethering? Через DPI и фингерпринтинг TCP/IP-стека.
Через DPI можно вытащить много чего. Если ваш "айфон" вдруг ломится на сервера Windows Update, это вряд ли айфон, правда? Или можно подсмотреть user-agent браузера (для не-SSL сайтов). И тд и тп. Это все решается любым VPN и защитой от DNS-leak. И то и другое есть в бесплатном приложении "1.1.1.1" от CloudFlare. Ставлю его на телефон и весь DPI должен отвалиться.
Пробую - все равно не работает.
Дальше надо прочекать, что оператор выдает один и тот же APN для мобильной связи и для "personal hotspot". Идем в "Settings - Mobile data - Data plan - Mobile data network" и проверяем, что APN в обоих полях одинаковый. Если не совпадает - меняем.
Не помогло.
Каким-то чудом я вспоминаю, что у винды TTL пакета 128, а у линукса и айфона - 64 (я ненастоящий сетевик, могу перепутать). Может быть, они мою винду видят по TTL? Лезу в реестр, ставлю 64, перегружаю комп...
Все равно не работает.
Тут я ненадолго затупил и даже встал походить по комнате. Чувствую, что победа близко, но чего-то не хватает. Через 5 минут сообразил, что TTL уменьшается на единичку на каждом роутере. То есть, когда сетевые пакеты от ноутбука проходят сквозь айфон, TTL меняется с 64 на 63. Бинго. Надо ставить 65.
Поставил. Заработало. 100-мегабитный 4G, детка.
В первый же день каталки я растянул связки ключицы, попал в больницу и потом два дня сидел в квартире, приходя в сознание. Ох, как же я отомстил провайдеру за "мелкие серые буквы внизу страницы" за эти пару дней! В одном окошке нетфликс, в другом кинопаб, в третьем качается апдейт для Visual Studio 2022, а в блютус-колонке играет спотифай. Посреди этого орущего великолепия - я на диване, с шиной на плече, читаю Телегу на раскаленном телефоне.
Итого TL:DR: чтобы спрятать "personal hostpot" ставим на телефон VPN, а на компе меняем TTL на "65" (легко гуглится).
P.S. На четвертый день этой вакханалии оператор включил мне лимит 10гб в день.