Ikev2 windows 7 маршруты

Перед настройкой VPN-подключения, в дереве пользователей откройте карточку нужного пользователя и установите флаг Разрешить удаленный доступ через VPN. Для этого перейдите в раздел Пользователи -> Учетные записи.

Не рекомендуем использовать для VPN-подключений кириллические логины.

Создание VPN-подключения в Windows 7

L2TP IPsec клиенты, находящиеся за одним NAT’ом, могут испытывать проблемы подключения если их более одного. Решить проблему может помочь . Рекомендуем вместо L2TP IPsec использовать IKEv2 IPSec.

Перед созданием VPN-подключения для протоколов SSTP, L2TP и IKEv2, следует установить корневой сертификат локально на компьютер:

1. Скачайте корневой сертификат Let’s Encrypt по ссылке ;

2. Нажмите Пуск, найдите и запустите mmc.exe;

3. Нажмите Файл -> Добавить или удалить оснастку:

4. Выберите Сертификаты и нажмите Добавить:

5. Установите флаг в строке учетной записи компьютера, нажмите Далее -> Готово -> ОК:

6. В окне Консоль появится пункт Сертификаты (локальный компьютер):

  • Выберите его и нажмите правой кнопкой мыши на пункте Доверенные корневые центры сертификации;

  • Далее Все задачи -> Импорт

  • В окне Мастер импорта сертификатов нажмите Далее -> Обзор -> Выберите скачанный в пункте 1 -> Далее -> Далее -> Готово.

Создание VPN-подключения

1. Выберите Сеть -> Центр управления сетями и общим доступом:

2. Нажмите Настройка нового подключения или сети:

3. Выберите Подключение к рабочему месту и Далее:

4. Нажмите Использовать мое подключение к интернету (VPN) и заполните следующие поля:

  • Интернет-адрес — впишите имя VPN-сервера, например vpn.test.ru

  • Имя местоназачения — напишите произвольное название подключения

Установите флаг в пункте Не подключаться сейчас, только выполнить установку для подключения в будущем

5. В окне Введите имя пользователя и пароль заполните соответствующие поля;

6. Нажмите Создать, далее Закрыть;

7. В окне Центр управления сетями и общим доступом, выберите в левом верхнем углу Изменение параметров адаптера:

8. Нажмите правой кнопкой мыши на созданное подключение, выберите Свойства:

9. В открывшемся окне выполните следующие действия:

  • На вкладке Сеть — снимите отметки со всех пунктов, кроме Протокол Интернета версии 4

  • На вкладке Безопасность:

    • в строке Тип VPN выберите нужный тип подключения

    • в строке Шифрование данных выберите обязательное(отключиться, если нет шифрования)

    • в строке Проверка подлинности выберите Разрешить следующие протоколы

    • При необходимости заполните Дополнительные свойства

10. Нажмите OK и закройте Центр управления сетями и общим доступом;

11. В трее нажмите Сеть. Откроется окно с созданным VPN-подключением;

12. Нажмите правой кнопкой мыши по подключению и выберите Подключить.

Ошибки работы VPN-подключений

Если VPN-подключение по протоколам IPSeс в Windows автоматически разрывается через 7 часов 45 минут и при подключении по IKEv2 возникает ошибка «Ошибка сопоставления групповой политики» или ошибка с кодом «13868»

Для восстановления связи подойдут следующие действия:

1. Переподключите соединение. В данном случае соединение восстановится, но через 7 часов 45 минут вновь будет автоматически разорвано. Если вы хотите, чтобы подключение не разрывалось автоматически, то выполните действия из следующего пункта.

2. Внесите изменения в реестр:

  • Откройте Редактор реестра.

  • Перейдите по пути HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters.

  • Нажмите правой кнопкой мыши по параметру именем NegotiateDH2048_AES256 и нажмите Изменить.

  • В строке Значение укажите значение 1:

  • Перезагрузите Windows.

    Если параметра именем NegotiateDH2048_AES256 нет, то создайте его. Для этого:

  • Нажмите правой кнопкой мыши по свободному месту реестра в Parameters и выберите Создать -> DWORD:

  • Задайте имя NegotiateDH2048_AES256.

  • Нажмите правой кнопкой мыши по созданному файлу и выберите Изменить:

  • В строке Значение укажите значение 1:

3. Перезагрузите Windows.

Если вы не хотите, чтобы после подключения по VPN интернет-трафик до внешних ресурсов ходил через Ideco UTM, то в свойствах VPN-подключения Сеть/Протокол интернета TCP/IP версии 4/Дополнительно уберите флаг Использовать основной шлюз в удаленной сети. Далее, чтобы получить доступ к компьютерам за Ideco UTM, вручную пропишите маршруты.

оставьте флаг только в пункте Протокол Microsoft СНАР версии 2 (MS-CHAP v2)

Сейчас, когда многие настраивают VPN для работы удаленных сотрудников, выбор протокола становится как никогда актуальным. С одной стороны стоят поддерживаемые современными ОС протоколы PPTP и L2TP, которые имеют ряд существенных недостатков и ограничений, с другой OpenVPN, который всем хорош, но требует установки стороннего ПО. При этом как-то забывают о быстром и безопасном IKEv2, основанном на IPsec новом протоколе, также поддерживаемом всеми современными ОС.

