Туннель IKEv2 между участками ASA и примеры конфигурации маршрутизатора – Cisco

Туннель IKEv2 между участками ASA и примеры конфигурации маршрутизатора - Cisco Сертификаты
Содержание
  1. Введение
  2. Выбор идентификатора isakmp на asa
  3. Выбор идентификатора isakmp на маршрутизаторах
  4. Выделение ресурсов в режиме мультиконтекста на asa
  5. Импорт сертификатов и настройка ipsec mikrotik
  6. Использование клиента charon-cmd для разовых подключений
  7. Используемые компоненты
  8. Как настроить ike2 ipsec на mikrotik с авторизацией по psk?
  9. Конфигурация strongswan
  10. Настройка windows с помощью графических инструментов
  11. Настройка маршрутизации трафика и списка ресурсов
  12. Отладка на asa
  13. Отладка на маршрутизаторе
  14. Подключение из android
  15. Подключение из ios
  16. Подключение из macos
  17. Подключение из windows
  18. Проверка
  19. Проверка идентификатора isakmp на asa
  20. Проверка идентификатора isakmp на маршрутизаторах
  21. Проверка списка отозванных сертификатов
  22. Проверка цепочки сертификатов
  23. Проверка этапа 1
  24. Проверка этапа 2
  25. Размер полезных данных аутентификации
  26. Родственные продукты
  27. Управление strongswan как службой
  28. Шаг 1 — установка strongswan
  29. Шаг 2 — создание центра сертификации
  30. Шаг 3 — генерирование сертификата для сервера vpn
  31. Шаг 4 — настройка strongswan
  32. Шаг 5 — настройка аутентификации vpn
  33. Шаг 6 — настройка брандмауэра и переадресации ip ядра
  34. Шаг 7 — тестирование подключения vpn на windows, macos, ubuntu, ios и android
  35. Заключение

Введение

Виртуальная частная сеть (VPN) позволяет выполнять защищенное шифрование трафика, передаваемого через незащищенные сети, например, в кафе, на конференции или в аэропорту.

Internet Key Exchange v2 или IKEv2 — это протокол, который позволяет создавать прямые туннели IPSec между сервером и клиентом. IPSec обеспечивает шифрование сетевого трафика в виртуальных частных сетях IKEv2. IKEv2 изначально поддерживается на ряде платформ (OS X 10.11 , iOS 9.1 , Windows 10) без дополнительных приложений и легко решает проблемы с подключением клиентов.

В этом обучающем руководстве мы настроим сервер IKEv2 VPN с помощью StrongSwan на сервере Ubuntu 20.04. Затем вы узнаете, как подключиться к нему с помощью клиентов Windows, macOS, Ubuntu, iOS и Android.

Выбор идентификатора isakmp на asa

На устройствах ASA идентификатор ISAKMP выбирается глобально с помощью команды crypto isakmp identity:

ciscoasa/vpn(config)# crypto isakmp identity ?
configure mode commands/options:
address  Use the IP address of the interface for the identity
auto   Identity automatically determined by the connection type: IP
address for preshared key and Cert DN for Cert based connections
hostname Use the hostname of the router for the identity
key-id  Use the specified key-id for the identity

По умолчанию командный режим переводится в автоматический режим, а это означает, что устройство ASA определяет согласование ISAKMP по типу соединения:

  • IP-адрес для предварительного общего ключа.
  • Отличительное имя сертификата для аутентификации с помощью сертификата.

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

Выбор идентификатора isakmp на маршрутизаторах

Когда на маршрутизаторах используются туннели IKEv2, локальные идентификаторы, используемые при согласовании, определяются командой identity local в профиле IKEv2:

R1(config-ikev2-profile)#identity local ?
address address
dn    Distinguished Name
email  Fully qualified email string
fqdn   Fully qualified domain name string
key-id  key-id opaque string - proprietary types of identification

По умолчанию маршрутизатор использует в качестве локального идентификатора свой адрес.

Выделение ресурсов в режиме мультиконтекста на asa

Начиная с версии ASA 9.0, устройство ASA поддерживает VPN в режиме мультиконтекста. Однако при настройке сети VPN в режиме мультиконтекста обязательно выделите соответствующие ресурсы в системе, которая будет использовать VPN.

Дополнительные сведения см. в разделе Информация об управлении ресурсами документа Руководство по настройке интерфейса командной строки устройств серии Cisco ASA, 9.0.

Импорт сертификатов и настройка ipsec mikrotik

Импорт сертификатов

Для добавления сертификатов, необходимо перенести их в память вашего MikroTik в раздел Files.

System -> Certificates

Импортируем открытый ключ корневого сертификата вашего центра сертификации на VPS на котором установлен StrongSwan.

Последовательно импортируем открытый и закрытый ключи авторизации используемые в конфигурации StrongSwan.

Настройка клиента IPsec

IP -> IPsec

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

Далее, последовательно настраиваем профиль VPN-клиента.

Вместо “VPS IP” указываем адрес вашего сервера, где развернут StrongSwan.

