- Одминский блог
- Пытаемся подружить iPhone и Cisco ASA VPN
- IPSec VPN для OS X и iOS. Без боли
- Установка и удаление Cisco VPN Client 3.5 и более поздних версий для Mac OS 10.1
- Параметры загрузки
- Содержание
- Введение
- Предварительные условия
- Требования
- Используемые компоненты
- Условные обозначения
- Установка VPN-клиента
- Расположение профилей пользователей
- Удаление VPN-клиента
Одминский блог
Блог о технологиях, технократии и методиках борьбы с граблями
Пытаемся подружить 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 (нет поддержки сертификатов).
Диалог в 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..
Источник
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 )
- Открыть Настройки → Сеть
- Нажать (+) и выбрать VPN/Cisco IPSec
- Заполнить основную информацию ( адрес, имя пользователя и пароль )
- Выбрать «Настройки аутентификации» и указать группу и PSK ( из файла /etc/racoon/psk.key )
- Подключиться
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.
Заполнить форму по аналогии, подключиться.
Источник
Установка и удаление Cisco VPN Client 3.5 и более поздних версий для Mac OS 10.1
Параметры загрузки
Содержание
Введение
В этом документе приведены пошаговые инструкции по установке и удалению клиента Cisco VPN Client версии 3.5 для компьютера Mac с операционной системой Mac OS 10.1.
Загрузить текущую версию VPN-клиента для операционной системы Mac OS можно в Центре программного обеспечения (только для зарегистрированных пользователей).
Предварительные условия
Требования
Действия, описанные в этом документе, выполняются на жестком диске под управлением операционной системы Mac OS 10.1.
Используемые компоненты
Сведения в этом документе основаны на версиях оборудования и программного обеспечения, указанных ниже.
Cisco VPN Client 3.5
Операционная система MAC OS 10.1
Примечание. Для применения этой конфигурации в системе Mac OS X 10.2 необходимо использовать клиент Cisco VPN Client версии 3.6 или выше. Кроме того, следует учесть, что клиент Cisco VPN Client версии 3.6 для Mac при использовании в операционной системе Mac OS X 10.2 не работает на интерфейсе en1 (плата Apple AirPort WiFi). Дополнительные сведения и временное решение представлены в описании идентификатора ошибки CSCdy4112 (только для зарегистрированных пользователей).
Условные обозначения
Подробные сведения об условных обозначениях см. в документе Условное обозначение технических терминов Cisco.
Установка VPN-клиента
Установка VPN-клиента требует изменения реестра Mac OS 10.1 и должна выполняться в режиме администратора (root).
Для установки VPN-клиента следуйте приведенным ниже указаниям.
Для активации пользователя-администратора и настройки пароля выполните следующие шаги:
Включите режим администратора.
Войдите в систему как обычный пользователь.
Дважды щелкните значок жесткого диска (Hard Drive).
Выберите Applications > Utilities > Netinfo Manager (Приложения > Служебные > Диспетчер сведений о сети).
В диспетчере выберите Domain > Security > Authenticate (Домен > Безопасность > Аутентификация).
Будет запрошен пароль администратора (admin). Администратор – это пользователь, создавший учетную запись администратора.
В диспетчере выберите Domain > Security > Enable Root User (Домен > Безопасность > Разрешить пользователя-администратора).
После разрешения администратора войдите в качестве пользователя-администратора.
Определите местонахождение файла TAR VPN-клиента, загруженного с web-сайта компании Cisco, и дважды щелкните по образу TAR, чтобы его распаковать.
Файлы будут помещены в папку vpnclient на вашем рабочем столе. Эта папка содержит необходимые файлы для установки и удаления VPN-клиента.
В окне терминала перейдите в папку vpnclient, указав после каталога символ «/», например cd \desktop/vpnclient, и нажмите Enter. Затем для установки VPN-клиента в выбранной папке наберите ./vpn_install.
Выберите Applications > Security > Netinfo Manager (Приложения > Безопасность > Диспетчер сведений о сети), затем войдите в раздел Domain > Security > Disable Root User (Домен > Безопасность > Отключить пользователя-администратора) для отключения администратора.
Для отмены аутентификации администратора выберите Domain (Домен) > Security (Безопасность) > Deauthenticate (Отменить аутентификацию).
Выйдите из диспетчера Netinfo Manager.
Перезапустите компьютер Mac и войдите в качестве обычного пользователя. При этом будет запущена служба VPN, установленная вместе с VPN-клиентом.
Расположение профилей пользователей
Можно изменить файл sample.pcf и сохранить его как новый файл в том же месте.
Удаление VPN-клиента
Для удаления VPN-клиента необходимо очистить записи реестра в системе Mac. Также потребуются полномочия администратора. При удалении VPN-клиента выводятся следующие сообщения:
Включите режим администратора. (Процедура совпадает с описанной в шаге 1 раздела Установка VPN-клиента.)
Выполните удаление VPN-клиента.
Отключите режим администратора и отмените для него аутентификацию. (Процедура совпадает с описанной в шагах 4 и 5 раздела Установка VPN-клиента.)
Источник