Онлайн-курс по MikroTik
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Почему именно IKEv2? Данный протокол входит в группу протоколов IPsec и обеспечивает высокий уровень безопасности, включая аутентификацию клиента с использованием сертификата, а также проверку подлинности сервера клиентом, что исключает атаки типа «человек посередине». При поддержке аппаратного ускорения IPsec со стороны оборудования показывает хорошую скорость соединения относительно других типов VPN в RouterOS и весьма прост в настройке с клиентской стороны, не требует добавления маршрутов.

К недостаткам можно отнести достаточную сложность настройки серверной части, которая требует выполнения определенных условий и наличия базового объема знаний о работе IPsec. В данной статье мы не будем углубляться в теорию, сделав упор на практическую сторону вопроса, ограничившись краткими пояснениями необходимости тех или иных настроек.

Создание центра сертификации и выпуск сертификатов

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

В нашем случае центр сертификации будет создан средствами RouterOS прямо на маршрутизаторе. Для этого перейдем в System — Certificate и выпустим корневой сертификат нашего CA.

mikrotik-ikev2-vpn-001.png

Красным указаны обязательные к заполнению поля. Name — видимое имя сертификата и Common Name — имя субъекта, которому выдан сертификат, в нашем случае это ca. Key Size — размер ключа, ключи размером менее 2048 байт не считаются безопасными, Days Valid — время действия сертификата, в нашем случае 10 лет.

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

Затем перейдем на закладку Key Usage и оставим только crl sign и key cert. sign, затем нажмем Apply, чтобы применить изменения, после чего подпишем сертификат. нажав кнопку Sign, в открывшемся окне укажем CA CRL Host, в качестве которого следует использовать один из IP-адресов роутера.

mikrotik-ikev2-vpn-002.png

В терминале эти же действия можно выполнить командой:

/certificate 
add name=ca country="RU" state="31" locality="BEL" organization="Interface LLC" common-name="ca" key-size=2048 days-valid=3650 key-usage=crl-sign,key-cert-sign
sign ca ca-crl-host=192.168.103.1

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

mikrotik-ikev2-vpn-003.png

Заполнение полей в целом повторяет предыдущий пример, за исключением Common Name и Subject Alt. Name. Здесь мы указываем IP-адрес или FQDN по которому клиенты будут подключаться к серверу. Если вы используете IP-адрес, то тип записи в поле Subject Alt. Name нужно сменить на IP.

mikrotik-ikev2-vpn-004.png

Обратите внимание, если вы выпустили сертификат с указанием FQDN, а подключить клиента попытаетесь по IP-адресу, либо наоборот, то такое соединение окажется невозможным.

На закладке Key Usage укажем единственное значение tls server и подпишем наш сертификат закрытым ключом центра сертификации CA.

mikrotik-ikev2-vpn-005.png

Эти же действия в терминале:

/certificate 
add name=vpn.interface31.lab country="RU" state="31" locality="BEL" organization="Interface LLC" common-name="vpn.interface31.lab" subject-alt-name=DNS:"vpn.interface31.lab" key-size=2048 days-valid=3650 key-usage=tls-server
sign vpn.interface31.lab ca="ca"

Теперь можно выпускать клиентские сертификаты, это можно сделать как сразу, так и потом. Никаких особых требований здесь нет, в качестве имени указывайте максимально понятное значение, скажем, ФИО сотрудника или наименование офиса. Потому как понять кому принадлежит сертификат с CN IvanovIA не составит особого труда, в отличие от какого-нибудь безликого client3. Также обратите внимание на опцию Days Valid, не следует выдавать клиентские сертификаты на большой срок.

mikrotik-ikev2-vpn-006.png

В Key Usage также указываем единственное назначение сертификата — tls client и подписываем его закрытым ключом CA.

mikrotik-ikev2-vpn-007.png

Команды для терминала:

/certificate 
add name=SmirnovaMV country="RU" state="31" locality="BEL" organization="Interface LLC" common-name="SmirnovaMV" key-size=2048 days-valid=365 key-usage=tls-client
sign SmirnovaMV ca="ca"

Для использования на клиентских устройствах сертификаты следует экспортировать, наиболее удобно использовать для этого формат PKCS12, который в одном файле содержит закрытый ключ клиента, его сертификат и корневой сертификат CA. Для этого выберите сертификат в списке и в меню правой кнопки мыши укажите действие Export. В поле Type укажите PKCS12, а в Export Passphrase следует указать пароль (не менее 8 символов), в противном случае закрытый ключ выгружен не будет.

mikrotik-ikev2-vpn-008.png

Это же можно сделать командой:

/certificate
export-certificate SmirnovaMV type=pkcs12 export-passphrase=0123456789

Скачать экспортированные сертификаты можно из раздела Files.

mikrotik-ikev2-vpn-009.png

Настройка IKEv2 VPN-сервера

Здесь мы вступаем в достаточно сложную область настройки IPsec, объем статьи не позволяет подробно останавливаться на назначении каждой настройки, поэтому если вы не уверены в своих действиях, то мы не рекомендуем отклоняться от указанных ниже настроек.

