Виртуальные частные сети (VPN)

Для минимизации затрат при объединении сетей в географически удаленных филиалах организации, используют технологии VPN (Virtual Private Network).

_images/vpn_xakep.png

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

Traffic Inspector Next Generation поддерживает следующие виды VPN:

  • OpenVPN
  • IPsec
  • L2TP
  • PPTP
  • Tinc VPN

OpenVPN

Для работы OpenVPN необходимы пакеты:

  • openssl
  • easy-rsa
  • openvpn

Данные пакеты являются предустановленными в Traffic Inspector Next Generation.

OpenVPN - это реализация VPN в user space, которая использует SSL/TLS для защиты туннелируемого трафика. Такой подход становится возможным благодаря механизму TUN/TAP, реализованному в виде загружаемого драйвера ядра. В рамках данного механизма, система получает виртуальный интерфейс tun (IP-трафик) или tap (Ethernet-трафик). Все пакеты, которые система «высылает» с данного виртуального интерфейса, доступны для прочтения через специальный файл устройства /dev/tun или /dev/tap. Openvpnd демон читает пакеты из файла /dev/tun или /dev/tap, и далее передает их как обычные данные через стек TCP/IP с использованием криптомеханизма SSL/TLS. Входящий туннельный трафик доставляется Openvpnd демону, который дешифрует его и инжектирует пакеты в ядро посредством записи в файл /dev/tun или /dev/tap. Таким образом, трафик считается «пришедшим» на виртуальный сетевой интерфейс tun или tap.

OpenVPN поддерживает работу в режиме «сеть - сеть» (туннель между маршрутизаторами Traffic Inspector Next Generation, расположенными в географически удаленных офисах) и в режиме «узел - сеть» (подключение удаленных сотрудников к головному офису организации).

Безотносительно того, настраивается ли OpenVPN в режиме «сеть - сеть» или «узел - сеть», настройка на одном устройстве осуществляется в разделе VPN -> OpenVPN -> Серверы, а на другом - в разделе VPN -> OpenVPN -> Клиенты.

В зависимости от сочетаний параметров, можно настроить VPN без использования сертификатов или без использования аутентификации по логину/паролю, а также с использованием как сертификатов, так и аутентификации по логину/паролю.

Если делается выбор в пользу использования сертификатов, то сертификаты должны настраиваться на обеих сторонах туннеля. Тем самым обеспечивается взаимоаутентификация клиента и сервера. Сертификат на сервере должен быть рассчитан на использования для Server authentication. Сертификат на клиенте должен быть рассчитан на использования для Client authentication. Сертификаты на сервере и клиенте могут использовать разные алгоритм подписи, хэш алгоритм подписи и длину открытого ключа.

На обоих сторонах туннеля должны быть настроены аналогичные Алгоритм шифрования и Дайджест-алгоритм аутентификации.

SSL/TLS используется всегда, даже если названия некоторых вариантов настроек не содержат аббревиатуру SSL/TLS.

Функционал TLS authentication является опциональным. Если он включается на одной стороне туннеля, то он должен быть включен и на другой стороне туннеля.

Настройка OpenVPN в режиме «сеть - сеть»

Продемонстрируем настройку OpenVPN в режиме «сеть - сеть». В нашем примере используется следующая топология:

_images/scheme_1.png

Маршрутизатор TINGA

Имя хоста TINGA
WAN IP 33.44.55.66/32
LAN IP 192.168.1.1/24

Маршрутизатор TINGB

Имя хоста TINGB
WAN IP 44.55.66.77/32
LAN IP 192.168.2.1/24

Убедитесь, что маршрутизаторы TINGA и TINGB имеют адекватные сетевые настройки. В частности, WAN-адаптерам должны быть присвоены валидные «белые» IP-адреса - в нашем примере, это адреса 33.44.55.66 и 44.55.66.77.

