Содержание
Использовать OpenVPN подключение на смартфоне или планшете очень просто. Рассмотрим этот процесс поближе. И так, мы настроили OpenVPN сервер в роутере и создали тоннель на ПК. Рассмотрим в каких случаях нам может понадобится VPN тоннель на смартфоне или планшете.Во первых, если вы убежденный параноик то использование VPN тоннеля поможет избежать просмотра/сбора истории сайтов, которые вы посещаете или ваших интересов или воровства ваших паролей в публичных местах (кафе, барах, вокзалах и т.д.) при использовании открытой /гостевой точки доступа. Возможно вы просто не захотите оставлять историю своих посещений в логах чужого роутера, тогда этот вариант для вас. Во вторых, если ваш провайдер мобильного интернета запрещает посещать какие-либо ресурсы (как в моем случае), а домашний интернет не имеет таких ограничений то использование OpenVPN на мобильном устройстве позволит вам посещать любые сайты в обход таких ограничений. Для начала нам понадобится официальный клиент: OpenVPN Connect. Запущенное приложение выглядит так: OpenVPN Connect сообщает о том, что для подключения к серверу требуется конфигурационный файл с расширением .ovpn и предлагается импортировать его из меню. Так же нам предлагают еще два альтернативных способа использования OpenVPN в виде платных сервисов с готовыми серверами за счет которых, видимо, и существует сам проект. Для подключения мобильного устройства к собственному серверу OpenVPN необходимо иметь:
- конфигурационный файл (.ovpn);
- клиентский ключ (client.key);
- клиентский сертификат (client.crt);
- доверенный сертификат (ca.crt);
- ключ Диффи-Хельмана (dh1024.pem).
Все эти файлы можно сложить в папку на SD карте или во внутреннее хранилище устройства. В таком случае, при утере устройства клиентский сертификат придется отозвать, да бы им не смог воспользовался злоумышленник. Или же необходимо шифровать содержимое SD карты, на которой хранятся ключи и сертификаты. Альтернативной возможностью является использование хранилища формата PKCS#12 в виде одного запароленого файла, в котором будут находится все перечисленные выше ключи и сертификаты. Недостатком этого способа является то, что ваше Android устройство потребует обязательного использования защищенного экрана блокировки (PIN-код, графический ключ, и др.). Для тех, кто как и я, не использует защиту на экране блокировки этот способ будет не удобен. Рассмотрим первый вариант настройки. Запускаем OpenVPN Connect и открываем меню, в котором выбираем пункт Import: Далее выбираем Import Profile from SD card: На следующем этапе переходим в каталог с необходимыми файлами и выбираем свой .ovpn: Приложение создаст профиль, который можно будет переименовать вызвав меню по длинному нажатию, и будет готово к подключению: После нажатия кнопки Connect появится предупреждение системы о том, что OpenVPN Connect пытается установить VPN-соединение. На этом этапе необходимо поставить галку и нажать Ok. Должен заметить, такое предупреждение будет появляться каждый раз после перезагрузки устройства. Это особенности системы безопасности Android. Успешно установленное соединение в OpenVPN Connect будет выглядеть следующим образом: Еще добавлю несколько слов о настройках. Здесь можно установить галку на пункте Battery Saver которая позволит приложению ставить VPN-соединение на паузу, когда экран выключен, если в этом есть необходимость. Спасибо за внимание!Здравствуйте, разрешите поделиться своим опытом. Есть приложения критичные к разрывам связи, переподключение происходит мучительно и вообще не всегда. Поставил перед собой цель, сделать прыжки маршрутов и физических подключений прозрачными, что бы связь была постоянной и TCP коннект не рвался. И поможет в этом старый, добрый и ламповый «openvpn». Но установка и настройка — тема давно избитая, трогать её, здесь не планируется.
Что нам нужно:
- Сервер Linux с постоянным IP (vps, vds, dedic или просто домашний)
- Openvpn на сервере и клиенте, настроенные на работу по UDP.
- iproute2 — собственно для фокуса нужна работающая утилита ip на Android.
- Так же потребуется внести изменения в исходный код openvpn-settings c последующий сборкой apk.
Приступим
Начнем с правки «openvpn-settings». Суть в том, что при любом изменении в сетевой конфигурации нативному демону openvpn посылается команда SIGUSR1, что заставляет его отключаться и подключаться по новой. Для наших целей это вред, но нам все равно желательно иметь возможность выполнять некоторые действия при изменении сетевой конфигурации. Кто-то скажет, но ведь есть persist-tun. Отвечаю, работает не так, как хочется, openvpn дергает скрипты «лежать-вставать» каждый раз, когда приходит SIGUSR1. И в принципе отличить по имеющимся переменным перезапуск от старта, без выкрутасов почти не возможно. Это подрывает всю затею, а хочется просто и надежно. Поэтому мы заменим отправку SIGUSR1 на вызов shell скрипта. Скачиваем исходники командой hg clone code.google.com/p/android-openvpn-settings
Открываем файл srcdeschaeuffelhutandroidopenvpnserviceManagementThread.java Находим функцию public void sendSignal(int s) её мы и будем редактировать. Комментируем отправку SIGUSR1 и вставляем вызов нашего скрипта с правами рут. Файл скрипта у нас будет называться точно так же как и файл подключения, но дополненный расширением sh. Должно получится так:
case SIGUSR1: //sendCommand( new SimpleCommand( "signal SIGUSR1" ) ); new Shell( "OpenVPN-Settings-ip-route", String.format( "/system/bin/sh %s.sh", Util.shellEscape(mDaemonMonitor.mConfigFile.getAbsolutePath()) ), Shell.SU ).run(); break;
Всё, можно собирать, подписывать, устанавливать. Перед установкой обязательно деинсталлируйте старый «openvpn-setting» из системы. Далее проверим конфигурации подключения openvpn.
Сервер
На сервере требуется внести директиву float, поскольку мы будем менять физическое соединение, а с ним и IP. Так же сервер должен транслировать внутренний адрес нашего клиента во внешнюю сеть. Для настройки этого мне удобней использовать директивы up и down. up «/bin/sh /etc/openvpn/androidupdown» down «/bin/sh /etc/openvpn/androidupdown» Скрипт должен быть примерно таким:
NATGW="1.2.3.4" # ip с которого будет натится клиент NATDEV="eth0" # интерфейс с которого клиент получает доступ в общую сеть NATNET="10.9.8.0/24" # vpn подсеть, которую надо транслировать во внешний мир sysctl -w net.ipv4.ip_forward=1 ACT="A" [ "down" = "$script_type" ] && ACT="D" iptables -t nat -$ACT POSTROUTING -s $NATNET -o $NATDEV -j SNAT --to-source $NATGW
Клиент
Во первых надо убрать директиву redirect-gateway, если она есть. Но задать up и down с указанием скрипта, который выполнит настройку маршрутов. Если вы помните, мы условились, что имя файла будет повторять имя конфигурации с добавление sh. Да, мы будем вызывать один и тот же скрипт и из демона, и из монитора. Если конфигурация называется «testconfig.ovpn», то пусть будет так: up «/system/bin/sh /sdcard/openvpn/testconfig.ovpn.sh» down «/system/bin/sh /sdcard/openvpn/testconfig.ovpn.sh» Cкрипт
# Общая часть export ANDROID_PROPERTY_WORKSPACE=12,66560 # Может зависеть от устройства export PATH=/system/bin:/system/xbin:$PATH setprop net.dns1 8.8.8.8 # всем известный DNS setprop net.dns2 8.8.4.4 # Сработает только при вызове демоном openvpn. if [ "init" = "$script_context" ]; then ACT="add" [ "down" = "$script_type" ] && ACT="del" ip route $ACT throw $remote_1 table 100 ip route $ACT default dev $dev table 100 ip rule $ACT table 100 pref 1000 fi
Здесь стоит немного пояснить. Мы создаем альтернативную таблицу маршрутизации под номером 100 в которой указываем шлюзом по умолчанию vpn туннель. И добавляем правило маршрутизации, которое заворачивает весь трафик в нашу таблицу под номером 100, раньше чем он попадет в основную таблицу под именем main. В альтернативной таблице есть маршрут, который выталкивает пакеты предназначенные для сервера, обратно в цепочку правил. Далее они попадут в основную таблицу маршрутизации. Там они смогут найти основной маршрут физического соединения. Но, а если не найдут, такое случатся во время реконнектов, то это не страшно. Openvpn может потерпеть некоторое время, но разумеется не вечно. Только сообщения в логах, напомнят об отсутствии связи непродолжительное время. Не забывайте скрипты должны заканчиваться переводом строки. Для разрешения запуска скриптов на Android, необходимо установить «Built-in + script» в «Preferences» которые вызываются по долгому тапу на подключении. Теперь можно пробовать. В результате тестирования оказалось, что некоторые программы сами проверяют состояние сети и пытаются переподключаться во время любых изменений. Тут либо просить авторов исправить ситуацию. Либо самостоятельно де компилировать и исправлять. В любом случае закрытие TCP сессии происходит, не по таймауту, а так как положено. Буду рад любой критике и замечаниям. Желаю стабильного коннекта!
Для работы ОпенВПН нужно будет импортировать специальные конфигурационные файлы. Их можно скачать бесплатно или создать свой собственный vpn сервер.
- Бесплатные — эти файлы доступны в свободном доступе. Большой минус их в том, что ими пользуются много людей. Поэтому их скорость, долговечность и безопасность желает ждать лучшего. Плюс в том, что они бесплатны и вы можете без труда выбрать любую страну.
- Собственный сервер VPN. Вы покупаете свой собственный виртуальный сервер и создаёте на нём свой VPN. Никто кроме Вас не имеет к нему доступа (если вы сами не создадите клиентов). Здесь и скорость хорошая и работает пока вы сами его не удалите. Как создать свой собственный VPN сервер вы можете прочитать здесь.
Содержание
Где бесплатно скачать OpenVPN Config file
Скачать бесплатные файлы конфигурации можно здесь. Обратите внимание, что нужно выбирать сервер, где есть «OpenVPN Config file». Так же стоит обратить внимание на скорость и отдалённость сервера. Чем ближе находиться сервер, тем быстрее будет работать VPN. Для скачивания нажимаем на ссылку «OpenVPN Config file»
На следующей странице нажимаем на первую надпись, которая даст файл конфигурации для UDP протокола или можно взять классический TCP.
Должен скачаться файл следующего типа: vpngate_vpn129648839.opengw.net_udp_1194.ovpn (имя файла у Вас будет другим). Но обязательно должно быть расширение .ovpn
Установка и настройка на Windows
Скачивание и установка
Для начало нужно скачать и установить программу OpenVPN. Скачивать лучше с официального сайта: Скачать OpenVPN
В процессе установки на вопрос «Установить программное обеспечение для данного устройства» нажимаем установить.
По завершение установки, запускаем программу. В правом нижнем углу (в системном трее) появиться значок с программой.
Подключение
Файл с конфигурациями нужно положить в папку программы OpenVPN, сделать этом можно двумя способами:
- Скопировать файл вручную в папку: C:UsersUserOpenVPNconfig (по умолчанию)
- Нажать в трее на иконку с программой правой кнопкой мышки и выбрать меню «Импорт конфигурации», далее указать файл через проводник.
Программа полностью готова к работе. Теперь еще раз кликаем правой кнопкой мыши в трее по значку и выбираем пункт «Подключиться». После этого вылезет меню с «непонятными» строчками — это означает, что программа подключается к выбранному серверу.
После успешного подключения появится информация о том, что подключение прошло успешно, а иконка программы в трее приобретет зеленый цвет
Частые вопросы
Можно ли использовать сразу несколько «прокси файлов»?
Можно скачивать и импортировать несколько конфигурационных файлов. Тогда при подключении появится возможность подключиться к тому VPN, который вам нужен.
Ошибка во время подключения OpenVPN.
Если в процессе подключения мы получили ошибку, то нужно попробовать подключиться еще раз. Если на второй попытке произошла та же ошибка, то скорее всего прокси не рабочий. Нужно скачать новый файл конфигурации, после чего заново подключиться.
Как удалить конфиг файлы из OpenVPN клиента
Бывает такое, что при использовании разных конфиг файлов, их очень много накапливается. Получается длинный список, в котором можно легко запутаться. Для того чтобы удалить старые, не нужные файлы, перейдите в Настройки ⇒ Расширенные. Здесь вы увидите путь к папке, где хранятся файлы конфигурации. Перейдите в неё и удалите всё ненужное.
Подключение VPN на iPhone (ios)
Нужно скачать и установить клиент «OpenVPN», скачать его можно здесь: скачать OpenVPN для ios
Установив клиент, нужно в него перенести файл настроек. Сделать это можно несколькими способами:
- С помощью мессенджеров (viber, wathsapp, telegram). Просто отправьте себе на телефон сообщение, в котором прикрепите файл с настройками.
- Подключить телефон к компьютеру и перекинуть файл с настройками.
Первый способ.
Вы отправляет файл на телефон и открываете его. Затем в правом верхнем углу нажимаете иконку и листая в право нажимаете «ещё»
Затем нажимаем скопировать в «OpenVPN»
Второй способ
Подключаем iPhone к компьютеру или ноутбуку с помощью usb кабеля. Запускаем программу iTunes. Выбираем пункт «Общие файлы». В списке приложения нажимаем на OpenVPN. Перетаскиваем файл в окно «Документы OpenVPN». Нажимаем внизу кнопку «Готово».
Активируем настройки
После импорта настроек, на телефоне заходим в приложение OpenVPN, выбираем «Import Profile» и затем «FILE». Для добавления нажимаем «ADD»
Отмечаем галочкой «Connect after import» и в правом верхнем углу нажимаем «ADD»
Появится надпись: «OpenVPN» запраживает разрешение на добавление конфигураций VPN. Нажимаем «Разрешить». После этого вы автоматически подключитесь к VPN
Для подключения или отключения VPN нужно в приложении нажимать кнопку.
Подключение VPN на android
Нужно скачать и установить клиент «OpenVPN», скачать его можно здесь: скачать OpenVPN для android
Установив клиент, нужно в него перенести файл настроек. Сделать это можно несколькими способами:
- С помощью мессенджеров (viber, wathsapp, telegram). Просто отправьте себе на телефон сообщение, в котором прикрепите файл с настройками.
- Подключить телефон к компьютеру и перекинуть файл с настройками.
Первый способ.
Вы отправляет на телефон сообщение с файлом настроек. Затем в мессенджере нажимаете на этот файл, и он должен открыться в клиенте OpenVPN. Появится окно с вопросом: Import .ovpn profile? Нажимаем «OK».
Второй способ
Подключаете android устройство к компьютеру или ноутбуку с помощью usb кабеля. Копируете в телефон файл с настройками. Папку можно выбрать любую (например, «Download»).
На телефоне запускаем приложение «OpenVPN». Выбираем раздел «Import Profile» и нажимаем на «FILE» Переходим в папку, куда скопировали настройки (в примере «Download»), выбираем наш файл и нажимаем «IMPORT»
Активация настроек
Когда вы скопируете настройки, нужно нажать «ADD». Далее отметить галочкой «Connect after import» и в правом верхнем углу нажимаем «ADD»
После этого вы автоматически подключитесь к VPN
Для подключения или отключения VPN нужно в приложении нажимать кнопку.
Установка и настройка OpenVPN клиент на Linux
В этом примере мы разберём установку и настройку на Kali Linux. Для начало нужно выполнить команды обновления:
1 |
apt-get update |
apt-get update
1 |
apt-get upgrade |
apt-get upgrade
После всех обновлений переходим к установки клиента. В консоли по порядку вводим следующие команды:
apt-get install network-manager-openvpn-gnomeapt-get install network-manager-pptpapt-get install network-manager-pptp-gnomeapt-get install network-manager-strongswanapt-get install network-manager-vpncapt-get install network-manager-vpnc-gnome/etc/init.d/network-manager restart — эта команда сделает рестарт менеджера сети.
Файл конфигурации с расширением .ovpn помещаем в удобное для вас место. Для примера я создал папку «vpn» и туда поместил файл. В терминале переходим в папку с файлом
cd /root/vpn/
Командой ls можно проверить есть ли там наш файл. Если всё в порядке, то запускаем клиент openvpn с нашими настройками:
openvpn kali.ovpn — где kali.ovpn мой файл с настройками
После этого дожидаемся подключения. Если потребуется имя пользователя(login) и пароль(password) вводим те данные, которые показаны на сайте, где вы брали настройки.
Если всё хорошо, то увидим надпись «Initialization Sequence Completed». Консоль не закрываем, пока работает vpn она должна быть открыта.
Если бесконечно идет подключение проблема скорее всего в сервере, попробуйте использовать другой файл конфигураций VPN.
Используемые источники:
- https://www.creaters.info/2014/10/openvpn-android.html
- https://habr.com/post/157687/
- https://7sof.ru/programmi/kak-ustanovit-i-nastroit-openvpn.html