Перейдем в IP — IPsec — Profiles и создадим новый профиль, который задает параметры для установления соединения. Все параметры оставляем по умолчанию, кроме наименования, которому следует дать осмысленное имя.

mikrotik-ikev2-vpn-010.png

Либо выполните команду в терминале:

/ip ipsec profile
add name=IKEv2

Затем перейдем на закладку Proposals — предложения, который содержит параметры криптографии предлагаемые для соглассования подключающимся клиентам. Создадим новое предложение, которое сформировано с учетом используемых современными ОС алгоритмов и изменение его состава может либо ослабить безопасность, либо сделать подключение некоторых клиентов невозможным.

Параметры по умолчанию нам не подойдут, поэтому в блоке Encr. Algorithms убираем 3des и добавляем aes-128-cbc, aes-192-cbc, aes-256-cbc.

В терминале достаточно простой команды:

/ip ipsec proposal
add name=IKEv2 pfs-group=none

Здесь мы сталкиваемся с одной особенностью: создаваемые через терминал и Winbox предложения содержат различный набор параметров. То, что создается в терминале полностью соответствует приведенным выше на скриншоте требованиям.

Для выдачи VPN-клиентам нам потребуется отдельный диапазон адресов, перейдем в IP — Pool и создадим новый пул, в нашем случае будет использован диапазон адресов 10.20.0.100 — 10.20.0.199:

mikrotik-ikev2-vpn-012.png

Снова вернемся к настройкам IPsec и создадим конфигурацию, передаваемую клиенту для настройки его сетевых параметров, для этого перейдем на в IP — IPsec — Mode Configs. При создании новой конфигурации установим флаг Responder, в поле Address Pool укажем имя созданного нами пула, в поле Address Prefix Lenght укажем префикс адреса — 32, поле Split Include указываем подсети, запросы к которым следует направлять в туннель, здесь следует указать одну или несколько внутренних сетей, доступ к которым должны получать удаленные клиенты. В нашем случае это сеть условного офиса — 192.168.111.0/24. Наконец флаг System DNS предписывает клиенту использовать DNS сервера указанные в IP — DNS роутера. Если передавать DNS-сервера не требуется, то данный флаг следует снять.

Это же действие в терминале:

/ip ipsec mode-config
add address-pool=ikev2-pool address-prefix-length=32 name=IKEv2-cfg split-include=192.168.111.0/24

Если же вам нужно, чтобы клиенты использовали внутренние сервера имен, например, в Active Directory, то флаг System DNS также следует снять и указать адреса требуемых DNS-серверов.

Команда для терминала будет выглядеть так:

/ip ipsec mode-config
add address-pool=ikev2-pool address-prefix-length=32 name=IKEv2-cfg split-include=192.168.111.0/24 static-dns=192.168.111.101,192.168.111.201 system-dns=no

На закладке Groups создадим новую группу, никаких настроек здесь нет, просто укажите уникальное имя:

/ip ipsec policy group
add name=ikev2-policies

Затем на закладке Policices создадим шаблон политики, которая будет указывать какой именно трафик будет подвергаться обработке IPsec и отправляться в туннель. В поле Src. Address оставляем 0.0.0.0/0, в поле Dst. Address указываем выделенный для VPN-сети диапазон: 10.20.0.0/24, устанавливаем флаг Template и указываем созданную нами ранее группу в поле Group.

На закладке Action в поле Proposal укажите созданный нами ранее набор предложений.

Эти же действия в терминале:

/ip ipsec policy
add dst-address=10.20.0.0/24 group=ikev2-policies proposal=IKEv2 src-address=0.0.0.0/0 template=yes

После чего перейдем в IP — IPsec — Peers создадим новый пир для приема подключений. Сразу установим флаг Passive, в поле Address указываем 0.0.0.0/0 (разрешаем подключаться из любого места), в поле Profile указываем созданный нами профиль, а в поле Exchange Mode укажем протокол обмена ключами — IKE2.

В терминале для получения аналогичного результата выполните:

/ip ipsec peer
add exchange-mode=ike2 name=IKEv2-peer passive=yes profile=IKEv2

На закладке Identities создадим новую настройку идентификации подключающихся клиентов. Здесь много настраиваемых полей и нужно быть предельно внимательными, чтобы ничего не упустить и не перепутать. В поле Peer — указываем созданный нами пир, Auth. Method — способ аутентификации — digital signature, Certificate — сертификат сервера. Policy Template Group — группа шаблонов политик — выбираем созданную нами группу, Mode Configuration — указываем созданную нами конфигурацию для клиентов, Generate Policy — port strict.

Команда для терминала:

/ip ipsec identity
add auth-method=digital-signature certificate=vpn.interface31.lab generate-policy=port-strict mode-config=IKEv2-cfg peer=IKEv2-peer policy-template-group=ikev2-policies

На этом настройка сервера завершена, осталось лишь добавить правила брандмауэра, разрешающие работу с ним. Для того, чтобы клиенты могли подключаться к серверу перейдем в IP — Firewall — Filter Rules и добавим правило: Chain — input, Protocol — udp, Dst. Port — 500, 4500, In. Interface — ваш внешний интерфейс (в нашем случае это ether1). Действие не указываем, так как по умолчанию применяется accept.