На обоих маршрутизаторах, в разделе Сетевой экран -> Правила на вкладке WAN, создайте правило для разрешения ICMP-трафика. С каждого из маршрутизаторов, из раздела Интерфейсы -> Диагностика -> Ping, осуществите пропинговку IP-адреса WAN-адаптера противоположного маршрутизатора. Тем самым, Вы проверяете, что передача трафика между маршрутизаторами через сеть Интернет в принципе возможна и ей ничего не препятствует.

LAN-сегмент, располагающийся за каждым из маршрутизаторов, должен использовать уникальную IP-сеть. В нашем примере, это условие выполяется - за маршрутизатором TINGA располагается IP-сеть 192.168.1.0/24, за маршрутизатором TINGB распологается IP-сеть 192.168.2.0/24.


Настройка VPN на маршрутизаторе TINGA

Пройдите в VPN -> OpenVPN -> Серверы и кликните на Добавить сервер в верхнем правом углу формы. Используйте следующие настройки (настройки, которые мы опускаем, должны остаться по умолчанию):

Режим сервера Пиринговая сеть (общий ключ)
Протокол UDP
Режим работы устройства tun
Интерфейс WAN
Локальный порт 1194
Описание OpenVPN peer 1
Совместно используемый ключ Установите флажок для генерации нового ключа
Алгоритм шифрования AES-256-CBC (256-bit)
Дайджест-алгоритм аутентификации SHA512 (512-bit)
Hardware Crypto Без аппаратного ускорения криптоалгоритмов
Туннельная сеть IPv4 172.16.1.0/24
Локальная сеть/сети IPv4 192.168.1.0/24
Удаленная сеть/сети IPv4 192.168.2.0/24
Сжатие Включено с использованием адаптивного сжатия

Кликните Сохранить для применения настроек.


Копирование ключа

После создания нового сервера, в его настройках генерируется ключ, который необходимо также прописать на противоположной стороне туннеля (на маршрутизаторе TINGB). Для копирования ключа, щелкните на иконку «карандаш» напротив ранее созданного VPN-сервера.

Пример того, как выглядит ключ:

#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
0960c87c3aafa8f306fe270c1564380b
7922543563a17b5d2636b4ef9412dd09
9ad44974ca1b293963e0f8ac9cbdd97c
2c31bf35f0df45c9e928ccb033e6d51d
2caaec02d649ad081c68d7bc7d28030e
9182c9597a83024097bea860e52d9c66
1b9e0048fbf951ce8659bc56edb7f9a1
14f7740fc9231a3750557e02eb112712
ac4b9980d4c740ec96a4357f3940ed90
d1bbf8eed3de135c886fe2eff8e8b943
ab1f52b59def4c9ebeacc5eb48425189
c43887a6237c29e0724f5f45a0f70635
10680bec8bfb67c21bf2b4866268594c
9ba093668064f9a898e6a6ad103b401d
b2047132f0dc8db2230db38444d689fa
ddba46bf6f892ae90c59415f94b82750
-----END OpenVPN Static key V1-----

Настройка VPN на маршрутизаторе TINGB

Пройдите в раздел VPN -> OpenVPN-> Клиенты и кликните по Добавить клиента в верхнем правом углу формы.

Используйте следующие настройки (настройки, которые мы опускаем, должны остаться по умолчанию):

Режим сервера Пиринговая сеть (общий ключ)
Протокол UDP
Режим работы устройства tun
Интерфейс WAN
Адрес сервера 33.44.55.66
Порт сервера 1194
Описание OpenVPN peer 2
Совместно используемый ключ Уберите флажок и вставьте ключ, скопированный с маршрутизатора TINGA
Encryption algorithm AES-256-CBC (256-bit)
Auth Digest Algorithm SHA512 (512-bit)
Hardware Crypto Без аппаратного ускорения криптоалгоритмов
Туннельная сеть IPv4 172.16.1.0/24
Локальная сеть/сети IPv4 192.168.2.0/24
Удаленная сеть/сети IPv4 192.168.1.0/24
Сжатие Включено с использованием адаптивного сжатия

Кликните Сохранить для применения настроек.


Как видно из настроек, VPN будет обладать следующими характеристиками:

SSL/TLS используется
Туннелируемый трафик инкапсулируется в UDP-пакеты
OpenVPN демон будет обрабатывать подключения только на IP-адрес, присвоенный WAN-адаптеру
Сертификаты не используются
Аутентификация по логину/паролю не используется
Аутентификация TLS не используется
Сжатие данных используется

Создание правил сетевого экрана

На маршрутизаторе, который настраивался как VPN-сервер (маршрутизатор TINGA), в разделе Сетевой экран -> Правила, на вкладке WAN, создайте правило для разрешения OpenVPN-трафика. По молчанию, OpenVPN использует протокол UDP и порт 1194.

_images/pf_rules_udp_1194.png

Для того, чтобы трафик мог передаваться между маршрутизаторами TINGA и TINGB по туннелю, на обоих маршрутизаторах, в разделе Сетевой экран -> Правила на вкладке OPENVPN, создайте правило для разрешения трафика из IP-сети 172.16.1.0/24.

Для того, чтобы трафик мог передаваться между сетями 192.168.1.0/24 и 192.168.2.0/24 по туннелю, в разделе Сетевой экран -> Правила на вкладке OPENVPN, создайте следующие правила:

На маршрутизаторе TINGA - правило для разрешения трафика из IP-сети 192.168.2.0/24.

_images/pf_rules_tinga.png

На маршрутизаторе TINGB - правило для разрешения трафика из IP-сети 192.168.1.0/24.

_images/pf_rules_tingb.png

Кликните на кнопку Сохранить изменения.


Подключенных к VPN-серверу клиентов можно посмотреть в разделе VPN-> OpenVPN-> Статус соединения.

_images/status_server.png

Настройка OpenVPN в режиме «клиент - сеть»

Продемонстрируем настройку OpenVPN в режиме «узел - сеть». В нашем примере используется следующая топология:

_images/scheme_2.png

Маршрутизатор TING

Имя хоста TING
WAN IP 11.22.33.44/32
LAN IP 192.168.1.1/24
Туннельная сеть 172.16.2.0/24

Компьютер удаленного пользователя

Имя хоста User PC
WAN IP 22.33.44.55/32
LAN IP 192.168.2.1/24
Туннельная сеть 172.16.2.0/24

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

Создание сертификата издательства

Если сертификат издательства уже существует, данный шаг можно пропустить. На маршрутизаторе TING, пройдите в раздел Система -> Доверенные сертификаты -> Полномочия и создайте сертификат издательства со следующими настройками:

Описательное имя OpenVPN CA
Метод Создать внутренний центр сертификации
Длина ключа (бит) 4096
Алгоритм дайджеста SHA512
Время существования (д) 365
Код страны RU (Russia)
Штат или область MO
Город Kolomna
Организация Smart-Soft
Эл. почта info@smart-soft.ru
Стандартное имя OpenVPN CA

Создание серверного сертификата для маршрутизатора TING

На маршрутизаторе TING, пройдите в раздел Система -> Доверенные сертификаты -> Сертификаты и создайте серверный сертификат со следующими настройками:

Метод Создать внутренний сертификат
Описательное имя OpenVPN SRV cert
Центр сертификации OpenVPN CA
Тип Сертификат сервера
Длина ключа (бит) 4096
Алгоритм дайджеста SHA512
Время существования (д) 365
Код страны RU (Russia)
Штат или область MO
Город Kolomna
Организация Smart-Soft
Эл. почта info@smart-soft.ru
Стандартное имя OpenVPN server cert

Создание пользователя и клиентского сертификата

Создайте учетную запись для пользователя в разделе Система -> Доступ -> Пользователи на маршрутизаторе TING.

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

Метод Создать внутренний сертификат
Описательное имя danny
Центр сертификации OpenVPN CA
Тип Сертификат клиента
Длина ключа (бит) 4096
Алгоритм дайджеста SHA512
Время существования (д) 365
Код страны RU (Russia)
Штат или область MO
Город Kolomna
Организация Smart-Soft
Эл. почта info@smart-soft.ru
Стандартное имя danny

Настройка VPN на маршрутизаторе TING

