Ipsec xauth psk android

Mikrotik IPSec + Android PSK XAuth

quick and dirty, по мотивам https://wiki.mikrotik.com/wiki/Manual:IP/IPsec :

/ip ipsec peer
add name=mobile passive=yes
/ip ipsec profile
set [ find default=yes ] enc-algorithm=camellia-192,aes-128,3des
/ip ipsec proposal
set [ find default=yes ] enc-algorithms=camellia-192,aes-128-cbc,3des
/ip pool
add name=ipsec ranges=private.ip.range/mask #ip range, «выдаваемый» подключенным клиентам
/ip ipsec mode-config
add address-pool=ipsec name=responder split-include=net1/mask1,net2/mask2 #сети, которые доступны из туннеля

/ip ipsec identity
add auth-method=pre-shared-key-xauth generate-policy=port-strict mode-config=responder password=pwd1 peer=mobile secret=secretkeyword username=uname1

/ip address
add address=net1.ip/mask1 interface=ether1 network=net1
add address=net2.ip/mask2 interface=ether1 network=net2
add address=external.ip/mask interface=ether1 network=external.net
/ip dns
set servers=ns1,ns2,ns100

/ip firewall filter
add action=accept chain=input comment=»ESTABLISHED, RELATED» connection-state=established,related
add action=accept chain=input src-address=x.x.x.x/xx
add action=accept chain=input protocol=icmp
add action=accept chain=input comment=ipsec dst-port=4500,500 protocol=udp
add action=accept chain=input protocol=ipsec-esp
add action=accept chain=input protocol=ipsec-ah
add action=accept chain=forward
add action=drop chain=input

/ip firewall nat
add action=src-nat chain=srcnat dst-address=net1/mask1 src-address=private.ip.range/mask to-addresses=net1.ip
add action=src-nat chain=srcnat dst-address=net2/mask2 src-address=private.ip.range/mask to-addresses=net2.ip

/ip route
add distance=1 gateway=gw1
add distance=1 dst-address=netX/maskX gateway=gwX

Источник

Ipsec xauth psk android

IPsec — набор протоколов для обеспечения защиты данных, передаваемых по межсетевому протоколу IP, позволяет осуществлять подтверждение подлинности и/или шифрование IP-пакетов. IPsec также включает в себя протоколы для защищённого обмена ключами в сети Интернет. В основном, применяется для организации vpn-соединений.

PPTP (англ. Point-to-Point Tunneling Protocol) — туннельный протокол типа точка-точка, позволяющий компьютеру устанавливать защищённое соединение с сервером за счёт создания специального туннеля в стандартной, незащищённой сети. PPTP помещает (инкапсулирует) кадры PPP в IP-пакеты для передачи по глобальной IP-сети, например Интернет. PPTP может также использоваться для организации туннеля между двумя локальными сетями. РРТР использует дополнительное TCP-соединение для обслуживания туннеля.

L2TP (англ. Layer 2 Tunneling Protocol — протокол туннелирования второго уровня) — в компьютерных сетях туннельный протокол, использующийся для поддержки виртуальных частных сетей. Главное достоинство L2TP состоит в том, что этот протокол позволяет создавать туннель не только в сетях IP, но и в таких, как ATM, X.25 и Frame Relay.[1]

OpenVPN — свободная реализация технологии Виртуальной Частной Сети (VPN) с открытым исходным кодом для создания зашифрованных каналов типа точка-точка или сервер-клиенты между компьютерами. Она позволяет устанавливать соединения между компьютерами, находящимися за NAT-firewall, без необходимости изменения их настроек. OpenVPN была создана Джеймсом Йонаном (James Yonan) и распространяется под лицензией GNU GPL.

Добавление VPN:

  1. Нажмите Главная (домик) , Меню, затем Настройки для открытия приложения «Настройки».
  2. Нажмите Беспроводной доступ и сети > Настройки VPN.
  3. Нажмите Добавить VPN.
  4. Нажмите тип VPN, который следует добавить.
  5. На открывшемся экране выполните инструкции, предоставленные администратором сети, для настройки всех параметров VPN.
  6. Нажмите Меню , затем Сохранить.