В разделе IPsec Idenity настраиваем профиль авторизации, указываем учётные данные и сертификат импортированный ранее.

После выполнения этого шага туннель между MikroTik и StrongSwan будет поднят автоматически.

Вывод в разделе Log при успешной авторизации
Вывод в разделе Log при успешной авторизации

В разделе IP -> Addresses при успешной авторизации, появится IP адрес выданный StrongSwan.

Использование клиента charon-cmd для разовых подключений

Чтобы управлять StrongSwan как службой, вам нужно выполнить следующие шаги по настройке.

Сначала обновите свой локальный кэш пакетов с помощью apt

Затем установите StrongSwan и необходимые плагины для аутентификации:

Теперь вам потребуется копия сертификата СА в каталоге /etc/ipsec.d/cacerts, чтобы ваш клиент мог проверить подлинность сервера. Запустите следующую команду, чтобы скопировать файл ca-cert.pem в каталог:

На этом этапе вы можете подключиться к серверу VPN с помощью charon-cmd, используя сертификат СА сервера, IP-адрес сервера VPN и настроенное имя пользователя.

Запустите следующую команду для подключения к VPN в любое время:

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

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

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

  • Устройство Cisco ASA 5510 Adaptive Security Appliance с программным обеспечением версии 9.1(3)
  • Маршрутизатор Cisco 2900 Series Integrated Services Router (ISR), работающий под управлением программного обеспечения Cisco IOS версии 15.3(3)M1

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

Как настроить ike2 ipsec на mikrotik с авторизацией по psk?

Привет!

Может я не умею искать, но никак не могу найти ни одного описания по настройке Mikrotik в качестве IKEv2 IPSEC сервера, с авторизацией по паролю.
Именно по паролю.
Не авторизация по сертификатам, которая описывается во всех статьях, которые я нашел.

В данный момент у меня реализован VPN сервер на микротике на основе L2TP IPSEC, но мне нужно организовать маршрутизацию юзеров VPN к определенным подсетям рабочей локалки, в том числе из других городов, не создавая на стороне клиента дефолтный маршрут через VPN сервер, чтобы в интернет юзеры ходили через свой роутер, а не через VPN сервер, и не выдавая юзерам никаких BAT-файлов с ручным прописыванием маршрутов.

Изучив разные типы VPN выбор пал на IKEv2 IPSEC из-за:
1) Поддержка нескольких одновременных подключений VPN за одним NAT’ом
2) Нативная поддержка встроенными клиентами всеми устройствами, и операционными системами, без надобности установки стороннего ПО.
3) Возможность доставки маршрутов до пользователя.

Авторизация по паролю, и категорический отказ от авторизации по сертификатам:
1) Пользователь не должен вообще никак возиться со скачиванием и установкой сертификатов. Он должен ввести свой логин и пароль от корпоративной учетной записи Windows, и все. (ну плюс пароль IPSEC). В данный момент пользователи у меня так авторизуются через RADIUS AD
.
2) Установка соединения должна быть простой, понятной для обычных юзеров настолько, что при подключении к VPN очередного устройства юзер смог бы сам повторить подключение, не вникая в подробности, куда ставить сертификат, и зачем он вообще нужен.

Единственные мануалы и описания, что я нашел в данной связке, это сервер на основе PFSense, но его использовать как я думаю в моей ситуации не очень этично, так как во-первых в парке серверов у нас нет ни одной линукс-машины, кроме астериска, и не планируется. Конечно я пытаюсь на основе настроек PFSense что-то соорудить похожее на Mikrotik, но это не так просто. Да и микротик, который смотрит в интернет, и раздаёт L2TP поддерживает аппаратное шифрование для VPN, и вообще он загружен на 0%, в пике рабочего дня на 1%.

Вообще, даже на официальном сайте гайд по настройке сервера написан именно с сертификатом. https://wiki.mikrotik.com/wiki/Manual:IP/IPsec#Tra… Неужели мне одному интересна авторизация по паролю?)

Думаю, это все же возможно, так как в вики по вышеприведенной ссылке есть раздел
Simple mutual PSK XAuth configuration, который я так понимаю мне как раз и нужен.

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

Про сертификаты:  Введение ТР 042 ЕАЭС, новые требования технических регламентов. Сертификация детского игрового оборудования для площадок -

Конфигурация strongswan

Здесь я рассмотрю только основные конфигурационные файлы StrongSwan, без углубления в настройку данного демона.

/etc/ipsec.conf

config setup
   charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2,  mgr 2"
   uniqueids=never

conn ikev2-vpn
   auto=add
   compress=no
   type=tunnel
   keyexchange=ikev2
   fragmentation=yes
   forceencaps=yes
   dpdaction=clear
   dpddelay=300s
   rekey=no
   left=%any
   leftid=
   leftcert=server-cert.pem
   leftsendcert=always
   leftsubnet=0.0.0.0/0
   right=%any
   rightid=%any
   rightauth=eap-mschapv2
   rightsourceip=10.10.10.0/24
   rightdns=8.8.8.8,8.8.4.4
   rightsendcert=never
   eap_identity=%identity