mikrotik-ikev2-vpn-020.png

Для добавления правила в терминале:

/ip firewall filter
add action=accept chain=input dst-port=500,4500 in-interface=ether1 protocol=udp

Но это еще не все, чтобы VPN-клиенты могли получить доступ к внутренней сети, следует добавить еще одно правило. На закладке General укажите Chain — forward и Interface — внешний интерфейс, затем на Advanced: IPsec Policy — in:ipsec.

mikrotik-ikev2-vpn-021.png

/ip firewall filter
add action=accept chain=forward in-interface=ether1 ipsec-policy=in,ipsec

Оба правила следует расположить выше, чем запрещающие в каждой из цепочек.

Настройка подключения клиента в Windows

Прежде всего импортируем сертификат, для этого можно просто выполнить двойной клик на файле сертификата, в открывшемся Мастере импорта в качестве Расположения хранилища укажите Локальный компьютер, остальные параметры принимаются по умолчанию.

mikrotik-ikev2-vpn-022.png

Затем создадим новое подключение штатными инструментами. А качестве Типа VPN укажем IKEv2, а в качестве Типа данных для входаСертификат. Также обратите внимание, что в строка Имя или адрес сервера должно совпадать с Common Name сертификата сервера, в противном случае подключение установить не удастся.

mikrotik-ikev2-vpn-023.png

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

Теперь можно подключаться, если все сделано правильно — подключение будет успешно. Проверим таблицу маршрутов:

mikrotik-ikev2-vpn-025.png

Как видим, маршрут к нашей внутренней сети 192.168.111.0/24 был добавлен автоматически и никаких ручных настроек клиента не требуется.

Настройка подключения клиента в Linux

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

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

cd ~
mkdir .ikev2

Теперь нам нужно экспортировать из PKCS12 файла корневой сертификат CA, а также ключ и сертификат пользователя. Начнем с корневого сертификата:

openssl pkcs12 -in cert_export_SmirnovaMV.p12 -out .ikev2/IKEv2_CA.crt -nodes -nokeys -cacerts 

Затем экспортируем сертификат клиента:

openssl pkcs12 -in cert_export_SmirnovaMV.p12 -out .ikev2/SmirnovaMV.crt -nodes -nokeys

И его закрытый ключ. При экспорте закрытого ключа нас попросят установить для него пароль, минимальная длинна пароля 8 символов. Пропустить этот шаг нельзя.

openssl pkcs12 -in cert_export_SmirnovaMV.p12 -out .ikev2/SmirnovaMV.pass.key -nocerts

На каждом из этих этапов нам нужно будет вводить парольную фразу, указанную при экспорте сертификата пользователя на роутере.

И наконец уберем пароль с закрытого ключа пользователя:

openssl rsa -in .ikev2/SmirnovaMV.pass.key -out .ikev2/SmirnovaMV.key

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

Для того, чтобы иметь возможность создавать VPN-подключения в графическом интерфейсе установим необходимый плагин для Network Manager:

sudo apt install network-manager-strongswan

После чего вам станут доступны настройки VPN IKEv2 соединения.

mikrotik-ikev2-vpn-026.png

Настройки соединения достаточно просты. В секции Gateway указываем адрес сервера и путь к корневому сертификату CA. В секции Client устанавливаем Authentication: Certificate/private key и указываем пути к сертификату и закрытому ключу клиента. И в секции Option обязательно устанавливаем флаг Request an inner IP address. На этом настройка соединения окончена, можно подключаться.

mikrotik-ikev2-vpn-027.png

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

mikrotik-ikev2-vpn-028.png

Но никакой ошибки здесь нет. Просто Linux в данной ситуации поступает более правильно, вместо маршрута в системе создается соответствующая политика IPsec, которая направляет трафик к внутренней сети в туннель согласно тому, что мы указали в конфигурации клиента (Mode Configs) на роутере.

Онлайн-курс по MikroTik
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Продолжаю прибиваться по «Микроту», спасибо Станиславу, что подкидывает интересные задачки по нему и разъясняет не ясные моменты (а их не мало), если это необходимо. Но сейчас времени на изучение «Микрота» снова нет, поэтому, это уже дела прошлых дней…

На примере LAB1, решил сразу посмотреть еще и VPN IKEv2, который вроде как умеет правильно отдавать маршруты подключившимся клиентам, но как это на самом деле, я увижу далее.

До сего момента, познакомиться с таким вариантом VPN мне еще не удалось.

Еще раз моя текущая схема для понимания:

Подключаться буду через интерфейс управления, через ether4 на R1 (в оригинале это должно быть через ether1) .

Для этого чуть подготовим его.

Через DHCP Client получим IP с дефлотным маршрутом, чтобы сразу обновить роутер до более новой прошивки.

Чуть увеличим метрику основного маршрута (до 10), чтоб обновление состоялось и у нас был инет:

Обновим роутер (пока не до последней версии, а вот так):

Больше нам маршрут не нужен, уберем его на DHCP Client:

Добавлю разрешающее правило на firewall:

Теперь видно, что пинг пошел:

По настройке будет полезен вот этот пост:

https://interface31.ru/tech_it/2020/04/nastraivaem-ikev2-vpn-server-na-routerah-mikrotik.html

https://mum.mikrotik.com/presentations/RU19K/presentation_6870_1554991099.pdf

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

В нашем случае центр сертификации будет создан средствами RouterOS прямо на маршрутизаторе. Для этого перейдем в System — Certificate и выпустим корневой сертификат нашего CA.

Создам сертификат.

Apply-Sign

Это мой адрес, который я получил по DHCP Client на интерфейсе ether4.

Проставлю галку Trusted

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

Apply-Sign

Теперь можно выпускать клиентские сертификаты

Apply-Sign

Для использования на клиентских устройствах сертификаты следует экспортировать, наиболее удобно использовать для этого формат PKCS12, который в одном файле содержит закрытый ключ клиента, его сертификат и корневой сертификат CA. Для этого выберите сертификат в списке и в меню правой кнопки мыши укажите действие Export. В поле Type укажите PKCS12, а в Export Passphrase следует указать пароль (не менее 8 символов), в противном случае закрытый ключ выгружен не будет.

Скачать экспортированные сертификаты можно из раздела Files.

Download

Настройка IKEv2 VPN-сервера.

Здесь мы вступаем в достаточно сложную область настройки IPsec, объем статьи не позволяет подробно останавливаться на назначении каждой настройки, поэтому если вы не уверены в своих действиях, то мы не рекомендуем отклоняться от указанных ниже настроек.

Перейдем в IP — IPsec — Profiles и создадим новый профиль, который задает параметры для установления соединения. Все параметры оставляем по умолчанию, кроме наименования, которому следует дать осмысленное имя.

Затем перейдем на закладку Proposals — предложения, который содержит параметры криптографии предлагаемые для соглассования подключающимся клиентам. Создадим новое предложение, которое сформировано с учетом используемых современными ОС алгоритмов и изменение его состава может либо ослабить безопасность, либо сделать подключение некоторых клиентов невозможным.

Параметры по умолчанию нам не подойдут, поэтому в блоке Encr. Algorithms убираем 3des и добавляем aes-128-cbc, aes-192-cbc, aes-256-cbc.

Здесь мы сталкиваемся с одной особенностью: создаваемые через терминал и Winbox предложения содержат различный набор параметров. То, что создается в терминале полностью соответствует приведенным выше на скриншоте требованиям.

Для выдачи VPN-клиентам нам потребуется отдельный диапазон адресов, перейдем в IP — Pool и создадим новый пул, в нашем случае будет использован диапазон адресов: 172.16.50.100-172.16.50.199

Снова вернемся к настройкам IPsec и создадим конфигурацию, передаваемую клиенту для настройки его сетевых параметров, для этого перейдем на в IP — IPsec — Mode Configs. При создании новой конфигурации установим флаг Responder, в поле Address Pool укажем имя созданного нами пула, в поле Address Prefix Lenght укажем префикс адреса — 32, поле Split Include указываем подсети, запросы к которым следует направлять в туннель, здесь следует указать одну или несколько внутренних сетей, доступ к которым должны получать удаленные клиенты. В нашем случае это сеть условного офиса — 192.168.10.0/24, 192.168.20.0/24, 192.168.30.0/24  . Наконец флаг System DNS предписывает клиенту использовать собственные DNS сервера.

Если же вам нужно, чтобы клиенты использовали внутренние сервера имен, например, в Active Directory, то флаг System DNS следует снять и указать адреса требуемых DNS-серверов.

На закладке Groups создадим новую группу, никаких настроек здесь нет, просто укажите уникальное имя

Затем на закладке Policices создадим шаблон политики, которая будет указывать какой именно трафик будет подвергаться обработке IPsec и отправляться в туннель. В поле Src. Address оставляем 0.0.0.0/0, в поле Dst. Address указываем выделенный для VPN-сети диапазон: 172.16.50.0/24, устанавливаем флаг Template и указываем созданную нами ранее группу в поле Group.

На закладке Action в поле Proposal укажите созданный нами ранее набор предложений.

После чего перейдем в IP — IPsec — Peers создадим новый пир для приема подключений. Сразу установим флаг Passive, в поле Address указываем 0.0.0.0/24 (разрешаем подключаться из любого места), в поле Profile указываем созданный нами профиль, а в поле Exchange Mode укажем протокол обмена ключами — IKE2.

На закладке Identities создадим новую настройку идентификации подключающихся клиентов. Здесь много настраиваемых полей и нужно быть предельно внимательными, чтобы ничего не упустить и не перепутать. В поле Peer — указываем созданный нами пир, Auth. Method — способ аутентификации — digital signatureCertificate — сертификат сервера. Policy Template Group — группа шаблонов политик — выбираем созданную нами группу, Mode Configuration — указываем созданную нами конфигурацию для клиентов, Generate Policy — port strict.