Пройдите в VPN -> OpenVPN -> Серверы и кликните на Добавить сервер в верхнем правом углу формы. Используйте следующие настройки (настройки, которые мы опускаем, должны остаться по умолчанию):

Режим сервера Удаленный доступ (SSL/TLS + аутентификация пользователя)
Сервер для аутентификации Локальная база данных
Протокол UDP
Режим работы устройства tun
Интерфейс WAN
Локальный порт 1194
Описание OpenVPN Server
Центр сертификации пиров Сертификат OpenVPN CA
Сертификат сервера Сертификат OpenVPN SRV cert
Длина параметров DH 4096
Алгоритм шифрования AES-256-CBC (256-bit)
Дайджест-алгоритм аутентификации SHA512 (512-bit)
Hardware Crypto Без аппаратного ускорения криптоалгоритмов
Уровень сертификата Один (клиент + сервер)
Туннельная сеть IPv4 172.16.1.0/24
Локальная сеть/сети IPv4 192.168.1.0/24
Сжатие Включено с использованием адаптивного сжатия
Отключить IPv6 Флаг установлен
DNS-серверы 8.8.8.8

Кликните Сохранить для применения настроек.


Как видно из настроек, VPN будет обладать следующими характеристиками:

SSL/TLS используется
Туннелируемый трафик инкапсулируется в UDP-пакеты
OpenVPN демон будет обрабатывать подключения только на IP-адрес, присвоенный WAN-адаптеру
Сертификаты используются для взаимоаутентификации
Аутентификация по логину/паролю используется
Аутентификация TLS не используется
Сжатие данных используется

Создание правил сетевого экрана

На маршрутизаторе TING, в разделе Сетевой экран -> Правила, на вкладке WAN, создайте правило для разрешения OpenVPN-трафика. По молчанию, OpenVPN использует протокол UDP и порт 1194.

_images/pf_rules_udp_1194.png

Для того, чтобы разрешить VPN-клиентам обращаться в сеть 192.168.1.0/24, находящуюся за маршрутизатором TING, и на сам маршрутизатором TING через туннель, на маршрутизаторе TING, в разделе Сетевой экран -> Правила на вкладке OPENVPN, создайте правило для разрешения трафика из IP-сети 172.16.1.0/24.

_images/pf_rules_ting.png

Кликните на кнопку Сохранить изменения.


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

Перенос сертификатов и ключей

На маршрутизаторе TING, пройдите в раздел Система -> Доверенные сертификаты -> Полномочия, экспортируйте ранее созданные объекты и сохраните их в виде файлов на компьютере удаленного пользователя:

Объект Файл
Сертификат издательства OpenVPN CA OpenVPN+CA.crt
Клиентский сертификат danny.crt
Секретный ключ, ассоциированный с клиентским сертификатом danny.key

Установка OpenVPN-клиента Viscosity

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


Настройка VPN

Создайте новое VPN-подключение.

На вкладке General укажите настройки, аналогичные приведенным на скриншоте:

_images/visc_general.png

На вкладке Authentication укажите настройки, аналогичные приведенным на скриншоте:

_images/visc_authentication.png

На вкладке Options укажите настройки, аналогичные приведенным на скриншоте:

_images/visc_options.png

На вкладке Networking оставьте настройки без изменений:

_images/visc_networking.png

На вкладке Transport оставьте настройки без изменений:

_images/visc_transport.png

На вкладке Advanced в окне дополнительных конфигурационных команд OpenVPN, укажите алгоритм шифрования и аутентификации:

cipher AES-256-CBC
auth SHA512
_images/visc_advanced.png

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

_images/visc_connection.png



Настройка IPsec IKEv2 с EAP-MSCHAPv2 в режиме «клиент - сеть»

Данный режим IPsec предполагает использование ISAKMP/IKEv2 для установления ассоциаций безопасности (security association).

На фазе IKE_SA_INIT, IKEv2 использует X.509 PKI и сертификаты для нужд аутентификации сервера. Следовательно, нам потребуется подготовить нужные X.509 сертификаты.

Аутентификация VPN-клиентов проводится с использованием EAP-MSCHAPv2.