/etc/ipsec.secrets

Настройка windows с помощью графических инструментов

Вначале импортировать сертификат root, выполнив следующие шаги:

  1. Нажмите WINDOWS R, чтобы открыть диалоговое окно Выполнить и введите mmc.exe, чтобы открыть консоль управления Windows.
  2. Из меню Файл перейдите в раздел Добавить или удалить оснастку, выберите Сертификаты из списка доступных оснасток и нажмите Добавить.
  3. Чтобы разрешить VPN работать для любых пользователей, выберите Учетная запись компьютера и нажмите Далее.
  4. Поскольку мы выполняем настройку на локальном компьютере, выберите пункт Локальный компьютер и нажмите Готово.
  5. Под узлом Корень консоли откройте запись Сертификаты (локальный компьютер), раскройте Доверенные корневые центры сертификации и выберите запись Сертификаты:Настройка сервера IKEv2 VPN с StrongSwan в Ubuntu 20.04

  6. В меню Действие выберите пункт Все задачи и нажмите Импорт, чтобы открыть мастер импорта сертификатов. Нажмите Далее, чтобы пролистать вводное окно.
  7. На экране Импортируемый файл нажмите кнопку Обзор, убедитесь, что вы изменили тип файла с “X.509 Certificate (.cer;.crt)” на “All Files (.) и выберите сохраненный ранее файл ca-cert.pem. Затем нажмите Далее.
  8. Убедитесь, что Хранилище сертификатов имеет значение Доверенные корневые центры сертификации и нажмите Далее.
  9. Нажмите Готово, чтобы импортировать сертификат.

Затем выполните следующие шаги по настройке VPN:

  1. Откройте Панель управления и перейдите в Центр управления сетями и общим доступом.
  2. Нажмите Создание и настройка нового подключения или сети и выберите пункт Подключение к рабочем месту.
  3. Выберите пункт Использовать мое подключение к Интернету (VPN).
  4. Введите данные сервера VPN. Введите доменное имя сервера или IP-адрес в поле Адрес в Интернете, затем введите в поле Имя пункта назначения описание своего соединения VPN. Затем нажмите Готово.

Настройка маршрутизации трафика и списка ресурсов

IP -> Firewall

В разделе NAT создаем правило перенаправления трафика.

В данном случае я использовал списки адресов.

local – подсеть маршрутизатора.

List1 – список сайтов.

Перенаправляем трафик на шлюз(IP адрес выданный StrongSwan)

Настройка списков

IP -> Firewall

В разделе Address Lists необходимо добавить следующие списки:

local – подсеть маршрутизатора, в моем случае 192.168.1.0/24

Отладка на asa

Внимание.  : На ASA можно установить различные уровни отладки; по умолчанию используется уровень 1. При изменении уровня детализация отладки может увеличиться. Делайте это осторожно, особенно в производственных средах!

Отладка ASA для согласования туннеля:

  • debug crypto ikev2 protocol
  • debug crypto ikev2 platform

Отладка ASA для аутентификации с использованием сертификата:

Отладка на маршрутизаторе

Отладка маршрутизатора для согласования туннеля:

  • debug crypto ikev2
  • debug crypto ikev2 error
  • debug crypto ikev2 internal

Отладка маршрутизатора для аутентификации с использованием сертификата:

  • debug cry pki validation
  • debug cry pki transaction
  • debug cry pki messages

Подключение из android

Выполните следующие шаги по импорту сертификата:

  1. Отправьте себе электронное письмо с прикрепленным сертификатом CA. Сохраните сертификат CA в папку «Загрузки».
  2. Загрузите клиент StrongSwan VPN из магазина Play Store.
  3. Откройте приложение. Нажмите значок «подробнее» () в правом верхнем углу и выберите Сертификаты СА.
  4. Снова нажмите значок «подробнее»  в правом верхнем углу. Выберите пункт Импорт сертификата.
  5. Найдите файл сертификата CA в папке «Загрузки» и выберите его для импорта в приложение.

Теперь сертификат импортирован в приложение StrongSwan, и вы можете настроить соединение VPN следующим образом:

Подключение из ios

Чтобы настроить соединение VPN на устройстве iOS, выполните следующие действия:

  1. Отправьте себе электронное письмо с прикрепленным корневым сертификатом.
  2. Откройте электронное письмо на устройстве iOS, нажмите на вложенный файл сертификата, затем нажмите Установить и введите код доступа. После установки нажмите Готово.
  3. Откройте НастройкиОбщиеVPN и нажмите Добавить конфигурацию VPN. После этого откроется экран конфигурации подключения VPN.
  4. Нажмите Тип и выберите IKEv2.
  5. В поле Описание введите короткое имя подключения VPN. Вы можете выбрать все, что угодно.
  6. В поле Server (сервер) и Remote ID (удаленный идентификатор) введите доменное имя или IP-адрес сервера. Поле Local ID (локальный идентификатор) нельзя оставлять пустым.
  7. Введите имя пользователя и пароль в разделе Аутентификация, а затем нажмите Готово.
  8. Выберите соединение VPN, которое вы только что создали, нажмите переключатель вверху страницы, и подключение будет установлено.