Сеть VPN будет добавлена в список на экране настроек VPN.

Подключение к VPN:

  1. Откройте приложение «Настройки».
  2. Нажмите Беспроводной доступ и сети > Настройки VPN.
  3. Добавленные сети VPN отображаются в списке на экране «Настройки VPN».
  4. Нажмите сеть VPN, к которой следует подключиться.
  5. В открывшемся диалоговом окне введите необходимые учетные данные и нажмите Подключить.

После подключения к VPN в строке состояния появится текущее уведомление. При отключении будет получено уведомление, с помощью которого можно вернуться к экрану настроек VPN для повторного подключения.

Отключение от VPN:

Откройте панель уведомлений и нажмите текущее уведомление о подключении VPN.

Изменение подключения к VPN:

  1. Откройте приложение «Настройки».
  2. Нажмите Беспроводной доступ и сети > Настройки VPN.
  3. Добавленные сети VPN отображаются в списке на экране «Настройки VPN».
  4. Нажмите и удерживайте сеть VPN, настройки которой следует изменить.
  5. В открывшемся диалоговом окне нажмите Изменить сеть.
  6. Измените настройки VPN.
  7. Нажмите Меню , затем Сохранить.

Удаление VPN:

  1. Откройте приложение «Настройки».
  2. Нажмите Беспроводной доступ и сети > Настройки VPN.
  3. Добавленные сети VPN отображаются в списке на экране «Настройки VPN».
  4. Нажмите и удерживайте VPN, которую следует удалить.
  5. В открывшемся диалоговом окне нажмите Удалить сеть.
  6. В диалоговом окне с подтверждением удаления сети VPN нажмите кнопку ОК.

Добавление сети VPN:

  1. На главном экране или экране «Приложения» нажмите на значок «Настройки» .
  2. В разделе «Беспроводные сети» нажмите Дополнительно > VPN.
  3. На экране VPN нажмите Добавить сеть VPN.
  4. В появившейся форме введите информацию, полученную у администратора сети.
  5. Нажмите Сохранить.

Сеть VPN будет добавлена в список на экране VPN.

Подключение к сети VPN:

  1. На экране VPN нажмите на название сети VPN.
  2. В открывшемся диалоговом окне введите учетные данные.
  3. Нажмите Подключиться.
Читайте также:  Скрытые фишки клавиатуры андроид

После подключения к сети VPN на экране появятся и останутся значок «Статус» и уведомление. Чтобы отключиться от сети VPN, нажмите на уведомление о подключении к ней.

Изменение подключения к сети VPN:

  1. На экране VPN нажмите и удерживайте название нужной сети.
  2. В открывшемся диалоговом окне нажмите Изменить сеть.
  3. Измените настройки VPN.
  4. Нажмите Сохранить.

Удаление сети VPN:

  1. На экране VPN выберите нужную сеть.
  2. Нажмите и удерживайте название этой сети.
  3. В открывшемся диалоговом окне нажмите Удалить сеть.

