- VPN для iPhone
- Организация VPN сервера для использования с iOS устройствами
- Настройка VPN (L2TP/IPsec) для Android, iPhone и iPad. Бесплатные серверы VPN Gate
- Содержание
- Настройка VPN (L2TP/IPsec) для Android
- Предварительная конфигурация
- Важная информация
- Примечание
- Запуск VPN-подключения
- Интернет без ограничений
- Настройка VPN (L2TP/IPsec) для iPhone, iPad
- Предварительная конфигурация
- Важная информация
- Примечание
- Запуск VPN-подключения
- Интернет без ограничений
- VPN везде и всюду: IPsec без L2TP со strongSwan
- Небольшое введение в мир IPsec
- IPsec в Linux
- Переходим к настройке
- Проблемы MTU
- Настройка клиентов
- Windows
- OS X и iOS
- Android
VPN для iPhone
Организация VPN сервера для использования с iOS устройствами
Прочитав статью Теплый и ламповый интернет озаботился проблемой поднятия VPN сервера, которым можно пользоваться с iOS устройств.
Для использования OpenVPN нужен Jailbreak. Этот вариант мной не рассматривался.
iOS поддерживает L2TP, PPTP, Cisco IPSec.
Cisco IPSec работает с соответствующим оборудованием. PPTP иногда режется сотовыми операторами. Исходя из этого был выбран L2TP.
У меня уже был VQ7 сервер от Hetzner с установленной Ubuntu 12.04 32 bit, поэтому все эксперименты проводились на данном сервере.
Установка IPSec
При установке будет предложено создать сертификат x509. Это не обязательно, так как доступ будет использоваться по ключевой фразе.
Настройка IPSec:
Конфигурация выглядит следующим образом:
Конфигурируем доступ к серверу по IPSec:
Файл должен содержать одну строчку:
Ссылка на pre-shared ключ должна быть удалена, иначе IPSec не сможет инициализироваться.
YOUR.SERVER.IP.ADDRESS в обоих файлах — IP адрес вашего сервера.
%any в /etc/ipsec.secrets определяет с каких адресов может быть доступ. В данном случае разрешается доступ со всех адресов.
YourSharedSecret — ключ, который будет использоваться для доступа по IPSec.
Для того, чтобы IPSec нормально работал, делаются дополнительные настройки:
Первые две строчки на самом деле используются для L2TP
Делаем скрипт исполняемым:
Добавляем его в rc.local
Установка L2TP:
Настройка L2TP:
test — имя пользователя
l2tpd — имя сервиса из /etc/ppp/options.xl2tpd
testpassword — пароль для пользователя
* — диапазон разрешенных адресов для логина данного пользователя (формат 10.254.253.128/25)
После этого рестарт IPSec и L2TPD должны активировать всю систему:
Настройка iPhone:
Настройки > Основные > VPN > Добавить конфигурацию VPN.
Описание — Имя подключения
Сервер — IP адрес вашего сервера
Учетная запись — это user из файла /etc/ppp/chap-secrets
Пароль — password из /etc/ppp/chap-secrets
Общий ключ — YourSharedSecret из /etc/ipsec.secrets
После этого в меню Настройки и в меню Настройки > Основные > VPN появляется возможность включить VPN. Если все пройдет успешно, то появится соответствующий значок.
VPN надо будет включать вручную, при каждом использовании.
Настройка подключения в Windows 7
В центре управления сетями и общим доступом, установка нового подключения к сети создание нового подключения:
Создаете новое VPN подключение:
В поле “интернет адрес” вводите IP вашего сервера. Не подключаетесь сразу.
После этого заходите в свойства нового подключения и в настройках указываете использование L2TP, вводите ключ YourSharedSecret из /etc/ipsec.secrets
При подключении указываете логин и пароль из /etc/ppp/chap-secrets.
При написании статьи были использованы материалы ссылка1, ссылка2
Источник
Настройка 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 везде и всюду: IPsec без L2TP со strongSwan
достаточно сильный лебедь
Если вы когда-либо искали VPN, который будет работать на десктопах, мобильных устройствах и роутерах без установки дополнительного ПО и перепрошивки роутера, вы, вероятно, выбирали между PPTP и L2TP+IPsec. У протокола PPTP имеются проблемы с безопасностью и прохождением через брандмауеры и NAT, так что в 2015 году его уже использовать не стоит, а использование L2TP излишне, т.к. L2 VPN, по моему мнению, для обычного удаленного доступа не нужен практически никогда.
Удивительно, что в интернете не так-то просто можно найти информацию о настройке чего-то помимо L2TP+IPsec в транспортном режиме, учитывая, что это обширный стек протоколов, который можно конфигурировать буквально как душе угодно, поэтому я попытаюсь устранить такое несовершенство мира.
Небольшое введение в мир IPsec
Вообще говоря, не совсем правильно называть IPsec VPN. IPsec не предназначен для построения «виртуальных частных сетей», а создан для шифрования или защиты от подмены передаваемых по IP данных. Это специальный слой поверх IP, который, в зависимости от режима и настроек, работает по-разному. В отличие от привычного VPN, который создает новый интерфейс в системе, на который вы, как это чаще всего бывает, назначаете IP-подсеть из диапазона частных адресов (т.е. создаете новый сетевой сегмент), и через который маршрутизируется трафик в зашифрованном виде, IPsec просто шифрует трафик магическим образом между «внешними» интерфейсами сервера и клиента.
В современном IPsec используются:
- Authentication Header (AH) — протокол, обеспечивающий аутентификацию отправителя и целостность данных. Подписывает не только данные пакета, но и все заголовки, кроме изменяемых полей (ToS, TTL, чексумма).
- Encapsulating Security Payload (ESP) — протокол, обеспечивающий аутентификацию, целостность и конфиденциальность
- Security Association (SA) — параметр с настройками шифрования канала
- Internet Key Exchange (IKE и IKEv2) — протокол обмена параметрами, настройками и согласования SA
AH и ESP — транспортные протоколы, инкапсулируемые прямо в IP, имеющие собственные значение для поля Protocol в IP-заголовке. В современном мире, где NAT стоит за NAT у NAT с NAT’ом, следует использовать что-то более привычное, поэтому сейчас повсеместно используется инкапсуляция ESP-пакетов в UDP. AH не поддерживает работу через NAT.
Сам IPsec поддерживает работу в двух режимах:
- Транспортный режим. Подписывает заголовки и данные (если AH) или подписывает и шифрует данные (если ESP) пакета. Не скрывает IP-адрес получателя пакета, если он маршрутизируется. Этот режим используется для связки L2TP+IPsec.
- Туннельный режим. Подписывает (если AH) и еще шифрует (если ESP) весь пакет.
Протокол IKE позволяет проводить аутентификацию клиента с использованием X.509-сертификатов, Pre-Shared Key и Extensible Authentication Protocol (EAP). Поддерживается двухэтапная аутентификация.
Все современные десктопные ОС (Windows Vista/7/8/8.1, OS X, Linux), мобильные устройства (Android, iOS, Windows Phone, Blackberry) и некоторые роутеры поддерживают VPN с использованием IPsec ESP в туннельном режиме и его настройкой через протокол Internet Key Exchange (IKE) версии 1 или 2, а значит IPsec мы именно так и будем настраивать.
Кстати, писать правильно IPsec, но Cisco IPSec.
IPsec в Linux
В OpenVZ есть поддержка IPsec, и она вполне себе годна для запуска L2TP+IPsec, но там что-то явно не так с маршрутизацией на не-локальные интерфейсы. Вероятно, это можно починить добавлением пары правил на хостовую машину, но это довольно проблематично, если у вас нет доступа к ней, как бывает во подавляющем большинстве случаев. Поэтому для OpenVZ необходимо использовать userspace IPsec, который можно собрать параметром —enable-kernel-libipsec
Жизнь со swanctl:
Жизнь без swanctl:
Нам могут потребоваться некоторые модули, которых может не быть в стандартной поставке:
- xauth-noauth — поддельный аутентификатор, позволяет вводить любой логин и пароль. Нужен для iPhone и iPad при аутентификации только по ключам, т.к. там нет возможности отключить аутентификацию по логину и паролю.
- vici — интерфейс для swanctl.
- libipsec — для userspace IPsec (для OpenVZ и, возможно, других контейнеров).
Если вас не смущает необходимость вводить логин и пароль на iPhone, вам не нужен swanctl и вы не собираетесь запускать это все в OpenVZ-контейнере, то и пересобирать ничего не нужно.
К большому сожалению, мейнтейнеры strongSwan в Debian не запаковали ничего из этого (на февраль 2015), поэтому я сделал патчик, который вы можете использовать.
Переходим к настройке
Будем настраивать подключение через IKEv2 (Windows, Linux, Blackberry), IKEv1+XAUTH (iOS, OS X, Android) и IKEv2+EAP-TLS (Windows Phone). Используем ключи, никаких PSK!
Разработчики strongSwan предлагают нам использовать команду «ipsec pki» для генерации ключей, но она настолько же неудобная, насколько и обычный openssl, поэтому я адаптировал Easy-RSA v3 из OpenVPN для генерации как OpenVPN, так и IPsec-совместимых ключей. С ним вы можете использовать одну связку ключей для двух протоколов!
github.com/ValdikSS/easy-rsa-ipsec
Easy-RSA чрезвычайно простой, поддерживать PKI-инфраструктуру с ним одно удовольствие!
Итак, инициализируем PKI и создаем CA, серверный и клиентский ключи. Важно, чтобы название серверного ключа совпадало с FQDN (доменом, проще говоря) вашего сервера!
Ключи сгенерированы. Я добавлял параметр nopass на каждом шагу, чтобы ключи не были защищены паролем (его можно установить позже в любое время).
Теперь нам необходимо скопировать их в нужные директории внутри /etc/ipsec.d/ , чтобы strongSwan нашел их:
Переходим к настройке strongSwan!
Первым делом, указываем наш приватный ключ в /etc/ipsec.secrets
Редактируем конфигурационный файл /etc/ipsec.conf
Как видите, конфигурационный файл состоит из нескольких секций. В секции config setup два закомментированных параметра: strictcrlpolicy = yes будет требовать неистекший лист отзывов для проведения аутентификации клиента, а uniqueids = no позволяет подключаться нескольким клиентам с одним сертификатом одновременно.
Далее идут секции с описаниями подключений. Секция с названием %default описывает подключение по умолчанию, от которого будут наследоваться другие подключения. Здесь устанавливаются следующие параметры:
- dpdaction=clear включает механизм Dead Peer Detection (DPD) и указывает, что нужно забывать о клиенте, если он не отзывался дольше таймаута
- dpddelay=35s — задержка до включения DPD
- dpdtimeout=300s — таймаут для DPD
- fragmentation=yes — включение внутренней фрагментации пакетов. Позволяет использовать IPsec с провайдерами, у которых сломана IP-фрагментация пакетов (привет, мобильный МТС!)
- rekey=no — выключение инициации смены ключей со стороны сервера. Windows это не любит.
- ike — перечень ciphersuites для использования с IKE (т.е. во время установки шифрованного соединения для передачи конфигурационных параметров, в том числе и ключей для установки SA)
- esp — перечень ciphersuites для шифрования трафика
- left и right — случаем все интерфейсы и принимаем всех клиентов
- leftid — указываем наш FQDN. Нужно для сломанного IKEv2 в OS X El Capitan
- leftauth/rightauth=pubkey — используем аутентификацию по ключам
- leftsubnet — подсети, которые мы отправляем клиенту для маршрутизации (весь IPv4 и IPv6-интернет). Уберите IPv6, если не используете его.
- rightsourceip — пул IP-адресов, из которого выдаем адрес клиенту. Уберите IPv6, если не используете его.
- rightdns — IP-адреса DNS-серверов
Давайте разберемся с ciphersuites в ike и esp. Здесь перечислены методы шифрования в порядке убывания приоритета, и их так много из-за того, что некоторые из них могут быть недоступны на каких-то устройствах, например, мобильных. Первым делом идут так называемые AEAD-алгоритмы, т.е. такие шифры, которые не требуют отдельного алгоритма для аутентификации, с убывающей группой Диффи-Хеллмана для реализации Perfect Forward Secrecy (PFS). Это самые быстрые шифры, которые доступны в IPsec. Хоть это и AEAD-режим, в ike должны быть алгоритмы хеширования для процесса хендшейка. Затем идет привычный AES-CBC с группами Диффи-Хеллмана. Клиентам, которые не поддерживают PFS, мы не позволим подключиться.
Если у вас нет модуля xauth-noauth для соединения ikev1-fakexauth , то вы можете заменить его просто на xauth и создать пользователя в /etc/ipsec.secrets , например, с логином и паролем client1:
Теперь у нас есть три подключения: ikev2-pubkey для IKEv2, ikev1-fakexauth для IKEv1 с фейковой проверкой логина и пароля и ikev2-eap-tls — IKEv2+EAP-TLS для Windows Phone. Перезапускаем strongSwan.
Если все верно, вы увидите следующий вывод команды swanctl -L
Проблемы MTU
Из-за особенностей и ошибок в реализации разных IPsec-клиентов, MTU внутри туннеля нельзя угадать заранее, а на Android вообще устанавливается MTU 1500, из-за чего большие пакеты не передаются и вообще ничего не работает. Чтобы нивелировать этот недостаток, достаточно изменять параметр TCP MSS в момент установки TCP-соединения на стороне сервера. Будем использовать значение 1360 для IPv4 и 1340 для IPv6, чтобы размер пакета не превышал 1400 байт внутри туннеля:
На этом настройка сервера закончена. Не забудьте настроить NAT, если вам он нужен!
Настройка клиентов
Алгоритм настройки клиентов в общих чертах заключается в импорте сертификатов из файла *.p12, создании нового подключения с типом IPsec PKI, IPsec XAUTH RSA или IKEv2 (в зависимости от устройства), указания клиентского сертификата и адреса сервера.
Внимание! Нужно вводить именно тот адрес сервера, который вы вводили при создании серверного ключа. Подключиться по другому домену или просто по IP-адресу, если сертификат был сгенерирован на домен, не получится!
Windows
OS X и iOS
Android
Вы можете использовать как IPsec-клиент Android и подключаться по протоколу IKE, так и клиент strongSwan и использовать IKEv2. Клиент strongSwan работает стабильнее и надежно переподключает в случае потери соединения.
Импортируйте сертификат либо через файловый менеджер, либо используя пункт «Установка с SD-карты» в разделе «Безопасность». Перейдите в настройки VPN, создайте новое подключение с типом «IPSec Xauth RSA», в поле «Адрес сервера» впишите, собственно, адрес сервера, в поле «Сертификат пользователя IPSec» и «Сертификат ЦС IPSec» укажите сертификат «client1». Нажмите на соединение, введите любые логин и пароль и попробуйте подключиться.
Источник