На этом настройка сервера завершена, осталось лишь добавить правила брандмауэра, разрешающие работу с ним. Для того, чтобы клиенты могли подключаться к серверу перейдем в IP — Firewall — Filter Rules и добавим правило: Chain — input, Protocol — udp, Dst. Port — 500, 4500, In. Interface — ваш внешний интерфейс (в нашем случае это ether1). Действие не указываем, так как по умолчанию применяется accept.

Но это еще не все, чтобы VPN-клиенты могли получить доступ к внутренней сети, следует добавить еще одно правило. На закладке General укажите Chain — forward и Interface — внешний интерфейс, затем на AdvancedIPsec Policy — in:ipsec.

В моем текущем случае меняем внешний WAN (ether1) на ether4, так как коннекчусь я к нему.

Настройка подключения клиента в Windows.

Прежде всего импортируем сертификат, для этого можно просто выполнить двойной клик на файле сертификата, в открывшемся Мастере импорта в качестве Расположения хранилища укажите Локальный компьютер, остальные параметры принимаются по умолчанию.

Затем создадим новое подключение штатными инструментами. А качестве Типа VPN укажем IKEv2, а в качестве Типа данных для входа — Сертификат. Также обратите внимание, что в строка Имя или адрес сервера должно совпадать с Common Name сертификата сервера, в противном случае подключение установить не удастся.

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

Пробую подключится…

Неприемлемые учетные данные для проверки… Все как обычно.. С первого раза ничего не работает ☹

Надо понять, что не так…

Еще раз

Затем создадим новое подключение штатными инструментами. А качестве Типа VPN укажем IKEv2, а в качестве Типа данных для входа — Сертификат. Также обратите внимание, что в строка Имя или адрес сервера должно совпадать с Common Name сертификата сервера, в противном случае подключение установить не удастся.

Неправильно назвал адрес сервера. Должен быть обязательно: vpn.mikrot.lab

Теперь другая ошибка: Не удалось подключиться, так как не удалось разрешить имя сервера, поправлю это в своем hosts файле.

192.168.10.167 vpn.mikrot.lab

После этого подключение благополучно установилось.

Посмотрел, что с маршрутами, все вроде не плохо, а нужные маршруты моих vlan-ов, не прилетают.

Обратился к знающим людям (Стас, в очередной раз, спасибо за разъяснения и алгоритм дебагинга).

System-Logging добавим IPSEC-Debug

В логах стало видно, что маршруты отдаются

Но их нет на компе.

Вот тут в одну сторону пакеты идут а обратно нет

Стало понятно, что что-то с маршрутами.

И действительно, все оказалось именно так. Проблема оказалась в одном и маршрутов blackhole, который я добавил ранее: Выключаем его:

И все сразу заколосилось: Нужные маршруты стали прилетать.

Пинг до вланов тоже пошел.

А это говорит мне о том, что все работает, как надо.

Сохраню конфиг на всякий случай: /export file=ready_conf

На клиентской части, несколько больше настроек, чем при установке той же Cisco AnyConnect, но тем не менее, этот вариант тоже достаточно не плох, например если «запилить» тот же инсталлер msi или exe, чтоб не делать манипуляций руками.

Всем хорошей работы!!!


26.08.2020 —


Опубликовал: |
network and wi-fi: cisco, mikrotik, huawei, tp-link, d-link, zyxel и другое…

Sorry, the comment form is closed at this time.

There are different methods for providing a VPN server for roaming (dynamic) clients. Which method to use depends on the clients that need to be supported.

This method using IKEv2 without EAP, also called «Machine Certificate» based authentication.

Supported clients:

  • libreswan
  • Windows 7 and up
  • Windows Phone (requires latest firmware)
  • OSX and iOS
  • Android with strongswan client

X.509 Certificate requirements

When serving Windows clients, special care needs to be taken when generating X.509 certificates for this method.

  • The VPN gateway’s certificate must have its DNS name as SubjectAltname (SAN) in the certificate. The client then must connect to the VPN using the DNS name. Alternately, the client can connect using the IP if the SAN contains the IP address of the gateway.
  • The VPN gateway’s certificate must have the Digital Signature and Key Encipherment KU extensions if the SAN and CN use the same, full DNS name.
  • The certificates also need to have the serverAuth and clientAuth ExtendedKeyUSage («EKU») attribytes set. Alternatively, EKU checking can be disabled, see Interoperability#Windows_Certificate_requirements

ipsec.conf for IKEv2 Machine Certificate VPN server

conn ikev2-cp
    # The server's actual IP goes here - not elastic IPs
    left=1.2.3.4
    leftcert=vpn.example.com
    leftid=@vpn.example.com
    leftsendcert=always
    leftsubnet=0.0.0.0/0
    leftrsasigkey=%cert
    # Clients
    right=%any
    # your addresspool to use - you might need NAT rules if providing full internet to clients
    rightaddresspool=192.168.66.1-192.168.66.254
    # optional rightid with restrictions
    # rightid="C=CA, L=Toronto, O=Libreswan Project, OU=*, CN=*, E=*"
    rightca=%same
    rightrsasigkey=%cert
    #
    # connection configuration
    # DNS servers for clients to use
    modecfgdns=8.8.8.8,193.100.157.123
    # Versions up to 3.22 used modecfgdns1 and modecfgdns2
    #modecfgdns1=8.8.8.8
    #modecfgdns2=193.110.157.123
    narrowing=yes
    # recommended dpd/liveness to cleanup vanished clients
    dpddelay=30
    dpdtimeout=120
    dpdaction=clear
    auto=add
    ikev2=insist
    rekey=no
    # ikev2 fragmentation support requires libreswan 3.14 or newer
    fragmentation=yes
    # optional PAM username verification (eg to implement bandwidth quota
    # pam-authorize=yes

