Apple ipsec vpn client cisco

Одминский блог

Блог о технологиях, технократии и методиках борьбы с граблями

Пытаемся подружить iPhone и Cisco ASA VPN

Сижу работаю. Приходит коллега и жалуется админу что не может со своего iPhone достучаться до офисного VPN который крутится под Cisco ASA. У меня уши естественно насторожились, поскольку до такой степени задротства, чтобы стучаться в офисную сеть со своего iPhone я еще не дошел. Человек ушел, начал ковыряться в телефоне и смотреть. Вообщем по порядку.

Проблема у нас заключалась в том, что соединение проходило полную стадию, кушало пароль и отваливалось. По логам ASA было видно что аутентификация прошла нормально, но дальше соединение рвалось без объяснения причин. Поскольку главный цисковод был в отъезде, то по тем логам, что смогли извлечь, возникло подозрение, что все дело в том, что iPhone и ASA не могут договориться о шифровании.

iPhone OS поддерживает несколько типов VPN шифрования: L2TP, PPTP и Сisco IPSec VPN. Более подробную инфу можно глянуть на сайте Apple. Для подключения к Сisco IPSec VPN версия прошивки должна быть 2.0 и выше. Также поддерживается два вида сертификатов:

Для того чтобы настроить VPN соединение, идем Settings -> General -> Network -> VPN и выбираем Add VPN Configuration. Вбиваем все значения, которые выдает нам одмин, или которые мы знаем сами по себе, после чего говорим сохранить, и включем кнопочку Turn VPN on для того чтобы инициировать VPN соединение. После того, как VPN соединение будет создано, оно появится в главном меню Settings, и когда мы подключены к VPN, VPN иконка высвечивается в статус баре (см. картинко внизу).

Завести можно несколько VPN соединений, но подключение осуществляется к дефолтному, переназначить которок можно в пункте: Settings > General > Network > VPN простым перещелкиванием по соединениям.

Сами протоколы L2TP/IPSec являются теми же VPN протоколами которые используют встроенные клиенты для MacOS и Windows. iPhone VPN клиент для L2TP/IPSec почти идентичен клиенту используемому на MacOS. Поскольку Cisco поддерживает эти протоколы шифрования, то мы имеем возможность подключаться к ASA серверу, используя IPSec. К VPN от Check Point мы можем подключаться, используя протокол L2TP, но речь сейчас не о нем. Как я сказал уже, VPN клиент для iPhone почти идентичен используемому на системах MAC OS, почти да не совсем- у него имеется ряд функциональных ограничений, так сказать несколько кастрированная версия. При настройке Cisco ASA нужно о них помнить. Роемся на оффсайте в поисках документации по цискаридзе, откуда извлекаем на свет информацию об ограничениях и настройке ASA (данные выводы справедливы для iPhone OS 2.0):

  • IKE phase 1—3DES шифрование с хэшированием SHA1 (md5 метод не поддерживается)
  • IPSec phase 2—3DES или AES шифрование с MD5 или SHA методом хэширования
  • PPP Authentication—MSCHAPv2 (официальная поддержка) но PAP, MS-CHAPv1 работает в тестовом режиме
  • Pre-shared key (нет поддержки сертификатов).
Читайте также:  Емкость батареи айфон se 2 поколения

Диалог в Cisco CLI:

ip local pool CLIENT-POOL 192.168.10.128-192.168.10.141 mask 255.255.255.240
crypto ipsec transform-set iPhone esp-3des esp-sha-hmac
crypto ipsec transform-set iPhone mode transport

crypto dynamic-map SYSTEM_DEFAULT_CRYPTO_MAP 10 set transform-set iPhone
crypto map outside_map 65535 ipsec-isakmp dynamic SYSTEM_DEFAULT_CRYPTO_MAP
crypto map outside_map interface outside

group-policy iPhone internal
group-policy iPhone attributes
vpn-tunnel-protocol l2tp-ipsec
address-pools value CLIENT-POOL

tunnel-group iPhone type remote-access
tunnel-group iPhone general-attributes
default-group-policy iPhone
authentication-server-group denlab-RADIUS
tunnel-group iPhone ipsec-attributes
pre-shared-key test
tunnel-group iPhone ppp-attributes
authentication ms-chap-v2
crypto isakmp enable outside
crypto isakmp policy 5
authentication pre-share
encryption 3des
hash sha
group 2
lifetime 86400
crypto isakmp nat-traversal 20

Для того чтобы проверить что iPhone пользователь подключился, используем следующие команды:

show vpn-sessiondb detail remote filter protocol L2TPOverIPSec
или
show vpn-sessiondb detail remote filter protocol L2TPOverIPSecOverNAtT

