Как подключиться к интернету без впн
Всегда когда находил способ обхода защит интернет провайдеров, хотелось поделиться этим с другими.. Но всегда как то руки не доходили..
В этой статье я опишу только некоторые из них (извините, другие не совсем законные :))
У меня можно сказать нет постоянного места жительства. Живу через раз в 3х местах. Как то так сложилось, что во всех 3х местах мне получилось получить доступ к интернету не оплачиваю его!
Нет, я не пользуюсь этим. Делалось все ради спортивного интереса!
Как не странно, все из методов находились в момент, когда провайдеры отключали меня за неуплату )))
И так, хватит о себе. Давайте приступим к обзору как и что делать.
Пример 1.
Провайдер выдает доступ к интернету через VPN (pptp).
Что это значит? Теоретически мы подключаемся к удаленному серверу по логину/паролю который выдает нам интернет.
При подключении сетевого кабеля к устройству мне выдали DHCP адрес сети: 192.168.100.195 (маски сети и шлюз не имеют значения).
При подключению к интернету мы соединяемся с VPN(pptp) сервером и он выдает нам другой (временный ип) 192.168.200.195.
Как я обошел его?
Элементарно, Ватсон. Меняем ip нашего подключения на свободный ip из тех которые выдает VPN. Главное в этом способе было поставить правильный DNS адрес. Пользоваться интернетом можем хоть сколько, скорость используем максимально возможною :)
Пример 2.
Провайдер выдает доступ к интернету через DHCP с привязкой по MAC-адресу.
Случилась беда. У моего провайдера дала сбой система отвечающая за оплату. Мой последний платеж не приняли и в субботу мне отключили интернет. Что делать? До понедельника сидеть без интернета? Глупо..
Первым что пришло в голову это найти знакомого у которого тот же провайдер что и у меня. Попросить у него его MAC и прописать к себе в роутер. Была надежда что провайдер не проверяет количество подключений с одним MAC.
Так и было :). Через 10 минут я вбил MAC-адрес своей девушки и без проблем лазил в интернете. Но скорость у нее была всего 5мегабит.
И тут я вспомнил. В панели статистики отображается информация о нашем счете и. и MAC адрес!
Мой провайдер не ушел далеко от гигантов типа Билайн (Киевстар в украине) и пароли к доступу в кабинет это номер договора (некоторые ставят номер договора в обратном порядке).
Спустя еще 10 минут я набросал бота который заходил в статистику, брал ФИО/Тариф/Мак/Остаток денег.
Через час у меня на руках был список из примерно 2000 клиентов моего провайдера с их MAC-адресами. Выбираем любой тариф, пользуемся!
Пример 3.
Провайдер выдает доступ к интернету через DHCP с привязкой по MAC-адресу. Способ 2
Идея второго способа не очень отличается от предыдущего. Суть только в том, как получить чужой MAC-адрес.
Если ваш провайдер довольно крупный, ищем открытые Wi-Fi точки которые подключены именно к вашему провайдеру.
Искать их можно везде! У меня в городе например половина заведений с Wi-Fi подключены к провайдеру выдающему доступ к интернету по MAC-адресу.
Нашли точку?
Если нам получилось зайти в панель управления точкой с дефолтными логин/пароль (у меня это получается в 60-70% случаев) смотрим настройки подключения и переписываем MAC-адрес. Придя домой вбиваем его в свой роутер. Пользуемся :)
Пример 4.
Нам необходим интернет в 2 разных домах подключенных к одному провайдеру.
Тут сложнее. На моем примере у меня дом 1 имеет статический ип адрес. Скорее всего этот же способ можно прокрутить и не на статическом ип, но это я не пробовал пока.
Дом2 подключен к той же сети что и дом1. Так как провайдеры дают доступ к внутренней сети и при нулевом балансе, мы с дома2 без проблем пингуем дом1. Так почему бы нам не расшарить интернет на доме1?
На доме1 стоит роутер умеющий создавать VPN сервер.
Создаем себе пользователя и подключаемся к нему из дома2. Пользуемся :)
Подключись к домашнему компьютеру
На дворе XXI век, доставка сетевого пакета из Сибири в Калифорнию занимает 0.1 секунды, весь мир опутан компьютерными сетями, а TCP/IP есть даже в зубных щетках. Казалось бы, при такой-то связности всего со всем, мы должны давным давно иметь возможность управлять компьютером не только посредством физического присутствия возле устройств ввода, но и удалённо, по сети. Тем более что технологий и протоколов для этого — предостаточно. Remote Desktop от Microsoft, вариации на тему VNC в *nix системах, решения от Citrix, тысячи их… Тем не менее мало кто из нас может похвастаться возможностью подключиться к своему домашнему компьютеру из любой точки мира при помощи какой-нибудь из этих технологий.
Причин, по которым мало кто может похвастаться связью со своим собственным домашним компьютером, две, и они связаны друг с другом. Первая из них — отсутствие у типичного домашнего компьютера адреса в глобальной сети. Корни такого положения дел уходят в далёкий 1981 год, в котором был впервые описан стандарт IPv4, который и по сей день используется (само собой, с изменениями и дополнениями) для адресации большинства узлов в сети Интернет. Авторы стандарта решили, что адресного пространства мощностью в 3.7 миллиарда адресов хватит всем устройствам мира, но реальность оказалась сурова. Ожидается, что в IPv4-интернете не останется свободных адресов к сентябрю 2019 года.
Кроме того, типичный пользователь интернета, который не хостит у себя веб-сайты, вполне может пользоваться всеми благами цивилизации не имея адреса в глобальной сети, вместо этого ограничиваясь лишь адресом в частной сети и провайдерским NAT'ом. Иными словами, для большинства пользователей интернета нет разницы между наличием и отсутствием глобального IP-адреса у их оборудования. В таких условиях число тех, кому провайдер выдаёт глобальный IP-адрес в глобальной сети, стремительно сокращается. В итоге типичный домашний компьютер располагается в частной сети, и глобального адреса не имеет. Даже в случае, когда провайдер всё же назначает оборудованию пользователя адрес в глобальной сети, этим оборудованием является домашний роутер, выполняющий NAT из домашней частной сети. Пользователь при этом, конечно, может «пробросить порт» на роутере, но даже в этом лучшем случае глобальный адрес роутера может меняться изо дня в день. Да, существуют провайдеры, которые за скромную плату предоставляют услугу «Статический IP», но на практике где-то к этому моменту пользователь осознаёт, что игра не стоит свеч, и если нужно что-то сделать с домашним компьютером, то можно и по телефону позвонить.
Самые же настырные могут пройти этот квест до конца и столкнуться со второй причиной, по которой открывать доступ к своему компьютеру через интернет — развлечение лишь для крепких духом. Эта причина банальна — информационная безопасность. Глобальная сеть на то и глобальная, что рано или поздно в ваши ворота постучится кто-нибудь с другого конца света и с недобрыми намерениями. Насканить открытый порт, на котором отвечает сервер удалённого рабочего стола, — не слишком сложная задача, и, будьте уверены, рано или поздно к вам на супер-секретный порт 32167 прилетит TCP SYN родом из китайской деревушки.
Возвращаясь назад к нашей экзотической переадресации портов при помощи SSH, можно заметить, что её особенности устраняют обе перечисленные причины.
Доступ в Internet минуя VPN канал (на примере)
Недавно решил следующую интересную задачу: требовалось обеспечить подключение до ресурсов на работе по защищенному каналу, при этом, использовать свой домашний интернет, а не рабочий интернет сквозь VPN соединение.
У нас имеется настроенное VPN соединение (VPN активен). Подключим его и проверим параметры интерфейсов. Для этого запустим командную строку (здесь и далее, командная строка должна быть с правами администратора).
Выполним команду ipconfig
нас интересуют текущий IP-адрес локальной машины (192.168.0.164) и IP-адрес адаптера VPN соединения (192.168.112.45).
Проверим и убедимся, что у нас доступен интернет и трафик идет через VPN канал.
Для этого выполним ping 8.8.8.8 до общедоступного DNS и
tracert 8.8.8.8
Как видно, интернет есть, и он идет через IP VPN соединения по сети 192.168.112.0
Убедимся, что рабочий ресурс нам доступен, для этого выполним
ping 192.168.1.100 (это контроллер домена рабочей сети),
а также tracert 192.168.1.100
Так как соединение было активно, требуется отключить и снова включить соединение, для вступления изменений в силу, о чем нас любезно предупредят.
Теперь весь трафик, который раньше шел через VPN – будет идти так, как было бы без него. Проведем эксперимент, для этого вновь проверим доступность интернета и как идет трафик
Как видно из тестов, интернет идет через нужный нам канал, но доступ до рабочих ресурсов пропал. Нам необходимо явно добавить маршрут (маршруты), для которых необходим доступ по VPN.
Нам понадобится IP адрес шлюза VPN соединения или IP адрес, назначаемый при VPN подключении, если шлюз не известен. Для нашего примера это адрес 192.168.112.45.
Посмотрим таблицу маршрутизации введя route print
Нас интересует номер VPN интерфейса (подсвечен). Обратите внимание, что у нас отсутствуют постоянные маршруты.
Далее нам необходимо определить адрес(а) или подсеть трафик в которую необходимо направлять через VPN соединение. В нашем случае это весь трафик для рабочей сети 192.168.1.0/24., который необходимо направлять через интерфейс VPN соединения 192.168.112.45.
Пропишем постоянный маршрут:
route add 192.168.1.0 mask 255.255.255.0 192.168.112.45 if 36 -p
Посмотрим таблицу маршрутизации. У нас появился постоянный маршрут.
Задача решена, проверим что все работает так как задумывалось.
Интернет есть и трафик идет по обычному каналу.
Доступ до рабочих ресурсов есть и идет внутри VPN.
Подобный подход можно использовать и для настройки одновременной работе двух (или больше) сетевых карт.
Как заблокировать интернет без VPN?
Вы требуете невозможного. Часть этого интернета точно будет работать. Хотя бы для доступа к VPN-серверу.
А так два варианта:
1) убрать маршрут по умолчанию, оставить только маршрут до VPN-сервера. Я так понимаю, при подключении к VPN вам отдается default route.
2) В файерволе запретить все исходящие пакеты (да и входящие) с участием основного соединения, кроме пакетов до VPN-сервера
Вопрос решаемый, для себя я решил его средствами Windows 7, а именно -- разделением на общественные сети и рабочая\домашняя. Сам прогемороился с этим вопросом, поэтому вас понимаю :-) Надеюсь, решение окажется полезным кому-то, кроме меня.
Все действия делаем через брандмауэр (Пуск->Администрирование->Брандмауэр)
1. Умолчания для профилей:
Нам необходимо сделать чтобы интернет был доступен только из частного профиля (частными являются профили "Домашний" и "Рабочий"), а из общественных нам нужна только возможность подключиться к VPN + основы локальных сетей.
Итак, настройки (Действие->Свойства)
2. Настраиваем правила для исходящих подключений, все для общего профиля:
Я для себя настраивал правила для доступа по протоколам PPTP, L2TP + IPSEC, OpenVPN, если вам не нужно такое универсальное решение -- можете не использовать порты и правила, которые вам не нужны.
- Разрешить подключение
- Область > Удалённый IP адрес > IP_вашего_VPN
- Протоколы и порты:
- Тип протокола: TCP
- Удалённый порт > Специальные порты: 1723, 53, 443
- Разрешить подключение
- Область > Удалённый IP адрес > IP_вашего_VPN
- Протоколы и порты:
- Тип протокола: UDP
- Удалённый порт > Специальные порты: 500, 4500, 1701, 53
- Разрешить подключение
- Область > Удалённый IP адрес > IP_вашего_VPN
- Протоколы и порты > Тип протокола: GRE
- Разрешить подключение
- Область > Удалённый IP адрес: Локальная подсеть
- Протоколы и порты -> Тип протокола: Любой
- Разрешить подключение
- Область > Удалённый IP адрес > IP_вашего_VPN + 8.8.8.8 + ip_основной_страницы_вашего_провайдера
- Разрешить подключение
- Область > Удалённый IP адрес > IP_сайта_вашего_VPN
- Протоколы и порты:
- Тип протокола: TCP
- Удалённый порт > Специальные порты: 80, 443
- Разрешить подключение
- Область > Удалённый IP адрес > 65.52.149.136
- Протоколы и порты:
- Тип протокола: TCP
- Удалённый порт > Специальные порты: 80, 443
- Разрешить подключение
- Область > Удалённый IP адрес > 212.58.160.100
- Протоколы и порты:
- Тип протокола: TCP
- Удалённый порт > Специальные порты: 80, 443
- Разрешить подключение
- Область > Удалённый IP адрес > 193.19.84.37 + 78.154.160.82
- Протоколы и порты:
- Тип протокола: TCP
- Удалённый порт > Специальные порты: 80, 443
3. Необходимо просмотреть правила для общего профиля в входящих и исходящих. Отсортируйте по колонке "Профиль" и просмотрите, чтобы не было доступа для программ через общийпрофиль, если есть - отключите правила.
4. Что делать, если после подключения к VPN невозможно выбрать профиль как частный, а сеть определяется как неизвестная сеть: Причина в том, что впн не отдаёт вам default gateway, который необходим windows для возможности выбора типа профиля. Решается добавлением строк в серверный конфиг VPN. Подробнее тут.
Собери себе TeamViewer
Сразу нужно оговориться, что TeamViewer — это большой продукт с огромным количеством очень разных возможностей. Мы же в рамках этой статьи соберём себе лишь способ безопасно подключаться через сеть Интернет по протоколу Remote Desktop к компьютеру, который находится за NAT. Тем не менее, рискну предположить, что именно подключение к любому компьютеру, имеющему доступ в интернет, — главная отличительная черта TeamViewer, благодаря которой этот продукт так популярен. И именно такое подключение мы можем реализовать собственными руками, используя нашу конфигурацию SSH из первой части статьи.
Итак, условия задачи: есть домашний компьютер и ноутубк, оба под управлением Windows 10. Нужно сделать так, чтобы с ноутбука иметь возможность зайти на домашний компьютер по протоколу Remote Desktop из любой точки мира. В состав нашей системы будут входить наш домашний компьютер-сервер Remote Desktop, ноутбук с клиентом Remote Desktop, и сервер SSH. Сервер SSH — единственный компонент, которому требуется глобальный IP-адрес и постоянная доступность. Самый простой вариант, удовлетворяющий этим требованиям, — разместить SSH-сервер в облаке. Яндекс.Облако отлично подходит (в первую очередь за счёт своей ценовой политики), так что будем использовать его. В итоге получается вот так:
Начнём с подготовки нашего домашнего компьютера. Сперва убедимся, что удалённый доступ к нему вообще разрешён. Это можно сделать через вкладку «Удаленный доступ» в дополнительных параметрах системы:
Начиная с апреля 2018 года в Windows 10 среди утилит командной строки уже присутствует ssh-клиент. Это поможет нам меньше отвлекаться на установку разного софта и сразу приступить к делу. Для начала сгенерируем себе ключ для SSH. Откроем командный интерпретатор PowerShell и выполним 'ssh-keygen'. Когда нас спросят о пароле для ключа, оставим его пустым. После генерации ключа выведем его открытую часть на консоль командой 'cat $HOME/.ssh/id_rsa.pub'. Результат выполнения команды пригодится нам для запуска SSH-сервера в облаке. Должно получиться что-то вроде этого:
Нам нужно скопировать закрытую часть ключа SSH на ноутбук. Эта часть ключа лежит в файле '$HOME/.ssh/id_rsa' (без суффикса ".pub"), и мы можем скопировать его как обычный файл. К примеру, используя флешку (предполагаем, что она смонтирована как диск F:)
Теперь запустим наш SSH-сервер. Создадим виртуальную машину (ВМ) в Яндекс.Облаке. Для наших целей можно выбрать «лёгкую» ВМ с 1 vCPU и 0.5 гигабайта RAM. В разделе сетевых настроек выберем сеть по умолчанию с автоматическим IP-адресом. В раздел «доступ» в качестве логина введём «home», в поле ввода SSH-ключа скопируем то, что вывелось у нас в консоль на предыдущем шаге:Нажмём «Создать ВМ» и дождёмся завершения. После того, как создание виртуальной машины завершится, нам потребуется узнать её IP-адрес:
IP-адрес нашей виртуальной машины нам понадобится, чтобы запускать SSH-клиент на домашнем компьютере и ноутбуке. Запустим его на компьютере вот таким образом (в этой и следующих командах необходимо заменить 84.201.141.36 на IP-адрес вашей ВМ):
На вопрос о подключении к неизвестному серверу отвечаем «yes». Если затем мы не видим никакого текста на консоли, значит всё прошло отлично. Теперь настроим ноутбук. Скопируем закрытый ключ с нашей флешки:
И запустим SSH-клиент:
Теперь можно запускать на ноутбуке клиент удалённого доступа к рабочему столу (mstsc.exe), указав в качестве адреса подключения localhost:1025. Ура, работает!Или почти работает. Если остановить процесс SSH на домашнем компьютере, подключиться станет невозможно. Нам нужно сделать так, чтобы этот процесс автоматически запускался при старте системы, а также перезапускался при разрывах подключения. Этого можно достичь, например, создав PowerShell-скрипт и зарегистрировав его как обязательный для запуска в групповой политике при старте компьютера. Только нужно учесть, что запускаться он будет от имени системного аккаунта, а значит нужно убедиться что системному аккаунту доступен наш SSH-ключ.
Сперва займёмся ключом. Запустим PowerShell от имени администратора и выполним вот такие команды:
Заодно в этом же окне PowerShell разрешим выполнение скриптов:
Теперь создадим собственно скрипт. Откроем наш любимый текстовый редактор (Notepad тоже подойдёт), и напишем вот такой скрипт (не забыв заменить IP-адрес SSH-сервера на тот, что выдан вам Яндексом):
Сохраним скрипт в понравившуюся директорию. Наконец зарегистрируем его для автозапуска. Для этого запустим редактор групповых политик (Win+R → gpedit.msc), и откроем пункты «Конфигурация компьютера» → «Конфигурация Windows» → «Сценарии (запуск/завершение)» → «Автозагрузка». На вкладке «Сценарии PowerShell» воспользуемся кнопкой «Добавить», и укажем путь к нашему сохранённому скрипту.Аналогичные действия проделаем на ноутбуке. Сперва PowerShell от имени администратора:
Затем в текстовом редакторе подготовим скрипт (он немного отличается от предыдущего, но как и прежде, заменяем IP-адрес на тот, что был выдан вам Яндексом):
Неконец зарегистрируем его для запуска при старте при помощи «gpedit.msc». Перезагрузим компьютер и ноутбук (чтобы убедиться что всё корректно запускается) и вуаля! Теперь наш домашний компьютер и наш ноутбук навеки связаны друг с другом (до тех пор, пока наша виртуальная машина в Яндекс.Облаке включена и доступна).Ну разве не здорово? В любом кафе, в любом аэропорту можно подключиться к себе домой и посмотреть любимые картинки с котиками. Или порадовать домашних включением 5-й симфонии Бетховена на полную громкость. Или поинтересоваться успехами своей майнинг-фермы. Или посмотреть, что творится дома при помощи веб-камеры. Да мало ли вообще применений у такой возможности «телепортироваться»? Но есть у нашего решения и недостатки.
Во-первых, настройка подключения — не самый простой и приятный процесс. А в случае, если что-то пойдёт не так, отладка еще немного сложнее, чем первоначальная настройка. Само собой, эта проблема решается усидчивостью и терпением, но даже то небольшое количество труда, которое требуется затратить, может вызвать сомнения в целесообразности усилий.
Во-вторых, виртуальная машина в облаке стоит денег. В случае Яндекса тот минимум, на который можно рассчитывать, это 480 рублей в месяц. Это, конечно, не запредельные деньги, но всё-таки свои, заработанные в поте лица. Стоит ли просмотр картинок с котиками этих денег — решать каждому для себя, но очень может быть, что все преимущества нашего решения будут перечёркнуты его ценой.
Ценовой вопрос можно существенно сгладить, разделив расходы с друзьями и единомышленниками. Поскольку виртуальная машина используется для задач, не требующих сколь-либо заметных вычислительных мощностей, падение производительности крайне маловероятно. А экономический эффект — заметен: если арендовать виртуальную машину вдесятером, то каждому придётся заплатить лишь 48 рублей в месяц. Правда, в этом случае гармонию может нарушить вопрос доверия: любой из единомышленников имеет возможность подключиться к компьютеру собрата по SSH-серверу. В случае, когда у всех на аккаунтах установлены надёжные пароли, это не проблема. Но, скажем прямо, надёжный пароль для входа на домашний компьютер — скорее исключение, чем правило.
Продолжение следует
Итак, предположим, что мы собрали 10 единомышленников, настроили всё, как написано выше, и у всех всё работает. Наш клуб любителей картинок с котиками благополучно пользуется возможностью ходить к себе домой через интернет всего за 48 рублей в месяц без регистрации и смс, все довольны и счастливы. Вопрос в том — ограничиваются ли возможности нашей «технологии» лишь котиками и нельзя ли её использовать для чего-то более серьёзного?
Само собой можно. Если заменить в наших рассуждениях «домашний компьютер» на «билд-сервер в облаке», а «ноутбук» на «рабочий компьютер в офисе», мы получаем нечто достойное звания «система доступа к инфраструктуре разработки». А если вместо билд-сервера у нас будет IP-камера, а вместо рабочего компьютера — пост охраны, получаем «систему видеонаблюдения».
В обоих случаях, правда, придётся уделять больше внимания вопросам контроля доступа. В частности, при совместном использовании SSH-сервера несколькими пользователями хотелось бы изолировать этих пользователей друг от друга. А ещё при таком совместном использовании мы вынуждены назначать каждому ресурсу каждого пользователя свой отдельный TCP-порт и запоминать его номер. Адресация по номерам может вскоре стать довольно утомительной, поэтому хотелось бы иметь возможность назначать ресурсам осмысленные названия. Но о том, как улучшить ситуацию, мы поговорим уже в следующей статье.
А пока спасибо за внимание и, пожалуйста, поделитесь своими мыслями в комментариях.
VPN без VPN или рассказ об нетрадиционном использовании SSH
Протокол быстро завоевал популярность и после длительного периода доработок и улучшений был стандартизован IETF в 2006 году. С тех пор он успел стать де-факто стандартом для удалённого управления системами с текстовой консолью. Помимо собственно текстовой консоли в протоколе предусмотрена масса других полезных функций, таких как передача файлов и переадресация портов. Именно о переадресации портов (port forwarding) и её не слишком очевидном применении пойдёт речь в этой статье.
В протоколе SSH предусмотрено два режима переадресации портов — прямой и обратный. Прямой режим позволяет открыть слушающий TCP-порт на стороне SSH-клиента и переадресовать все подключения к этому порту на сторону сервера.К примеру, если на нашем SSH-сервере выполняется сервер удалённого рабочего стола (Remote Desktop, RDS), мы можем использовать протокол SSH, чтобы подключиться к этому серверу, даже если прямое сетевое подключение невозможно (к примеру, заблокировано межсетевым экраном). Вот так:
Второй режим переадресации портов — обратный — позволяет поменять местами роли SSH-сервера и клиента (применительно к переадресуемому порту). В обратном режиме слушающий TCP-порт открывается на стороне SSH-сервера, а приложение, обслуживающее этот порт, находится на стороне SSH-клиента. Пригождается такое редко, но, как правило, очень метко.
Комбинируя эти два режима и наш пример с сервером удалённого рабочего стола можно получить вот такую конфигурацию:
На первый взгляд, выглядит избыточно. Но вместе с кажущейся избыточностью мы получили два важных свойства:
- Единственное, что требуется от сети, чтобы такая схема работала корректно, — обеспечить постоянство сетевого адреса узла, где размещён SSH-сервер. Узлы, на которых выполняются сервер и клиент RDS, могут менять свои сетевые адреса хоть каждую минуту (либо вообще могут иметь адреса в частной сети, нам требуется лишь исходящий NAT, что часто и подразумевается под формулировкой «подключение к интернету»).
- Несмотря на то, что для нас самих RDS-сервер доступен из любой точки интернета, другие пользователи не могут установить к нему подключение (при условии отсутствия уязвимостей в SSH-сервере). А поскольку в протоколе RDS имеется собственный контроль доступа, даже в случае успешной атаки на SSH-сервер, злоумышленнику нужно будет провести еще и атаку на RDS. Вероятность наличия одновременно уязвимости SSH-сервере и уязвимости RDS-сервера, много меньше такой вероятности для каждого компонента в отдельности.
Читайте также:
- Тип протокола: TCP
- Тип протокола: TCP
- Тип протокола: TCP
- Тип протокола: TCP
- Тип протокола: UDP
- Тип протокола: TCP