Libreswan client

You can use the NetworkManager-libreswan package to configure a VPN client connection using NetworkManager. You still need to import the PKCS#12 certificate bundle using:

ipsec import file.p12

If you do not want to use NetworkManager, but a static connection file that you can manually bring up using ipsec auto —up connname, you can create a file similar to this one:

Then add a client.conf in /etc/ipsec.d/ containing:

# IKEv2 roadwarrior client config using X.509 certificates
conn vpn.example.com
	left=%defaultroute
	leftcert=YourCertFiendlyName
	leftid=%fromcert
	leftrsasigkey=%cert
	leftsubnet=0.0.0.0/0 
	leftmodecfgclient=yes
	right=vpn.example.com
	rightsubnet=0.0.0.0/0 
	rightid=@vpn.example.com
	rightrsasigkey=%cert
	narrowing=yes
	ikev2=insist
	rekey=yes
	fragmentation=yes
	mobike=yes
	auto=add

You will also need to import the PKCS#12 certificate file as shown above.

Windows 7 client configuration with «RasClient» native IKEv2

  • Control Panel -> Network and Internet -> Network and Sharing Center -> Set Up a Connection or Network
  • Choose the «Connect to a Workplace» VPN option -> Use my Internet connection (VPN)
  • Enter the gateway address or DNS name. What you enter here should correlate to a subjectAltName that is on leftcert.
  • Name the connection.
  • Select «Don’t connect now; just set it up so I can connect later»
  • Click «Create» and close the dialog.
  • Click the network icon on the panel and right click on the VPN connection you created and select «Properties»
  • On the Options tab, de-select the «Prompt for name and password, certificate, etc.» and «Include windows logon domain» boxes.
  • On the Security tab, set «Type of VPN» to IKEv2.
  • In the «Authentication» box of the Security tab, select the «Use machine certificates» radial button.

That’s all, now click «Connect» under the created connection.

Common Windows 7 client errors

13806: IKE failed to find valid machine certificate. Contact your Network Security Administrator about installing a valid certificate in the appropriate Certificate Store.

Verify that you have imported the client certificate with private key into the Computer certificate store and not the Local user store. Starting mmc.exe as an administrator will allow you to do this.
Newer versions of Windows require that the certificate has both serverAuth and clientAuth EKU’s set.

example tutorial: https://wiki.strongswan.org/projects/strongswan/wiki/Win7Certs

13801: IKE authentication credentials are unacceptable.

Verify that the gateway certificate has a SAN that matches the address entered into the Windows client configuration. The certificate should also contain the serverAuth EKU.

Example certificate generation with certutil

  • As root, create a database to generate certificates for this example. This database will hold the private key of the CA and allow you to generate new host certificates.
# mkdir ${HOME}/tmpdb
# certutil -N -d sql:${HOME}/tmpdb
Enter a password which will be used to encrypt your keys.
The password should be at least 8 characters long,
and should contain at least one non-alphabetic character.

Enter new password: 
Re-enter password: 
  • Generate the CA certificate with a CA basic constraints extension
# certutil -S -x -n "Example CA" -s "O=Example,CN=Example CA" \
 -k rsa -g 4096 -v 12 -d sql:${HOME}/tmpdb -t "CT,," -2

A random seed must be generated that will be used in the
creation of your key.  One of the easiest ways to create a
random seed is to use the timing of keystrokes on a keyboard.

To begin, type keys on the keyboard until this progress meter
is full.  DO NOT USE THE AUTOREPEAT FUNCTION ON YOUR KEYBOARD!

Continue typing until the progress meter is full:

|************************************************************|

Finished.  Press enter to continue: 

Generating key.  This may take a few moments...

Is this a CA certificate [y/N]?
y
Enter the path length constraint, enter to skip [<0 for unlimited path]: > 
Is this a critical extension [y/N]?
N
  • Generate the server certificate and assign extensions:
# certutil -S -c "Example CA" -n "vpn.example.com" -s "O=Example,CN=vpn.example.com" \
   -k rsa -g 4096 -v 12 -d sql:${HOME}/tmpdb -t ",," -1 -6 -8 "vpn.example.com"

A random seed must be generated that will be used in the
creation of your key.  One of the easiest ways to create a
random seed is to use the timing of keystrokes on a keyboard.

To begin, type keys on the keyboard until this progress meter
is full.  DO NOT USE THE AUTOREPEAT FUNCTION ON YOUR KEYBOARD!

Continue typing until the progress meter is full:
   
|************************************************************|
   
Finished.  Press enter to continue:
      