Теперь попробуем проверить насколько это справедливо для прошивки iPhone 3.0..

Источник

Пример конфигурации «IOS IPSec NAT Transparency с VPN Client»

Параметры загрузки

Содержание

Введение

В этом документе приводится пример конфигурации прозрачного режима NAT (преобразования сетевых адресов) средствами Cisco IOS®. Этот режим позволяет пропускать через NAT или преобразование адресов портов (PAT) трафик IPsec и устраняет множество известных проблем несовместимости между NAT и IPsec.

Предварительные условия

Требования

Для этого документа нет особых требований.

Используемые компоненты

Сведения, содержащиеся в данном документе, касаются следующих версий программного обеспечения и оборудования:

Маршрутизатор Cisco 2621 с выпуском ПО 12.2.13.7T1 или выше

VPN-клиент Cisco VPN Client 3.6.3 (конфигурация не показана)

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

Условные обозначения

Подробные сведения об условных обозначениях см. в документе Условное обозначение технических терминов Cisco.

Настройка

В этом разделе содержатся сведения о настройке функций, описанных в этом документе.

Примечание. Получить дополнительные сведения об используемых в данном документе командах можно при помощи Средства поиска команд (только для зарегистрированных пользователей).

Схема сети

В настоящем документе используется следующая схема сети:

Настройка маршрутизатора

Выполните следующие действия:

Команда show version отображает версию программного обеспечения, используемую коммутатором.

Выполните команду show run.

Проверка

Этот раздел позволяет убедиться, что конфигурация работает правильно.

Интерпретатор выходных данных (OIT), доступный только зарегистрированным пользователям, поддерживает некоторые команды show. Посредством OIT можно анализировать выходные данные команд show.

show crypto isakmp sa – показывает все текущие ассоциации безопасности протокола IKE (Internet Key Exchange, обмен ключами в Интернете) на одноранговом узле.

show crypto ipsec sa – показывает настройки, используемые текущими ассоциациями безопасности.

show crypyo engine connection active – показывает статистику ядра шифрования. Эта команда сообщает число пакетов.

Читайте также:  Медиасервер для apple tv

show crypto engine [brief | configuration] – показывает сводку по конфигурации криптоядер. Эта команда используется в привилегированном режиме EXEC. Эта команда показывает все криптоядра и название продукта AIM-VPN.

show crypto isakmp sa detail nat – показывает подробные сведения о NAT с использованием ассоциаций безопасности ISAKMP.

f_vrf/i_vrf – обращенный наружу экземпляр виртуальной маршрутизации и пересылки (F_VRF) и внутренний экземпляр VRF (I_VRF) в ассоциации безопасности IKE. В случае глобального экземпляра FVRF поле f_vrf показывается пустым.

Поиск и устранение неполадок

Используйте этот раздел для устранения неполадок своей конфигурации.

Команды для устранения неполадок

Интерпретатор выходных данных (OIT), доступный только зарегистрированным пользователям, поддерживает некоторые команды show. Посредством OIT можно анализировать выходные данные команд show.

Примечание. Перед использованием команд debug ознакомьтесь с документом Важные сведения о командах debug.

Эта конфигурация получает сообщения поддержания активности (Keepalive) NAT каждые 20 секунд в соответствии с настройкой.

debug crypto ipsec – показывает данные согласования IPsec на этапе 2.

debug crypto isakmp – показывает процесс согласования по протоколу ISAKMP на этапе 1.

debug crypto engine – показывает зашифрованный трафик.

debug ip packet [detail] – показывает общие отладочные сведения протокола IP и транзакций безопасности с установленными параметрами безопасности IP (IPSO).

debug ip icmp – показывает сведения о транзакциях межсетевого протокола управляющих сообщений (ICMP).

debug crypto ipsec – показывает данные согласования IPsec на этапе 2.

debug crypto isakmp – показывает процесс согласования по протоколу ISAKMP на этапе 1.

debug crypto engine – показывает зашифрованный трафик.

Источник

IPSec VPN для OS X и iOS. Без боли

VPN (англ. Virtual Private Network — виртуальная частная сеть) — обобщённое название технологий, позволяющих обеспечить одно или несколько сетевых соединений (логическую сеть) поверх другой сети (например, Интернет).
© Wikipedia

VPN используется для удаленного подключения к рабочему месту, для защиты данных, для обхода фильтров и блокировок, для выдачи себя за гражданина другой страны и вообще — штука незаменимая. Практически повсеместно в качестве простого средства для организации пользовательского VPN используется всем известный OpenVPN, который использовал и я. Ровно до тех пор, пока у меня не появился Macbook и OS X в придачу. Из-за того, что подход Apple к конфигурации DNS сильно отличается от подхода других *nix-систем, проброс DNS через VPN нормально не работал.