Безопасность трафика обеспечивается за счет протокола ESP (Encapsulating Security Payload) в туннельном режиме.

В операционной системе Windows данный тип VPN называется IKEv2.

В нашем примере VPN-клиент подключается к устройству TING со стороны WAN-адаптера, который имеет IP-адрес 192.168.13.240.

В VPN-туннеле будет использована IP-сеть 172.16.0.0/24.

Операции с сертификатами

Создание серверного сертификата

Зайдите в раздел Система -> Доверенные сертификаты -> Сертификаты и нажмите на кнопку Добавить или импортировать сертификат.

Заполните следующие поля:

Метод Создать внутренний сертификат
Описательное имя IKEv2 certificate
Центр сертификации TING CA
Тип Сертификат сервера
Длина ключа (бит) 2048
Алгоритм дайджеста SHA256
Время существования (д) 365

В поле Стандартное имя указываем либо полное DNS-имя нашего устройства TING (которое резолвится в IP-адрес, присвоенный WAN-адаптеру устройства TING), либо IP-адрес WAN-адаптера устройства TING.

При необходимости добавляем поле/поля Альтернативные Имена со значениями IP-адрес или DNS-имя. Эти значения могут использоваться у VPN-клиента в поле Имя компьютера или IP-адрес назначения в свойствах VPN-подключения.

Остальные поля могут быть заполнены как прочерк.

Нажимаем кнопку Сохранить.

Примечание

Позднее мы используем данный серверный сертификат в настройках IPSec на устройстве TING.


Экспорт сертификата издательства

Зайдите в раздел Система -> Доверенные сертификаты -> Полномочия.

В строке TING CA нажмите на иконку экспорта сертификата. Нажимаем Сохранить как и сохраняем файл ting-ca.crt к себе на компьютер.

Примечание

Позднее мы импортируем издательский сертификат ting-ca.crt на VPN-клиенте.


Настройка IPSeс на сервере

Зайдите в раздел VPN -> IPsec -> Мобильные клиенты.

Установите флаг напротив настройки Включен.

В поле Аутентификация пользователей выберите Локальная база.

В поле Пул виртуальных адресов установите флаг Предоставление виртуальных IP-адресов клиентам.

Укажите сеть, IP-адреса которой будут выдаваться VPN-клиентам, например 172.16.0.0/24.

Нажимаем кнопку Сохранить.

После этого вверху страницы появится кнопка Создайте Phase1, на которую нужно кликнуть.


Настройки Phase1-записи

Мы оказываемся в разделе VPN -> IPsec -> Настройки туннеля, где должны задать следующие настройки:

Общая информация

Метод подключения по умолчанию
Версия Обмена ключами V2
Протокол Интернета IPv4
Интерфейс WAN

Предложения Phase 1 (Аутентификация)

Метод аутентификации EAP-MSCHAPV2
Мой идентификатор Уникальное имя, 192.168.13.240
Мой Сертификат IKEv2 certificate

В текстбоксе под полем Мой идентификатор, пропишите имя, соответствующее стандартному имени, указанному при генерации серверного сертификата (DNS-имя или IP-адрес). В нашем случае это IP-адрес 192.168.13.240.

В поле Мой Сертификат, выберите ранее сгенерированный серверный сертификат, в нашем примере IKEv2 certificate.

Предложения Phase 1 (Алгоритмы)

Алгоритмы шифрования AES, 256
Алгоритм хеша SHA256
Группа ключей DH 2 (2014 bit)
Время существования 28800

Нажмите кнопку Сохранить.


Настройки Phase2-записи

Кликните на кнопку Показать Phase2-записи 0, далее кликните на иконку плюс, ближайшую к надписи PFS.

Общая информация

Режим Tunnel IPv4

Локальная Сеть

Тип Подсеть LAN

Предложение Phase 2 (Обмен SA/Ключами)

Протокол ESP
Алгоритмы шифрования AES, автоматически
Алгоритмы хеша SHA1
Группа ключей PFS off
Время существования 3600

Нажмите кнопку Сохранить.