Подключение из macos

Выполните следующие шаги по импорту сертификата:

  1. Дважды щелкните файл сертификата. Откроется экран «Keychain Access» с диалоговым окном, где будет указано: «Keychain Access is trying to modify the system keychain. Enter your password to allow this».
  2. Введите свой пароль и нажмите Modify Keychain
  3. Дважды щелкните импортированный сертификат VPN. После этого откроется небольшое окно свойств, где вы сможете указать уровни доверия. Укажите для параметра IP Security (IPSec) значение Always Trust (всегда доверять), после чего вам нужно будет снова ввести пароль. Настройка будет сохранена автоматически после ввода пароля.

После импорта и подтверждения надежности сертификата настройте подключение к VPN, выполнив следующие шаги:

Подключение из windows

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

Примечание. Эти инструкции протестированы на установках Windows 10, использующих версии 1903 и 1909.

Проверка

Воспользуйтесь данным разделом для проверки правильности функционирования вашей конфигурации.

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

Эти команды работают и на ASA, и на маршрутизаторах:

  • show crypto ikev2 sa – Отображает состояние этапа 1 Security Association (SA).
  • show crypto ipsec sa- Отображает состояние этапа 2 SA.

    Примечание. В этих выходных данных, в отличие от IKEv1, для значения группы Perfect Forwarding Secrecy (PFS) Diffie-Hellman (DH) отображается «(PFS) (Y/N): N, DH group: none» ((PFS) (Да/нет): N, группа DN: нет) во время первого согласования туннеля; после повторного введения отображается правильное значение. Несмотря на то что это поведение описано в ошибке Cisco с идентификатором CSCug67056, это не дефект.

    Различие между IKEv1 и IKEv2 состоит в том, что в IKEv2 дочерние SA создаются в рамках самого обмена AUTH. Группа DH, настроенная в данной криптографической карте, используется только во время повторного ввода. Таким образом сообщение «PFS (Y/N): N, DH group: none» (PFS (Да/нет): N, группа DH: нет) отображается до первого повторного ввода. При использовании IKEv1 отмечается другое поведение, поскольку создание дочерних SA происходит во время быстрого режима, а в сообщении CREATE_CHILD_SA предусмотрена возможность передачи полезных данных Key Exchange, в которых указаны параметры DH для получения нового общего секретного ключа.

Проверка идентификатора isakmp на asa

Удаленная проверка идентификатора выполняется автоматически (она определяется типом соединения) и не может быть изменена. С помощью команды peer-id-validate проверку можно включать или отключать для отдельных групп туннелей:

ciscoasa/vpn(config-tunnel-ipsec)# peer-id-validate ?
tunnel-group-ipsec mode commands/options:
cert   If supported by certificate
nocheck Do not check
req   Required

Проверка идентификатора isakmp на маршрутизаторах

Ожидаемый идентификатор однорангового узла также настраивается вручную в том же профиле с помощью команды match identity remote:

R1(config-ikev2-profile)#match identity remote ?
address IP Address(es)
any   match any peer identity
email  Fully qualified email string [Max. 255 char(s)]
fqdn   Fully qualified domain name string [Max. 255 char(s)]
key-id  key-id opaque string

Проверка списка отозванных сертификатов

 В списке отозванных сертификатов (CRL) приводятся сертификаты, которые были выпущены и впоследствии отозваны данным CA. Сертификаты могут отзываться по ряду причин:

  •  Сбой или взлом устройства, которое использует данный сертификат.
  • Компрометация пары ключей, используемой данным сертификатом.
  • Ошибки в выпущенном сертификате, такие как неправильный идентификатор или необходимость выполнить изменение имени.

Механизм, используемый для отзыва сертификатов, зависит от CA. Отозванные сертификаты представлены в списке CRL своим серийным номерам. Если сетевое устройство пытается проверить действительность сертификата, оно загружает и просматривает текущий список CRL в поисках серийного номера представленного сертификата.

Про сертификаты:  Виды наказания за отсутствие маркировки

Дополнительные сведения о списке CRL см. в разделе Что такое CRL документа Настройка инфраструктуры открытых ключей, выпуск Cisco IOS XE 3S.

Проверка цепочки сертификатов

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

crypto map outside-map 1 set trustpoint ios-ca chain

Если этого не сделать, то туннель будет согласовываться, только когда отвечающей стороной будет устройство ASA. Если оно является инициатором, произойдет сбой туннеля и маршрутизатор выведет следующие данные отладки:

2328304: Jun 8 19:14:38.051 GMT: IKEv2:(SESSION ID = 14607,SA ID = 68):
Get peer's authentication method
2328305: Jun 8 19:14:38.051 GMT: IKEv2:(SESSION ID = 14607,SA ID = 68):
Peer's authentication method is 'RSA'
2328306: Jun 8 19:14:38.051 GMT: IKEv2:(SESSION ID = 14607,SA ID = 68):
SM Trace-> SA: I_SPI=E4368647479E50EF R_SPI=97B2C8AA5268271A (R) MsgID = 1
CurState: R_VERIFY_AUTH Event: EV_CHK_CERT_ENC
2328307: Jun 8 19:14:38.051 GMT: IKEv2:(SESSION ID = 14607,SA ID = 68):
SM Trace-> SA: I_SPI=E4368647479E50EF R_SPI=97B2C8AA5268271A (R) MsgID = 1
CurState: R_VERIFY_AUTH Event: EV_VERIFY_X509_CERTS
2328308: Jun 8 19:14:38.051 GMT: CRYPTO_PKI: (A16A8) Adding peer certificate
2328309: Jun 8 19:14:38.055 GMT: CRYPTO_PKI: Added x509 peer certificate -(1359) bytes
2328310: Jun 8 19:14:38.055 GMT: CRYPTO_PKI: ip-ext-val: IP extension validation
not required
2328311: Jun 8 19:14:38.055 GMT: CRYPTO_PKI: create new ca_req_context type
PKI_VERIFY_CHAIN_CONTEXT,ident 4177
2328312: Jun 8 19:14:38.055 GMT: CRYPTO_PKI: (A16A8)validation path has 1 certs
2328313: Jun 8 19:14:38.055 GMT: CRYPTO_PKI: (A16A8) Check for identical certs
2328314: Jun 8 19:14:38.055 GMT: CRYPTO_PKI : (A16A8) Validating non-trusted cert
2328315: Jun 8 19:14:38.055 GMT: CRYPTO_PKI: (A16A8) Create a list of suitable
trustpoints

2328316: Jun 8 19:14:38.055 GMT: CRYPTO_PKI: Unable to locate cert record by
issuername

2328317: Jun 8 19:14:38.055 GMT: CRYPTO_PKI: No trust point for cert issuer,
looking up cert chain

2328318: Jun 8 19:14:38.055 GMT: CRYPTO_PKI: (A16A8) No suitable trustpoints found
2328319: Jun 8 19:14:38.059 GMT: IKEv2:(SESSION ID = 14607,SA ID = 68):: Platform
errors

2328320: Jun 8 19:14:38.059 GMT: IKEv2:(SESSION ID = 14607,SA ID = 68):SM Trace-> SA:
I_SPI=E4368647479E50EF R_SPI=97B2C8AA5268271A (R) MsgID = 1 CurState:
R_VERIFY_AUTH Event: EV_CERT_FAIL
2328321: Jun 8 19:14:38.059 GMT: IKEv2:(SESSION ID = 14607,SA ID = 68):Verify cert
failed
2328322: Jun 8 19:14:38.059 GMT: IKEv2:(SESSION ID = 14607,SA ID = 68):
SM Trace-> SA: I_SPI=E4368647479E50EF R_SPI=97B2C8AA5268271A (R) MsgID = 1 CurState:
R_VERIFY_AUTH Event: EV_AUTH_FAIL
2328323: Jun 8 19:14:38.059 GMT: IKEv2:(SESSION ID = 14607,SA ID = 68)
:Verification of peer's authentication data FAILED

Проверка этапа 1

Эта процедура проверяет действия, выполняемые на этапе 1:

  1. Введите на данном маршрутизаторе команду show crypto ikev2 sa:

    R1#show crypto ikev2 sa
    IPv4 Crypto IKEv2 SA 

    Tunnel-id Local        Remote       fvrf/ivrf  Status 
    1     172.16.1.1/500   172.16.1.2/500   none/none  READY  
    Encr: AES-CBC, keysize: 256, Hash: SHA96, DH Grp:14, Auth sign: RSA,
    Auth verify: RSA
    Life/Active Time: 86400/53 sec
    IPv6 Crypto IKEv2 SA 

  2. Введите на ASA команду show crypto ikev2 sa:
    ciscoasa/vpn(config)# show crypto ikev2 sa

    IKEv2 SAs:

    Session-id:138, Status:UP-ACTIVE, IKE count:1, CHILD count:1

    Tunnel-id Local        Remote   Status  Role
    45926289 172.16.1.2/500   172.16.1.1/500   READY  INITIATOR
    Encr: AES-CBC, keysize: 256, Hash: SHA96, DH Grp:14, Auth sign: RSA,
    Auth verify: RSA
    Life/Active Time: 86400/4 sec
    Child sa: local selector 192.168.0.0/0 - 192.168.0.255/65535
    remote selector 172.16.2.0/0 - 172.16.2.255/65535
    ESP spi in/out: 0xa84caabb/0xf18dce57

Проверка этапа 2