Полезные программы:
Сборник полезных программ: Подключение к виртуальным частным сетям (VPN) (Пост #30802112)
VpnROOT — PPTP — Manager (Менеджер VPN соединений)
Fing — Network Tools (Универсальный инструмент для изучения и исследования своей сети.)
Ping & DNS (Еще одна утилита для проверки сети)
OpenVPN для Android (Программа-клиент для подключения к OpenVPN серверу)
AnyConnect ICS+ (VPN-клиент от компании Cisco)
VPN host

Q: Добавил VPN подключение на устройство и теперь недоступна простая разблокировка. Можно ли ее вернуть обратно?
A: Такой возможности нет, это стандартная мера защиты в ОС Android, при добавлении VPN подключения возможность использования простой разблокировки отключается, остается только: Графический ключ, PIN-код и Пароль. Вариант обхода данного ограничения.

Q: Как раздать VPN?

Сообщение отредактировал ahmetov-82 — 28.10.20, 07:56

Подскажите у кого есть успешный опыт настройки VPN подключения с устройства на Android? Добавляю в настройках новое VPN подключение, задаю параметры и пробую подключится, а мне в ответ — «Не удалось подключится. Повторить попытку?» . С компьютера дома подключится могу а с телефона не выходит :help:

Сообщение отредактировал vmaxim — 05.02.13, 17:01

Тоже столкнулся с проблемой, опишу, что делал:

Дома круглосуточно включен Eee901 с WinXP Home, на нем настроил входящее VPN соединение с шифрованием (PPTP) и выключил виндовский файрволл (он все равно особо не нужен). На ADSL роутере настроил port forward для PPTP и клиента для Dynamic DNS, IP у меня динамический.

На коммуникаторе (HTC Legend, Android 2.1) настроил встроенного VPN клиента и жму «подключиться». Все соединяется отлично, с коммуникатора я вижу все ресурсы внутренней сети — могу роутером порулить, например. Но с коммуникатора не ресолвятся интернетовские адреса, если вводить IP — странички открываются.

В настройках VPN на коммуникаторе есть только «Имя сети», «адрес сервера», галочка шифрования и «домены поиска DNS» — туда пробовал и адрес роутера, и компьютера и даже гуглевский 8.8.8.8 вводить — не помогает.

YMA,
Просто в «домены поиска DNS» нужно добавить адрес DNS сервера твого интернет-провайдера, а не адрес твоего роутера и т.д. :yes2:

Сообщение отредактировал klyon — 13.07.10, 00:32

Я так понял на компе сначало надо VPN соеденение создавать? А потом через комуникатор к ниму подключатся?

А если например у меня интеренет обыкновенный без ВПН, как к ниму то поключится, кто смог это сделать выложите плз пошаговое FAQ, заранее благодарен

Kamikadz,
Сразу скажу, что у меня не получилось. Входящее ВПН подключение на компе настроил, настроил брандмауэр, настроил свой роутер. Обычные ПК ко мне присоединяются нормально, а телефон не хочет.

Как настроить входящее ВПН подключение на компе:
Зайти в сетевое окружение, туда где список подключений. Нажать альт, файл — входящее подключение, выбрать пользователей, которым разрешен доступ (у этих пользователей обязательно должен быть пароль), настроить диапазон адресов, которые будут выдаваться пользователям и всё. На ПК, которые будут к тебе подключаться нужно создать исходящее ВПН подключение, ввести сервер (адрес твоего ПК), запустить соединение, ввести логин и пароль пользователя, нажать подключиться.
Важно: у твоего ПК должен быть реальный адрес, то есть он должен пинговаться с интернета.

Источник

VPN везде и всюду: IPsec без L2TP со strongSwan


достаточно сильный лебедь

Если вы когда-либо искали VPN, который будет работать на десктопах, мобильных устройствах и роутерах без установки дополнительного ПО и перепрошивки роутера, вы, вероятно, выбирали между PPTP и L2TP+IPsec. У протокола PPTP имеются проблемы с безопасностью и прохождением через брандмауеры и NAT, так что в 2015 году его уже использовать не стоит, а использование L2TP излишне, т.к. L2 VPN, по моему мнению, для обычного удаленного доступа не нужен практически никогда.

Удивительно, что в интернете не так-то просто можно найти информацию о настройке чего-то помимо L2TP+IPsec в транспортном режиме, учитывая, что это обширный стек протоколов, который можно конфигурировать буквально как душе угодно, поэтому я попытаюсь устранить такое несовершенство мира.

Читайте также:  Escapists 2 android apk

Небольшое введение в мир 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». Нажмите на соединение, введите любые логин и пароль и попробуйте подключиться.

Источник

Оцените статью