Generating key.  This may take a few moments...
   
                0 - Digital Signature
                1 - Non-repudiation
                2 - Key encipherment
                3 - Data encipherment
                4 - Key agreement
                5 - Cert signing key
                6 - CRL signing key
                Other to finish
 > 0
                0 - Digital Signature
                1 - Non-repudiation
                2 - Key encipherment
                3 - Data encipherment
                4 - Key agreement
                5 - Cert signing key
                6 - CRL signing key
                Other to finish
 > 2
                0 - Digital Signature
                1 - Non-repudiation
                2 - Key encipherment
                3 - Data encipherment
                4 - Key agreement
                5 - Cert signing key
                6 - CRL signing key
                Other to finish
 > 8 
Is this a critical extension [y/N]?
N
                0 - Server Auth
                1 - Client Auth
                2 - Code Signing
                3 - Email Protection
                4 - Timestamp
                5 - OCSP Responder
                6 - Step-up
                7 - Microsoft Trust List Signing
                Other to finish
 > 0
                0 - Server Auth
                1 - Client Auth
                2 - Code Signing
                3 - Email Protection
                4 - Timestamp
                5 - OCSP Responder
                6 - Step-up
                7 - Microsoft Trust List Signing
                Other to finish
 > 1
                0 - Server Auth
                1 - Client Auth
                2 - Code Signing
                3 - Email Protection
                4 - Timestamp
                5 - OCSP Responder
                6 - Step-up
                7 - Microsoft Trust List Signing
                Other to finish
 > 8
Is this a critical extension [y/N]?
N
  • Generate the client certificate, similar to the above
# certutil -S -c "Example CA" -n "win7client.example.com" -s "O=Example,CN=win7client.example.com" \
   -k rsa -g 4096 -v 12 -d sql:${HOME}/tmpdb -t ",," -1 -6 -8 "win7client.example.com"
-- repeat same extensions above --
  • The database should now contain
# certutil -L -d sql:${HOME}/tmpdb/

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

Example CA                                                   CTu,u,u
vpn.example.com                                              u,u,u
win7client.example.com                                       u,u,u
  • Export the p12 files that contain the host certificate, private key, and CA certificate.
# pk12util -o win7client.example.com.p12 -n "win7client.example.com" -d sql:${HOME}/tmpdb/
Enter password for PKCS12 file: 
Re-enter password: 
pk12util: PKCS12 EXPORT SUCCESSFUL
  • The win7client.example.com.p12 should then be transferred to the client and imported to the Computer certificate store. The CA cert once imported must be placed into the «Trusted Root Certification Authorities» folder of the store.
  • Export the gateway certificate and import it into the pluto DB
# pk12util -o vpn.example.com.p12 -n "vpn.example.com" -d sql:${HOME}/tmpdb/
Enter password for PKCS12 file:
Re-enter password:  
pk12util: PKCS12 EXPORT SUCCESSFUL

# ipsec import vpn.example.com.p12 
Enter password for PKCS12 file: 
pk12util: PKCS12 IMPORT SUCCESSFUL

Здравствуйте! Удалось таки настроить раздельное туннелирование в связке Debian+Strongswan (ikev2)
То есть чтоб удаленные клиенты имели доступ к офису, но дик пики и торренты гнали через свой роутер))

Но у меня есть вопрос касаемо маршрузитации. Она так и должна настраиваться *опой через Powershell на каждом устройстве?

Щас объясню как я делал сервак.

1) С сайта digital ocean «настройка сервера бубунты strongswaт» (но у меня DEBIAN!), дошёл до сюда:

65dd709c2db05186450186.jpeg

2) Коннект появился всё здорово, но не было маршрутизации

3) Прописал forwardin=1 и вот это (На пост роутинг не обращайте внимания там я прописал 10.10.15.0 и свой интерфейс ens192. Просто впадлу пистаь от руки но там всё чики пуки. Картинка взята с сайта)
iptables -t nat -A POSTROUTING -s 10.9.9.0/24 -o eth0 -m policy —dir out —pol ipsec -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.9.9.0/24 -o eth0 -j MASQUERADE

4) Конфиг стронгсвана

65dd7141b6685893647696.jpeg

5) после этого на Android всё заработало само как надо. IP белый с симки оператора и доступ к сетям компании серым. как по волшебству.

6) А вот на компе через *ОПУ!! ИНыми словами я создаю VPN подключение новое. Убираю галочку «использовать шлюз» и всё. Интернет есть из домашней сети но доступа нет к офису.

7) ОКей прописываем маршруты вручную Add-VpnConnectionRoute -ConnectionName «Contoso» -DestinationPrefix «ххх.ххх.ххх.ххх/x» -PassThru

8) После этого доступ появляется.

9) Вопрос так и должно через задницу настраиваться всё?)) А на IOS как быть? А автоматизировать как то это можно?

10) Есть может быть какие альтернативы? PPTP L2TP IKEv1….

Про OPENVPN (и OPENVPN + pfsense связку) — я знаю.

А ещё какие варианты есть чтоб по щелчку пальца?

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • После ввода пароля долго загружается windows 10
  • Как установить jupiter notebook на windows 11
  • Open source calendar for windows
  • Почему нет звука в наушниках на компьютере windows 11
  • Программа для удаления directx на windows 10