Эта процедура описывает, как проверить правильность согласования индекса Security Parameter Index (SPI) на двух узлах:

  1. Введите на данном маршрутизаторе команду show crypto ipsec sa | i spi:

    R1#show crypto ipsec sa | i spi 
    current outbound spi: 0xA84CAABB(2823596731)
    spi: 0xF18DCE57(4052602455)
    spi: 0xA84CAABB(2823596731)
  2. Введите на ASA команду show crypto ipsec sa | i spi:
    ciscoasa/vpn(config)# show crypto ipsec sa | i spi
    current outbound spi: F18DCE57
    current inbound spi : A84CAABB
    spi: 0xA84CAABB (2823596731)
    spi: 0xF18DCE57 (4052602455)

Эта процедура описывает, как проверить, проходит ли трафик через туннель:

  1. Введите на данном маршрутизаторе команду show crypto ipsec sa | i pkts:

    R1#show crypto ipsec sa | i pkts
    #pkts encaps: 21, #pkts encrypt: 21, #pkts digest: 21
    #pkts decaps: 30, #pkts decrypt: 30, #pkts verify: 30
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0
    #pkts not decompressed: 0, #pkts decompress failed: 0
  2. Введите на ASA команду show crypto ipsec sa | i pkts:
    ciscoasa/vpn(config)# show crypto ipsec sa | i pkts
    #pkts encaps: 4, #pkts encrypt: 4, #pkts digest: 4
    #pkts decaps: 4, #pkts decrypt: 4, #pkts verify: 4
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 4, #pkts comp failed: 0, #pkts decomp
    failed: 0

Размер полезных данных аутентификации

Если для аутентификации используются сертификаты (а не предварительные общие ключи), объем полезных данных аутентификации будет значительно больше. Обычно это ведет к фрагментации, из-за которой аутентификация может завершиться ошибкой, если какой-либо фрагмент будет потерян или отброшен в пути. Если туннель не формируется из-за размера полезных данных аутентификации, это чаще всего связано со следующими причинами:

  1. Контроль уровня управления на маршрутизаторе, который мог бы заблокировать пакеты.
  2. Неправильное согласование значения MTU, которое может быть исправлено с помощью команды crypto ikev2 fragmentation mtu size.

Родственные продукты

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

  •  Устройство Cisco ASA, работающее под управлением ПО 8.4(1) или более поздней версии
  • Маршрутизатор Cisco ISR Generation 2 (G2), работающий под управлением программного обеспечения Cisco IOS 15.2(4)M или более поздней версии
  • Маршрутизаторы Cisco ASR 1000 Series Aggregation Services Router, работающие под управлением программного обеспечения Cisco IOS-XE 15.2(4)S или более поздней версии
  • Маршрутизаторы Cisco Connected Grid Router, работающие под управлением программного обеспечения 15.2(4)M или более поздней версии

Управление strongswan как службой

Чтобы управлять StrongSwan как службой, вам нужно выполнить следующие шаги по настройке.

Сначала обновите свой локальный кэш пакетов с помощью apt

Затем установите StrongSwan и необходимые плагины для аутентификации:

Теперь вам потребуется копия сертификата СА в каталоге /etc/ipsec.d/cacerts, чтобы ваш клиент мог проверить подлинность сервера. Запустите следующую команду, чтобы скопировать файл ca-cert.pem в каталог:

Чтобы убедиться, что VPN работает только по запросу, используйте systemctl для автоматического отключения StrongSwan:

Затем настройте имя пользователя и пароль, которые вы будете использовать для аутентификации на сервере VPN. Отредактируйте /etc/ipsec.secrets с помощью nano или любого предпочитаемого редактора:

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

/etc/ipsec.conf

Шаг 1 — установка strongswan

Вначале мы установим StrongSwan, демона IPSec с открытым исходным кодом, а затем настроим его как наш сервер VPN. Также мы установим компонент инфраструктуры открытых ключей (PKI), чтобы создать центр сертификации (СА), который будет предоставлять учетные данные для нашей инфраструктуры.

Начните с обновления кэша локальных пакетов:

Затем установите программное обеспечение с помощью следующей команды:

Дополнительный пакет libcharon-extauth-plugins используется для обеспечения возможности аутентификации различных клиентов для вашего сервера с помощью общего имени пользователя и кодовой фразы.

После завершения установки перейдем к созданию сертификатов.

Шаг 2 — создание центра сертификации

Для идентификации на клиентских системах серверу IKEv2 требуется сертификат. Для упрощения формирования требуемого сертификата пакет strongswan-pki включает утилиту pki, которая может сгенерировать центр сертификации и сертификаты сервера.

Для начала создадим несколько каталогов для хранения всех активо, с которыми мы будем работать. Структура каталогов соответствует некоторым каталогам в /etc/ipsec.d, куда мы постепенно переместим все создаваемые элементы:

Затем мы заблокируем разрешения, чтобы другие пользователи не могли видеть наши частные файлы:

Располагая структурой каталогов для хранения всех элементов, мы можем сгенерировать ключ root. Это будет 4096-битный ключ RSA, который будет использоваться для подписи корневого центра сертификации.

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

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