После некоторых исследований у меня получилось два варианта:
— Использование DNS «мимо» VPN, что сильно небезопасно, но решает проблему.
— Использование нативных для OS X VPN-протоколов: PPTP и семейства IPSec.
Разумеется, я выбрал второе и разумеется — IPSec, а не устаревший PPTP.

Настройка Linux ( в моем случае — Arch Linux )

  1. Открыть Настройки → Сеть
  2. Нажать (+) и выбрать VPN/Cisco IPSec
  3. Заполнить основную информацию ( адрес, имя пользователя и пароль )
  4. Выбрать «Настройки аутентификации» и указать группу и PSK ( из файла /etc/racoon/psk.key )
  5. Подключиться

OS X и IPSec

IPSec это не один протокол, а набор протоколов и стандартов, каждый из которых имеет кучу вариантов и опций. OS X поддерживает три вида IPSec VPN:
— IPSec/L2TP
— IKEv2
— Cisco VPN

Читайте также:  Мой айфон нашел сеть

Первый вариант избыточен — какой смысл пробрасывать ethernet-пакеты для пользовательского VPN?
Второй — требует сертификатов и сильно сложной настройки на стороне клиента, что тоже нехорошо.
Остается третий, который называется «Cisco», а на самом деле — XAuth+PSK. Его и будем использовать.

Препарация OS X

После некоторых неудачных попыток настроить VPN на OS X, я полез изучать систему на предмет того, как же именно там работает VPN.
Недолгий поиск дал мне файлик /private/etc/racoon/racoon.conf, в котором была строчка include «/var/run/racoon/*.conf»;.
После этого все стало понятно: при нажатии кнопки OS X генерирует конфиг для racoon и кладет его в /var/run/racoon/, после окончания соединения — удаляет. Осталось только получить конфиг, что я и сделал, запустив скрипт перед соединением.

Внутри я нашел именно ту информацию, которой мне не хватало для настройки сервера: IPSec proposals. Это списки поддерживаемых клиентом ( и сервером ) режимов аутентификации, шифрования и подписи, при несовпадении которых соединение не может быть установлено.
Итоговый proposal для OS X 10.11 и iOS 9.3 получился таким:
encryption_algorithm aes 256;
hash_algorithm sha256;
authentication_method xauth_psk_server;
dh_group 14;

Выбор VDS и настройка VPN

Для VPN-сервера я выбрал VDS от OVH, поскольку они дают полноценную виртуализацию с возможностью ставить любое ядро с любыми модулями. Это очень важно, поскольку ipsec работает на уровне ядра, а не пользователя, как OpenVPN.
Режим «Cisco VPN» (XAuth + PSK) предполагает двухэтапную аутентификацию:
— Используя имя группы и PSK для нее ( этап 1 )
— Используя имя пользователя и пароль ( этап 2 )

Настройка racoon

racoon — демон, который занимается управлением ключами ( IKE ). Именно он дает ядру разрешение на провешивание туннеля после того, как аутентифицирует клиента и согласует все детали протокола ( aka proposal ). racoon входит в стандартный пакет ipsec-tools и есть практически в любом дистрибутиве Linux «из коробки».

Используя случайные 64 бита группы и 512 бит ключа, я получаю достаточно вариантов, чтоб сделать перебор бессмысленным.

Настройка Linux

— Необходимо разрешить маршрутизацию: sysctl net.ipv4.ip_forward=1
— Необходимо разрешить протокол ESP и входящие соединения на порты 500/udp и 4500/udp: iptables -t filter -I INPUT -p esp -j ACCEPT; iptables -t filter -I INPUT -p udp —dport 500 -j ACCEPT; iptables -t filter -I INPUT -p udp —dport 4500 -j ACCEPT
— Необходимо включить NAT для нашей сети: iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j MASQUERADE
— Необходимо создать группу и создать/добавить туда пользователей: groupadd vpn и useradd -G vpn vpn_user
— Необходимо запустить racoon: racoon -vF

Настройка OS X

Настройки → Сеть

Выбрать (+) → VPN → Cisco IPSec → придумать название

Выбрать соединение → ввести адрес сервера, имя пользователя и пароль

Выбрать «Настройки аутентификации» → ввести имя группы и ключ ( именно в таком порядке )

Настройка iOS

Настройки → Основные → VPN → Добавить конфигурацию VPN.

Заполнить форму по аналогии, подключиться.

Источник

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