Установите флаг Включить IPsec и нажмите на кнопку Сохранить.


Зайдите в раздел VPN -> IPsec -> Предварительно выданные ключи.

Кликните на иконку плюс.

В появившемся окне введите логин и пароль пользователя:

Идентификатор user
Предварительно выданный ключ 123
Тип EAP

Нажимаем Сохранить.


После осуществления всех манипуляций, настройки IPSec выглядят следующим образом:

_images/ipsec_settings.png

Настройка межсетевого экрана

Зайдите в раздел Межсетевой экран -> Правила и создайте три правила:

  • Правило на WAN-интерфейсе, разрешающее протокол ISAKMP/IKE (UDP-порт 500)
  • Правило на WAN-интерфейсе, разрешающее протокол ESP (ID 50)
  • Правило на IPSEC-интерфейсе, разрешающее любой трафик

Правило на WAN-интерфейсе, разрешающее протокол ISAKMP/IKE (UDP-порт 500)

Действие разрешение
Интерфейс WAN
Версии TCP/IP IPv4
Протокол UDP
Диапазон портов назначения ISAKMP
Отправитель любой
Получатель любой

Нажмите Сохранить.

Правило на WAN-интерфейсе, разрешающее протокол ESP (ID 50)

Действие разрешение
Интерфейс WAN
Версии TCP/IP IPv4
Протокол ESP
Отправитель любой
Получатель любой

Нажмите Сохранить.

Правило на IPSEC-интерфейсе, разрешающее любой трафик

Действие разрешение
Интерфейс WAN
Версии TCP/IP IPv4
Протокол любой
Отправитель любой
Получатель любой

Нажмите Сохранить.

Нажмите Применить изменения.


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

Установка оснастки для работы с сертификатами

На VPN-клиенте создайте оснастку для работы с сертификатами. Для этого, в меню Выполнить (вызывается по нажатию Win+R) наберите mmc и нажмите Enter.

В консоли MMC, выберите Файл -> Добавить или удалить оснастку…. Из столбца Доступные оснастки выбираем Сертификаты и нажимаем кнопку Добавить, в появившемся окне Оснастка диспетчера сертификатов выбираем Учетной записи компьютера, нажимаем Далее, Далее, ОК. Присвойте сохраняемому файлу консоли MMC имя certmgr.

_images/vpn_cert_snapin.png

Установка сертификата издательства

Откройте ранее добавленную остаску certmgr.

Пройдите в Сертификаты (локальный компьютер)\Доверенные корневые центры сертификации\Сертификаты.

Через меню Действие\Все задачи\Импорт, либо через контекстное меню Все задачи\Импорт, импортируйте сертификат издательства ting-ca.crt, который мы ранее экспортировали из устройства TING в пункте Экспорт сертификата издательства.


Настройка VPN-соединения

Зайдите в Панель управления\Все элементы панели управления\Центр управления сетями и общим доступом.

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

В поле Интернет-адрес введите доменное имя или IP-адрес WAN-адаптера устройства TING, в нашем примере IP-адрес 192.168.13.240.

Примечание

Доменное имя или IP-адрес должны совпадать с тем, что мы указывали в сгенерированном серверном сертификате в пункте Создание серверного сертификата.

В поле Имя местоназначения введите произвольное имя создаваемого VPN-соединения, например IPSec VPN Сonnection. Установите флаг Не подключаться сейчас, ….

Зайдите в Панель управления\Сеть и Интернет\Сетевые подключения. Удостоверьтесь, что в свойствах соединения IPSec VPN Сonnection указаны настройки, аналогичные тем, что продемонстрированы на скриншотах:

Вкладка Общие

_images/vpn_conn_general.png

Вкладка Параметры

_images/vpn_conn_parameters.png

Вкладка Безопасность

_images/vpn_conn_security.png

Вкладка Сеть

_images/vpn_conn_network.png

Вкладка Доступ

_images/vpn_conn_access.png

При установке подключения к VPN-серверу через соединение IPSec VPN Сonnection укажите:

Имя пользователя user
Пароль 123