Флаг –lifetime 3650 используется для обеспечения действительности корневого сертификата центра сертификации на протяжении 10 лет. Корневой сертификат центра обычно не меняется, поскольку его необходимо перераспределять на каждый использующий его сервер и клиент. Исходя из этого, 10 лет — это безопасный срок действия по умолчанию.

Вы можете изменить значение различимого имени distinguished name (DN) на любое другое имя по своему желанию. Обычное имя (поле CN) здесь используется только как индикатор, поэтому оно не обязательно должно совпадать с чем-либо в вашей инфраструктуре.

Про сертификаты:  Сертификаты - РТИ ПРОЕКТ

Настроив и запустив корневой центр сертификации, мы можем создать сертификат, который будет использоваться сервером VPN.

Шаг 3 — генерирование сертификата для сервера vpn

Теперь мы создадим сертификат и ключ для сервера VPN. Этот сертификат позволит клиентам проверять подлинность сервера, используя только что сгенерированный нами сертификат CA.

Вначале создайте закрытый ключ сервера VPN с помощью следующей команды:

Затем создайте и подпишите сертификат сервера VPN, используя ключ центра сертификации, созданный на предыдущем шаге. Запустите следующую команду, но измените поля Common Name (CN) и Subject Alternate Name (SAN) на имя DNS или IP-адрес вашего сервера VPN:

Примечание. Если вы используете IP-адрес вместо имени DNS, вам потребуется указать несколько входов –san. Строка в предыдущем блоке команд, где вы указываете distinguished name (–dn …), должна быть дополнена еще одной строкой, например следующей:

--dn "CN=IP address --san @IP_address --san IP_address 

Дополнение –san @IP_address необходимо, так как некоторые клиенты буду проверять наличие в сертификате TLS как записи DNS, так и записи IP-адреса для сервера при проверке его подлинности.

Опция –flag serverAuth используется для указания того, что сертификат будет использоваться для аутентификации сервера, прежде чем будет установлен зашифрованный туннель. Опция –flag ikeIntermediate используется для поддержки более старых клиентов macOS.

Теперь мы сгенерировали все файлы TLS/SSL, необходимые StrongSwan, и можем переместить их в каталог /etc/ipsec.d следующим образом:

На этом шаге мы создали пару сертификатов, которые будут использоваться для защиты связи между клиентом и сервером. Также мы подписали сертификаты ключом CA, и теперь клиент сможет проверять подлинность сервера VPN, используя сертификат CA. После подготовки всех этих сертификатов мы переходим к настройке программного обеспечения.

Шаг 4 — настройка strongswan

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

Создайте и откройте новый пустой файл конфигурации с помощью предпочитаемого текстового редактора. Мы будем использовать nano:

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

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

Вначале мы укажем StrongSwan регистрировать состояния демонов для целей отладки и разрешить дублирующиеся соединения. Добавьте в файл следующие строки:

/etc/ipsec.conf

config setup
    charondebug="ike 1, knl 1, cfg 0"
    uniqueids=no

Затем мы создадим раздел конфигурации для сервера VPN. Также мы укажем StrongSwan создать туннели IKEv2 VPN и автоматически загружать этот раздел конфигурации при запуске. Добавьте в файл следующие строки:

/etc/ipsec.conf

. . .
conn ikev2-vpn
    auto=add
    compress=no
    type=tunnel
    keyexchange=ikev2
    fragmentation=yes
    forceencaps=yes

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

/etc/ipsec.conf

. . .
conn ikev2-vpn
    . . .
    dpdaction=clear
    dpddelay=300s
    rekey=no

Затем мы настроим параметры IPSec «левой» стороны сервера. Каждый из следующих параметров обеспечивает конфигурацию сервера для приема соединений от клиентов и корректной идентификации себя. Вы добавите каждую из этих настроек в файл /etc/ipsec.conf после того, как вы изучите их и поймете, для чего они используются:

  • left=%any Значение %any гарантирует использование сервером сетевого интерфейса при получении входящих соединений для последующей связи с клиентами. Например, если вы подключаете клиента через частную сеть, сервер будет использовать частный IP-адрес, где он получает трафик для остальной части подключения.
  • leftid=@server_domain_or_IP Эта опция контролирует имя, которое сервер показывает клиентам. При совмещении со следующей опцией leftcert, опция leftid обеспечивает совпадение настроенного имени сервера и различимого имени (DN), содержащегося в публичном сертификате.
  • leftcert=server-cert.pem Эта опция — это путь к публичному сертификату для сервера, который вы настроили на шаге 3. Без него сервер не сможет аутентифицировать себя с клиентами или завершить переговоры по настройке IKEv2.
  • leftsendcert=always Значение always гарантирует, что любой клиент, который подключается к серверу, всегда будет получать копию публичного сертификата сервера в рамках настроек первоначального соединения.
  • leftsubnet=0.0.0.0/0 Последняя опция «слева», которую вы добавите, указывает клиентам на подсети, которые доступны за сервером. В этом случае 0.0.0.0/0 используется для представления всего набора адресов IPv4, что означает, что сервер будет указывать клиентам передавать весь свой трафик через VPN по умолчанию.

