- Настройка VPN (L2TP/IPsec) для Android, iPhone и iPad. Бесплатные серверы VPN Gate
- Содержание
- Настройка VPN (L2TP/IPsec) для Android
- Предварительная конфигурация
- Важная информация
- Примечание
- Запуск VPN-подключения
- Интернет без ограничений
- Настройка VPN (L2TP/IPsec) для iPhone, iPad
- Предварительная конфигурация
- Важная информация
- Примечание
- Запуск VPN-подключения
- Интернет без ограничений
- Как подключиться к VPN на Android: 5 простых шагов
- Узнайте как подключиться к VPN на Android!
- Как настроить VPN на Android?
- Используйте приложения от VPN провайдеров
- Технология OpenVPN
- Режим «постоянная VPN»
- Какие VPN лучше всего подойдут для Андроид устройств?
- Разработка VPN-клиента под Android (Часть 1)
- Немного об используемых технологиях
- «Фичи» VpnService API
- Немного о NinePatch
- Заключение
Настройка VPN (L2TP/IPsec) для Android, iPhone и iPad. Бесплатные серверы VPN Gate
Содержание
Настройка VPN (L2TP/IPsec) для Android
Данная инструкция демонстрирует, как подключиться к серверу ретрансляции VPN Gate с помощью L2TP/IPsec VPN клиента, встроенного в мобильную операционную систему Android.
Предварительная конфигурация
- Перейдите в приложение Настройки.
- В разделе сетевых настроек Подключения перейдите в меню Другие настройки > VPN.
- Нажмите меню и выберите Добавить профиль VPN.
- Откроется экран настройки нового VPN-подключения. Введите произвольное название в поле имя, например, VPN Gate и выберите тип подключения L2TP/IPSec PSK.
- На данном экране нужно ввести либо имя узла, либо IP-адреса сервера из пула открытых серверов VPN Gate http://www.vpngate.net/en/.
- Откройте список публичных серверов ретрансляции и выберите VPN-сервер, к которому хотите подключиться.
Важная информация
Для столбца L2TP/IPsec Windows, Mac, iPhone, Android No client required в списке серверов должна быть отмечена галочка, которая сообщает о поддержке настраиваемого протокола L2TP/IPsec.
- Скопируйте имя узла DDNS (идентификатор, который заканчивается на «.opengw.net») или IP-адрес (цифровое значение xxx.xxx.xxx.xxx) и введите его в поле “Адрес сервера” на экране конфигурации.
Примечание
Рекомендуется использовать имя DDNS – его можно продолжать использовать, даже если соответствующий DDNS IP-адрес в будущем изменится. Тем не менее, в некоторых странах у вас не получиться использовать имя узла DDNS – в этом случае следует использовать IP-адрес.
- Введение vpn в поле «Общий ключ IPSec».
- Отметьте галочку “Показать дополнительные параметры”, если она доступна.
- В поле “Перенаправление маршрутов” введите 0.0.0.0/0. Убедитесь, что вы правильно ввели значение этого поля. В противном случае, вы не сможете установить подключение к VPN-серверу.
- После этого нажмите кнопку “Сохранить”.
Запуск VPN-подключения
- Вы можете в любое время установить новое подключение к VPN-серверу. Откройте настройки VPN, и вы увидите следующий список.
- Введите vpn в поля “Имя пользователя” и “Пароль” при первом использовании. Отметьте галочку “Сохранить учетные данные”. Нажмите кнопку Подключиться, чтобы установить VPN-подключение
- После установки VPN-подключения у соответствующей записи из списка VPN появится статус Подключено. На устройстве Android может появится уведомление об активации VPN. Нажмите по сообщению, чтобы посмотреть статус текущего подключения.
Интернет без ограничений
Когда соединение установлено, весь сетевой трафик будет проходить через VPN-сервер. Вы также можете перейти на сайт ipinfo.io, чтобы посмотреть глобальный IP-адрес.. Вы сможете увидеть видимое из сети местоположение, которое будет отличаться от вашей фактической локации.
При подключении к VPN вы сможете посещать заблокированные веб-сайты и использовать заблокированные приложения.
Настройка VPN (L2TP/IPsec) для iPhone, iPad
Данная инструкция демонстрирует, как подключиться к серверу ретрансляции VPN Gate на iPhone / iPad с помощью L2TP/IPsec VPN клиента, встроенного в iOS.
Предварительная конфигурация
- На главном экране iPhone / iPad выберите приложение Настройки.
- Выберите опцию VPN (или перейдите в меню «Основные > VPN»), затем нажмите Добавить конфигурацию VPN.
- На странице настроек выберите Тип >L2TP и добавьте название соединения в поле Описание, например «VPN Gate».
- Далее на данном экране нужно ввести либо имя узла, либо IP-адреса сервера из пула открытых серверов VPN Gate http://www.vpngate.net/en/ (для столбца L2TP/IPsec Windows, Mac, iPhone, Android No client required в списке серверов должна быть отмечена галочка).
- Откройте список открытых серверов ретрансляции и выберите VPN-сервер, к которому хотите подключиться.
Важная информация
Для столбца L2TP/IPsec Windows, Mac, iPhone, Android No client required в списке серверов должна быть отмечена галочка, которая сообщает о поддержке настраиваемого протокола L2TP/IPsec.
- Скопируйте имя узла DDNS (идентификатор, который заканчивается на «.opengw.net») или IP-адрес (цифровое значение xxx.xxx.xxx.xxx) и введите его в поле Сервер на экране конфигурации.
Примечание
Рекомендуется использовать имя DDNS – его можно продолжать использовать, даже если соответствующий DDNS IP-адрес в будущем изменится. Тем не менее, в некоторых странах у вас не получиться использовать имя узла DDNS – в этом случае следует использовать IP-адрес.
- Введите vpn в поля «Учетная запись», «Пароль» и «Общий ключ», затем нажмите «Готово».
Запуск VPN-подключения
- Вы можете в любое время установить новое подключение к VPN-серверу, выбрав необходимую конфигурацию в меню настроек VPN и установив переключатель Статус в положение «Вкл».
- iOS показывает индикатор «VPN» в верхней панели, если VPN-подключение установлено.
- Перейдя в конфигурацию, вы можете получить следующую информацию: назначенный IP-адрес и время подключения.
Интернет без ограничений
Когда соединение установлено, весь сетевой трафик будет проходить через VPN-сервер. Вы также можете перейти на сайт ipinfo.io, чтобы посмотреть глобальный IP-адрес.. Вы сможете увидеть видимое из сети местоположение, которое будет отличаться от вашей фактической локации.
При подключении к VPN вы сможете посещать заблокированные веб-сайты и использовать заблокированные приложения.
Источник
Как подключиться к VPN на Android: 5 простых шагов
Узнайте как подключиться к VPN на Android!
Платформа Андроид, наравне с iOS занимает ведущее место на рынке операционных систем мобильных устройств и гаджетов. Если Вы, являясь обладателем устройства Андроид, хотите загрузить приложение, заблокированное или недоступное в Вашей стране, подключиться к корпоративной сети удаленно или желаете сохранить анонимность при использовании публичной и общедоступной Wi-Fi сети, то Вам может понадобится сервис VPN (виртуальная частная сеть). В этой статье мы расскажем как можно подключиться к VPN на Вашем мобильном устройстве Android за 5 простых шагов, рассмотрим как без лишних затрат денег, удачно выбрать на 100% бесплатный VPN, подходящий Вам.
Как настроить VPN на Android?
В большинстве устройств, работающих на Андроиде, имеется встроенная функция поддержки различных виртуальных серверов. Это дает возможность владельцу VPN легко подключится к удаленному серверу в том случае, если у него уже имеется логин и пароль от учетной записи одной из VPN провайдеров. Не важно что это, дорогой премиальный сервис или же на 100% бесплатный VPN, процесс настройки не займет у Вас много времени.
Для подключения функции виртуального доступа в Интернет на Вашем мобильном устройстве необходимо:
— Зайти в меню настроек устройства и выбрать пункт «Беспроводные сети»,
— Кликнуть на пункте VPN на появившемся экране,
— Справа в верхней части экрана, Вы сможете найти символ «+» или же кнопку «Добавить VPN-профиль» (зависит от версии Андроид),
— Кликните по данной кнопке и затем заполните поля «логин» и «пароль» данными, полученными от VPN провайдера.
— Сохраните всю введенную Вами информацию и выберете из списка созданное VPN-подключение, чтобы получить доступ в Интернет.
Используйте приложения от VPN провайдеров
У некоторых популярных VPN-сервисов имеются специальные мобильные приложения для Android, которые упрощают настройку соединения. Одним из наиболее удобных приложений обладает сервис ExpressVPN. Их мобильные клиенты не только просты в использовании, но и универсальны. Вы можете использовать учетную запись VPN на любом устройстве — Android, iPhone, Windows, Mac, Linux или даже на домашнем роутере. Удобное приложение своим клиентам предлагает также провайдер StrongVPN, приложение которого с большим количеством гибких настроек отлично подходит для опытных пользователей, которым действительно нужен бесплатный уровень онлайн-защиты. У провайдера TunnelBear имеется бесплатная пробная версия, доступная через мобильное приложение, которая даст вам 500 МБ данных для использования в Интернете.
Технология OpenVPN
Операционная система Android не включает в себя встроенную поддержку серверов OpenVPN. Если Вы используете сеть OpenVPN, то может потребоваться установка стороннего приложения. Так, к примеру, приложение OpenVPN Connect, официальное приложение OpenVPN, работает на Android версии 4.0 и выше и при этом не требует проведения на телефоне процедуры root. Чтобы подключиться к сети OpenVPN на устройстве под управлением более старых версий Android, Вам потребуется рутировать свое устройство.
Режим «постоянная VPN»
Начиная с версии Android 4.2, компания Google предусмотрела возможность включения постоянного режима работы VPN на мобильном устройстве. Когда данная опция активна, Андроид будет отправлять данные об активности пользователя только через VPN канал. Это может быть полезным, если Вы используете общедоступную Wi-Fi сеть и при этом хотите, чтобы VPN все время защищал Ваши персональные данные.
Чтобы включить данную опцию, просто нажмите на значок шестеренки («Настройки») рядом с именем VPN подключения, затем переключите ползунок «Постоянная VPN» в режим активности.
Какие VPN лучше всего подойдут для Андроид устройств?
Одним из самых популярных и удобных виртуальных провайдеров является ExpressVPN. Это один из самых простых в настройке сервисов VPN, который поддерживает Андроид, а также обеспечивает высокую скорость соединения.
NordVPN ничем не уступает сервису ExpressVPN. Данный провайдер может похвастаться поистине впечатляющим количеством серверов по всему миру, а также гораздо эффективной системой безопасности и более совершенными протоколами шифрования.
Cyberghost — еще один виртуальный провайдер, отлично подходящий для обладателей Андроид-устройств. Преимущества: большое количество серверов в разных странах мира, широкий функционал безопасности (к примеру блокировка вредоносных программ и надоедливых баннеров), а также доступная цена, в сравнении с конкурентами.
Стоит отметить, что VPN — это не та функция, которая нужна абсолютно всем. На самом деле, большинству пользователей просто не нужно переживать за свою онлайн безопасность, особенно если они не имеют дело с данными, представляющими коммерческую тайну. Однако, если все же такая необходимость возникнет, хорошо бы знать, как пользоваться VPN и как легко настроить его на Андроид. Надеемся, что данная статья дала Вам некоторые представления об этом.
Источник
Разработка VPN-клиента под Android (Часть 1)
Всем привет! Поводом к написанию данной статьи стало осознание того факта, что при наличии большого количества статей и обзоров про приложения VPN-клиенты для Android, нет ни одной нормальной статьи описывающей проблемы разработки с использованием VpnService API. Причём, в большинстве случаев вы, как разработчик приложения, не сможете ничего сделать с этими проблемами.
Начнём с самого начала. Некоторое время назад наша компания, на основе проводимых исследований в области безопасности мобильных устройств, решила выпустить небольшое приложение (WebGuard) под Android для блокировки всем уже надоевшей рекламы, а так же защиты от слежки и вирусов при работе из любого браузера. Чтобы реализовать данный функционал нам потребовалось решить множество задач, самой трудоёмкой из которых оказалась задача по перехвату и обработке трафика приложений. Для перехвата и фильтрации соединений браузеров было решено использовать VpnService API, которое появилось в Android с версии 4.0.3 и предоставляет всю нужную функциональность (правда, временами эта функциональность просто не работает по куче разных причин, но выяснилось это несколько позже).
Немного об используемых технологиях
Тут стоит рассказать подробнее, почему было выбрано данное API и какие вообще способы существуют для перехвата сетевого трафика приложений другим приложением на «нерутованном» android-устройстве. Собственно способов всего три (не считая различных уязвимостей) и знать о них будет полезно разработчикам приложений с различными механизмами внутриигровых покупок. Т. к. многие из них считают, что подмена сетевого трафика приложения возможно только на «рутованном» устройстве и «не заморачиваются» с защитой передаваемых данных, хотя есть вероятность (и довольно большая) появления «читерских» приложений вносящих изменения в передаваемые данные.
Итак, первый способ — это установка локального прокси-сервера. Этим способом пользуется большинство антивирусов под Android. Приложению для перехвата трафика достаточно реализовать поддержку HTTP-прокси описанную в стандарте RFC 2068 и установить в настройках WiFi сети прокси-сервер или APN в настройках мобильной сети. В этом случае передача данных будет происходить как на схеме ниже.
Но у этого способа есть куча серьёзных проблем:
- установить WiFi прокси или APN для мобильной сети программно можно только с использование скрытого API (например скрытые методы в WifiManager);
нужно следить за появлением новых WiFi или мобильных сетей устанавливая прокси (APN) и для них;
данный способ работает только для соединений созданных с помощью класса Http(s)URLConnection и то, если явно не будет указано не использовать прокси (например url.openConnection(Proxy.NO_PROXY)). Есть ещё приложения, которые проверяют наличие прокси-сервера и используют его (или наоборот не используют);
если пользователь удалит или просто не запустит приложение с прокси-сервером, то остальные приложения не смогут соединиться ни с одним сервером т. к. в настройках сети все ещё будет указан прокси и пользователю нужно будет самому удалить его из настроек (например);
Эти все проблемы, кроме последней, успешно решаются вторым способом — написанием приложения VPN-клиента использующего классы VpnService и VpnService.Builder. Приложению достаточно вызвать пару функций (в коде опущены обязательные проверки):
, и весь TCP/IP трафик всех приложений (даже запущенных под root’ом) будет перенаправлен на TUN интерфейс, который создаст Android, а вашему приложению будет доступен на чтение/запись файл устройства /dev/tun (или /dev/tun0, /dev/tun1 и т. п.), откуда можно вычитывать исходящие сетевые пакеты, передавать их на обработку на удалённый VPN-сервер (обычно через шифрованное соединение) и затем записывать входящие сетевые пакеты. Для того, что бы соединения самого VPN-клиента не «заворачивались» в TUN, используется метод VpnService.protect на TCP или UDP сокетах созданных приложением.
Схема, представленная выше, в данном случае будет выглядеть следующим образом:
У этого способа есть две особенности:
- Приложению нужно обязательно получить права на использование VpnService через вызов startActivityForResult, при этом система покажет пользователю такой вот диалог:
Причём, Android запоминает, что выдал права приложению, только до перезагрузки устройства, поэтому после перезагрузки права нужно запрашивать снова. Как выяснилось (мы этого даже не ожидали) есть пользователи («да их тут сотни» ), которые любят перезагружать свой телефон каждые 10 минут и им это окно мешает, за что они в маркете могут оценить приложение в 1 балл;
«Печалька» чуть побольше предыдущей. Android после включения VPN, в обязательном порядке, отображает иконку уведомления в виде ключика и собственно неубираемое уведомление, нажав на которое можно посмотреть небольшую статистику:
Тут недовольство пользователей было ожидаемо, т. к. многие нынешние приложения просто обожают «вешать» уведомления (иногда сразу по несколько) и статус-бар превращается в новогоднюю гирлянду:
Так же, если пользователь нажмёт кнопку «Разъединить» Android отключит VPN и заберёт права у приложения, после чего для активации VPN придётся заново просить права через вызов startActivityForResult.
Есть в этом способе и небольшая дополнительная проблема (не считая «фич» о которых ниже) — для его работы нужен удалённый сервер.
Проблема с наличием сервера решается третьим способом (несколько изменённый способ №2) — приложение VPN-клиент содержит ещё и стек TCP/IP (можно взять готовый или написать самому из-за наличия недостатков в готовых) для разбора трафика из приложений и обработки соединений почти как прокси-сервер. Тогда схема обработки трафика приложений несколько изменится и будет выглядеть следующим образом:
Именно этот способ мы используем в WebGuard. Из недостатков, по сравнению с предыдущим способом, можно отметить только один — это невозможность нормальной обработки протоколов отличных от TCP или UDP (или протоколов «поверх» них), потому что приложению нужно будет создавать «сырые» сокеты для чего обычно нужны права root’а. Чтобы было понятно, о чём идёт речь, возьмём простой пример: пользователь запускает шелл через ADB и выполняет команду «ping www.ya.ru», которая отправляет ICMP эхо-запрос. Далее, приложение VPN-клиент читает из /dev/tun IP пакет, разбирает его, и выясняет что пакет содержит ICMP эхо-запрос к некоему серверу. А так как приложение не может передать запрос далее в сеть, то вариантов у него всего два: игнорировать пакет или эмулировать ping попытавшись установить соединение с нужным сервером и в случае успеха записать поддельный ICMP эхо-ответ в /dev/tun.
«Фичи» VpnService API
В процессе разработки приложения, тестирования и использования первых версий пользователями, мы столкнулись с большим количеством ошибок или недоработок связанных с VpnService API. Часть из них удалось исправить, т. к. по сути это были недоработки наших программистов (о чем мы честно написали и попали на bash.org.ru), а с оставшейся частью сделать что либо довольно сложно или невозможно:
- Нет поддержки TUN интерфейса в ядре linux, соответственно VPN не заработает. В основном эта проблема встречается на самосборных прошивках на основе проектов CyanogenMod, AOSP и др. Авторы сборок либо вообще убирают поддержку из ядра, либо забывают положить модуль tun.ko в прошивку. Такое ощущение, что авторы руководствуются принципом «не знаю что это такое, поэтому не нужно»;
Нет файла VpnDialogs.apk который содержит диалоги запроса прав и статистики, VPN опять же не заработает. Как ни странно, эта ошибка чаще всего случается на официальных сборках от производителей телефонов (и у Google в том числе);
«Зависание» GUI на некоторых телефонах Samsung с официальной прошивкой, если в VPN-клиенте произойдёт необработанное исключение (при этом шелл через ADB вполне рабочий, но переподключается каждые 1-2 минуты). Вообще производители телефонов с Android, иногда собирают к ним «замечательные» прошивки, забыв проверить часть «редко используемого» функционала. Наш коллектив разработчиков в этом плане просто «обожает» Samsung и считает, что для тестирования приложений под Android обязательно нужно иметь несколько телефонов от разных производителей и несколько разных телефонов от Samsung;
Благодаря вот этому изменению пользователь не сможет поставить галочку «я доверяю этому приложению» в диалоге VPN, если его перекрывает другая activity пропускающая нажатия пользователя. Сделано это для того, что бы нельзя было нарисовать сверху другой диалог и обманом заставить пользователя поставить галочку. Проблема в том, что обычно так делают (и уже давно) различные утилиты, лаунчеры и некоторые программы (например «Читай! Бесплатно»), создавая прозрачную activity. В результате некоторые пользователи могут подумать что над ними издеваются;
Если пользователь включит ограничение трафика для фоновых процессов, то «под раздачу» попадёт и работающий VPN-клиент (при отправке данных через сокет будет исключение SecurityException c Permission denied), соответственно кинаинтернета не будет;
В Linux есть такой замечательный механизм, как OOM Killer, и если вдруг пользователь запустит приложение, которое будет «пожирать» большое количество оперативной памяти устройства (для экспериментов можно взять Firefox, вот уж кому памяти всегда мало), OOM Killer начнёт «валить» все подряд пользовательские процессы кроме, как водится, виновника торжества (точнее его убьют последним). Исключений для нужных процессов (лаунчер или VPN-клиент) естественно не предусмотрено, поэтому нужно быть готовыми постоянно перезапускать свой сервис;
После некорректного завершения работы VPN-клиента (даже если он потом перезапустится), в редких случаях, может понадобится перезагрузить устройство т. к. Android неправильно перенастроит маршруты передачи пакетов и пакеты от приложений будут уходить в /dev/null;
Если пользователь включит раздачу мобильного интернета через WiFi одновременно с VPN-клиентом, то на большинстве прошивок, как и в случае выше, Android неправильно настроит маршрутизацию пакетов;
Вот так прочитаешь этот список и подумаешь — а может ну его этот VPN? К сожалению, другого способа перехватывать весь трафик на «нерутованном» телефоне с Android пока что нет.
Немного о NinePatch
В список выше, не попала ещё одна проблема, последствия решения которой были для нас весьма неожиданны (и не только для нас). Поэтому мы решили рассказать о последствиях поподробнее. Началось все с того, что в какой то момент нужно было сделать самую важную часть приложения — нескучную иконку. Сказано — сделано. Красивая круглая иконка нарисована и мы радостно тестируем предрелизную версию, как вдруг:
Выяснилось, что на части телефонов иконка приложения в уведомлении о VPN может очень странно отображаться (неправильная цветность, размеры или ещё что-нибудь). После экспериментов и недолгого, но жаркого обсуждения
, было приказанорешено сделать иконку приложения в формате nine-patch, благо официальная документация по этому поводу ничего не говорит (т. е. не запрещает) и яйцеобразная проблема решается. Но, после выхода релиза очень быстро появились «пострадавшие». Это были как приложения под Android, так и различные онлайн сервисы работающие с apk-файлами, и не ожидающие получить иконку приложения в формате nine-patch. Самых примечательных мы решили расположить на пьедестале из трёх мест:
    3. Различные лаунчеры, которые падали при попытке отобразить иконку (например LauncherPro).
    2. Магазины Android приложений от Samsung и Yandex. При попытке загрузить приложение в Yandex.Store выдавалось вполне понятное описание ошибки: «Не удалось извлечь из APK иконку приложения». C Samsung Apps оказалось веселее. Так как компания высокотехнологичная, то и результаты проверки при добавлении приложения приходят в соответствующем виде — письмо с ссылкой на видео в котором записан процесс тестирования приложения и должно быть видно (по идее) ошибку. Получилось, правда, все как обычно, пришло письмо с ссылкой по которой видео не было.
    1. Ну а почётное первое место, по праву, занимает компания Sony с телефоном Xperia. Через какое то время после выхода релиза, владельцы Xperia L начали присылать сообщения о том, что WebGuard «убил» им телефон (пример). Оказалось, что падает PackageManagerService при попытке обработать иконку приложения во время установки, после чего телефон автоматически перезагружается и идёт бесконечная загрузка:
В итоге, с версии 1.3 было решено использовать иконку без nine-patch, тем более что его использование всех проблем с отображением иконки не решило:
        Уведомление о включении VPN на Ainol Novo10 Hero
Заключение
Нам не хотелось делать слишком большой пост, поэтому было решено разбить статью на несколько частей. В следующей части мы расскажем почему приложения под Android, фильтрующие трафик, потребляют так много заряда аккумулятора (по мнению андроида) и напомним, на примере одного теста производительности, что DalvikVM != JavaVM.
Надеемся наша статья кому-нибудь поможет в написании интересного приложения под Android. Удачной разработки!
Источник