Теперь, когда вы ознакомились с каждой из соответствующих опций «слева», добавьте их в файл следующим образом:

/etc/ipsec.conf

. . .
conn ikev2-vpn
    . . .
    left=%any
    leftid=@server_domain_or_IP
    leftcert=server-cert.pem
    leftsendcert=always
    leftsubnet=0.0.0.0/0

Примечание. При настройке идентификатора сервера (leftid) символ @ нужно указывать только в случае, если ваш сервер VPN будет идентифицироваться по доменному имени:

/etc/ipsec.conf

Шаг 5 — настройка аутентификации vpn

Теперь наш сервер VPN настроен на принятие подключений клиентов, но мы еще не настроили учетные данные. Нам нужно задать пару настроек в специальном файле конфигурации с именем ipsec.secrets:

  • Нам нужно указать StrongSwan, где можно найти закрытый ключ для нашего сертификата сервера, чтобы сервер мог пройти аутентификацию на стороне клиента.
  • Также нам потребуется список пользователей, которым будет разрешено подключаться к VPN.

Откроем для редактирования файл secrets

Вначале мы укажем StrongSwan, где можно найти закрытый ключ:

/etc/ipsec.secrets

: RSA "server-key.pem"

Затем мы зададим учетные данные пользователя. Вы можете создать любую комбинацию имени пользователя и пароля:

/etc/ipsec.secrets

Шаг 6 — настройка брандмауэра и переадресации ip ядра

После завершения настройки StrongSwan нам нужно настроить брандмауэр, чтобы разрешить прохождение и перенаправление трафика VPN.

Если вы следовали указаниям модуля по начальной настройке сервера, у вас должен быть включен брандмауэр UFW. Если вы еще не настроили UFW, вам следует начать с добавления правила, разрешающего соединения SSH через брандмауэр, чтобы ваш текущий сеанс не был прерван при активации UFW:

Затем активируйте брандмауэр с помощью следующей команды:

Теперь добавьте правило, которое будет разрешать трафик UDP на стандартных портах IPSec 500 и 4500:

Затем мы откроем один из файлов конфигурации UFW, чтобы добавить несколько политик нижнего уровня для маршрутизации и перенаправления пакетов IPSec. Но прежде чем мы сможем сделать это, нам нужно определить, какой сетевой интерфейс на нашем сервере используется для доступа в Интернет. Определите этот интерфейс с помощью запроса устройства, связанного с маршрутом по умолчанию:

Ваш публичный интерфейс должен содержать слово «dev». Например, в этом результате показан интерфейс с именем eth0, который выделен ниже:

Output

default via your_server_ip dev eth0 proto static

Шаг 7 — тестирование подключения vpn на windows, macos, ubuntu, ios и android

Мы завершили подготовку, и пришло время для тестирования. Вначале нужно скопировать созданный вами сертификат CA и установить его на клиентские устройства, которые будут подключаться к VPN. Для этого удобнее всего выполнить вход на ваш сервер и вывести содержимое файла сертификата:

Вывод будет выглядеть следующим образом:

Output

-----BEGIN CERTIFICATE-----
MIIFNDCCAxygAwIBAgIIHCsidG5mXzgwDQYJKoZIhvcNAQEMBQAwODELMAkGA1UE

. . .

H2YUdz8XNHrJHvMQKWFpi0rlEcMs MSXPFWE3Q7UbaZJ/h8wpSldSUbQRUlphExJ
dJ4PX MUJO/vjG1/ie6Kh25xbBAc3qNq8siiJZDwrg6vjEK7eiZ1rA==
-----END CERTIFICATE-----

Скопируйте эти данные на свой компьютер, включая строки —–BEGIN CERTIFICATE—– и —–END CERTIFICATE—–, и сохраните их в файл с понятным именем, например, ca-cert.pem. Созданный файл должен иметь расширение .pem.

Также вы можете использовать SFTP, чтобы перенести файл на свой компьютер.

Когда файл ca-cert.pem будет загружен на ваш компьютер, вы можете настроить подключение к VPN.

Заключение

В этом обучающем модуле вы создали сервер VPN, использующий протокол IKEv2. Вы узнали о директивах, которые контролируют левую и правую стороны подключения как на сервере, так и на клиентах. Также вы настроили клиент Windows, macOS, iOS, Android или Linux для подключения к VPN.

Чтобы добавить или удалить пользователей, снова перейдите на Шаг 5. Каждая строка в /etc/ipsec.secrets предназначена для одного пользователя, поэтому добавление или удаление пользователей или изменение паролей требует редактирования файла.

Теперь вы можете быть уверены, что ваша деятельность онлайн будет защищена, куда бы вы ни зашли, независимо от устройства, которое вы используете для входа в Интернет.

источник

Оцените статью
Мой сертификат
Добавить комментарий