Немного о VPN: Дополнения к обзору программных реализаций
Не так давно в нашем блоге мы публиковали материал, посвященный обзору программных реализаций VPN, который вызвал достаточно бурное обсуждение. Тогда мы обещали подготовить вторую часть: на этот раз мы взглянем на следующие программные решения для создания виртуальных частных сетей: AnyConnect VPN, OpenConnect VPN, SoftEther VPN, Tinc.
AnyConnect VPN
Исследуя продукты, которые предлагает компания Cisco, достаточно сложно пройти мимо слов «Any Connect» – за этим названием скрывается решение, разрабатываемое вендором как VPN-клиент «следующего поколения». И он действительно предлагает несколько прогрессивных функций для защиты компьютеров компаний.
Например, продукт предоставляет полный сетевой доступ на базе SSL (TLS и DTLS) и IPsec, что позволяет удаленным клиентам устанавливать соединение практически с любым приложением или сетевым ресурсом, потому часто используется организациями для расширения доступа к корпоративным ноутбукам.
Подключение осуществляется с помощью клиента Cisco AnyConnect Secure Mobility Client, протокола L2TP/IPsec VPN и IPsec VPN. Решение автоматически подстраивает протокол туннелирования с учетом ограничений сети и использует протокол DTLS для оптимизации проходящего трафика, например VoIP или TCP-доступа к приложениям.
Благодаря распространению шифрования SSL, применяющегося в браузерах, AnyConnect обеспечивает удаленный доступ без клиента, что позволяет обращаться к сетевым ресурсам, веб-приложениям и приложениям терминальных служб (например Citrix) вне зависимости от их расположения.
AnyConnect способен определять операционную систему, а также антивирусы и брандмауэры, установленные на клиенте, перед установлением удаленного соединения, что тоже положительно сказывается на безопасности. Дополнительно стоит упомянуть и возможности телеметрии. Система собирает информацию о происхождении вредоносного контента, обнаруженного антивирусным программным обеспечением, которую можно использовать для повышения безопасности сети за счет модификации правил фильтрации URL.
OpenConnect VPN
OpenConnect – это открытое приложение для подключения к виртуальным частным сетям с реализацией подключений точка-точка, которое изначально было написано в качестве замены проприетарного клиента Cisco AnyConnect SSL VPN. Причиной для разработки послужила серия недостатков, обнаруженных в решении Cisco под Linux: отсутствие поддержки архитектур отличных от i386 (для платформ Linux), отсутствие интеграции с NetworkManager, отсутствие грамотной поддержки форматов пакетов RPM и DEB, невозможность работы в качестве непривилегированного пользователя, закрытость кода и др.
OpenConnect (ocserv) разрабатывался как небольшой, безопасный и быстрый VPN-сервер. Он поддерживает протокол OpenConnect SSL VPN и совместим с клиентами, использующими протокол AnyConnect SSL VPN – при этом применяются стандартные TLS и DTLS протоколы передачи данных. Более того, OpenConnect предоставляет двойной TCP/UDP VPN-канал и умеет работать со стандартными протоколами безопасности IETF.
Соединение происходит в два этапа. Сперва устанавливается простое HTTPS-соединение, по которому происходит аутентификация пользователя (с помощью сертификата, пароля или SecureID). После аутентификации пользователь получает cookie, используемое для установления VPN-соединения.
Одной из основных функций ocserv является разграничение привилегий пользователей с целью повышения безопасности и отказоустойчивости, что достигается за счет совместного использования TCP и UDP.
SoftEther VPN
Дэйю Нобори (Daiyu Nobori) начал разрабатывать SoftEther VPN, когда начинал свое обучение в Цукубском университете. В 2003 он выпустил первую версию SoftEther, но получил предупреждение от правительства Японии, которое посчитало, что проект подпадает под определение вредоносного ПО из-за своей способности обходить брандмауэры. В результате SoftEther был исключен из общего доступа.
Через какое-то время – в апреле 2004 – Mitsubishi Materials Corporation предложили Нобори купить SoftEther 1.0 и подписать контракт на 10 лет (с апреля 2004 по апрель 2014), который давал корпорации право на продажу SoftEther и запрещал автору продавать программу самостоятельно. Однако в марте 2013 Нобори начал распространять решение бесплатно, а в январе 2014 года его удалось открыть под лицензией GPLv2.
SoftEther VPN – это еще один мощное и простое решение для организации VPN. SoftEther VPN совместим с современными популярными VPN-продуктами: OpenVPN, L2TP, IPsec, EtherIP, L2TPv3, Cisco VPN Routers и MS-SSTP VPN имеет версии под Windows, Linux, OS X, FreeBSD и Solaris.
Программное обеспечение состоит из сервера, бридж-сервера, клиента, GUI и утилит администрирования. Клиент нужен для подключения одного компьютера к LAN (Remote Access VPN), а бридж-сервер – для соединения двух или более сетей (Site-to-Site VPN). Стоит отметить, что при использовании второго варианта исключается необходимость отдельной настройки параметров подключения для каждого конкретного клиентского устройства – достаточно сконфигурировать по одному VPN-шлюзу со стороны каждой из связываемых сетей. Кстати, мы подготовили небольшое практическое руководство по настройке Site-to-Site VPN – его вы можете найти по ссылке.
SoftEther VPN позволяет определить локальный мост между виртуальным хабом и физическим Ethernet-сегментом используя функцию Local Bridge, что дает возможность обмениваться пакетами между физическим адаптером и виртуальным хабом, а это, в свою очередь, разрешает настроить удаленный туннель из дома или с мобильного устройства. Также вы можете установить каскадное соединение между двумя и более удаленными виртуальными хабами, дабы объединить два и более Ethernet-сегментов в одно целое.
Не стоит забывать и про поддержку средств для обхода межсетевых экранов и систем глубокого инспектирования пакетов, которые несколько лет назад вызвали недовольство у правительства Японии. Для затруднения обнаружения туннеля в SoftEther VPN поддерживается техника закамуфлированного проброса Ethernet поверх HTTPS, при этом на стороне клиента реализуется виртуальный Ethernet-адаптер, а на стороне сервера – виртуальный Ethernet-коммутатор.
С момента публикации бинарной версии SoftEther VPN Server было зафиксировано более 80 тысяч успешных внедрений сервера, большинство из которых в Японии, США и Китае.
Tinc – это VPN-демон и один из претендентов на звание самой маленькой и самой простой в настройке VPN-реализации. Проект стартовал достаточно давно, еще в 1998 году, а активная разработка ведется по сей день, но несмотря на это tinc выглядит зрелым продуктом.
Он позволяет соединять компьютеры посредством сетей IPv4/IPv6, работающих под управлением таких ОС, как Linux, BSD, Mac OS X, Solaris, Windows. Кроме того, поддерживается работа на iPhone и iPod.
Tinc обладает несколькими интересными функциями. Весь трафик опционально сжимается с помощью zlib или lzo, а для шифрования используется LibreSSL или OpenSSL – это позволяет защитить передаваемые данные от изменения.
Что интересно, вне зависимости от настройки демонов tinc, если есть возможность, VPN-трафик направляется напрямую к точке назначения, не делая «крюков», а введение новых узлов осуществляется простым добавлением файла конфигурации – нет необходимости запускать новых демонов или создавать новые устройства.
Сегодня tinc доступен в репозиториях большинства дистрибутивов, а установочный пакет для Windows можно скачать на официальном сайте. Разработчиками взят курс на упрощение процесса установки и настройки систем на базе tinc, а в документации на сайте отражены все важные вопросы, в том числе и особенности установки в различных операционных системах.
Вместо заключения
Чтобы развернуть VPN в своей инфраструктуре вы всегда можете воспользоваться услугами сторонних VPN-провайдеров, однако стоит отметить, что их услуги обходятся недешево, особенно если к сети необходимо подключить сразу большое количество клиентов. При этом провайдер получает ваши корпоративные и личные данные – на этот шаг готова пойти не каждая компания.
Более надежным и гибким решением видится самостоятельная настройка виртуальных частных сетей на физических или виртуальных серверах (VPS/VDS). Благо в интернете есть большое количество подробных инструкций. Свой вариант с использованием облачного VPS/VDS-сервера от 1cloud предлагаем и мы (для Windows и для Linux). Такое решение легко масштабируется под текущую нагрузку на виртуальную частную сеть.
Настройка VPN КриптоПро IPsec с ГОСТовым шифрованием
Добрый день %username%! Все знают что Федеральный Закон РФ № 152 диктует нам что мы должны использовать сертифицированные средства для защиты ПДн. Была задача обеспечить безопасность канала по ФЗ-152 для удаленного подключения клиентов. Для этого было использовано сервер VPN с КриптоПро IPsec и сертификаты ГОСТ.
Инструкция внутри.
Перед настройкой служб и соединений на сервере и клиентских машин необходимо установить на них КриптоПро CSP и КриптоПро IPSec!
Настраиваем VPN сервер на Windows Server 2012 R2
Открываем оснастку Server Manager и через мастер добавления ролей выбираем тип установки на основе ролей — Role-based or feature-based installation.
Далее выбираем сервер из пула серверов.
На шаге выбора ролей выбираем роль Remote Access.
Шаг Features пропускаем без внесения изменений. На шаге выбора служб включаемой роли выберем службу DirectAccess and VPN (RAS).
После выбора службы откроется окно добавления дополнительных компонент связанных с выбранной службой. Согласимся с их установкой нажав Add Features.
Роль Web Server Role (IIS) будет при этом добавлена в мастер добавления ролей. Соответствующий появившийся шаг мастера Web Server Role (IIS) и зависимые опции Role Services пропускаем с предложенными по умолчанию настройками и запускаем процесс установки, по окончании которого будет доступна ссылка на мастер первоначальной настройки служб Remote Access – Open the Getting Started Wizard.
Мастер настройки RAS можно вызвать щёлкнув по соответствующей ссылке здесь, либо позже из оснастки Server Manager:
Так как настройка DirectAccess в контексте нашей задачи не нужна, в окне мастера выбираем вариант только VPN – Deploy VPN only.
Настройка службы Routing and Remote Access
Из Панели управления открываем оснастку Administrative Tools \ Routing and Remote Access, выбираем имя сервера и открываем контекстное меню. Выбираем пункт Configure and Enable Routing and Remote Access.
Так как нам нужен только VPN выбираем.
Дальше указываем внешний интерфейс, имеющий выход в Интернет, к которому будут подключаться удаленные клиенты.
Настраиваем диапазон адресов для клиентов.
Укажем что не используем RADIUS сервер.
Соглашаемся с запуском службы. После запуска необходимо настроить методы аутентификации пользователей.
Выпускаем ГОСТовые сертификаты в КриптоПро УЦ 2.0 для VPN.
Для того чтобы IPSec у нас работал нам нужно:
- Корневой сертификат УЦ
- Серверный сертификат
- Клиентский сертификат
И так, создадим два шаблона IPSec client IPSec server в Диспетчере УЦ.
В настройка шаблона IPSec client добавим параметр Client Authentication (1.3.6.1.5.5.7.3.2). IP security IKE intermediate (1.3.6.1.5.5.8.2.2).
Шаблон IPSec server такой же но с параметром Server Authentication (1.3.6.1.5.5.7.3.1).
После проделанной работы в Консоли управления ЦР создаем пользователей для запроса и формирования сертификата.
Далее запрашиваем сертификат для созданных пользователей. При запросе необходимо указать шаблон который мы создавали.
Выберем место хранения (контейнер) для закрытого ключа.
После нервного дерганья мышкой (это необходимо для СПЧ) задаем пароль для контейнера.
Теперь нам необходимо экспортировать сертификат в закрытый контейнер.
После копирования сертификата необходимо скопировать весь контейнер в файл для переноса на АРМ удаленного клиента. Экспортируем с помощью КриптоПро CSP в формате pfx.
По такому же алгоритму создаем сертификат для сервера только по другому шаблону и устанавливаем их с помощью оснастки Сертификаты КриптоПро CSP. Не забываем про корневой сертификат который должен быть в Доверенных корневых центры сертификации.
Настройка политики IP-безопасности на сервере
На вкладке «Методы проверки подлинности» добавляем Корневой сертификат.
По такому же алгоритму настраиваем политику IP-безопасности на каждой удаленном АРМ.
Корректность установки сертификата и проверка работоспособности IPSec, а так же логирование ошибок можно проверить с помощью утилиты КриптоПро IPSec cp_ipsec_info.exe. После нажатия меню Обновить список, Вы увидите список установленных сертификатов. На против установленного сертификата должна стоять галочка для подтверждений что все хорошо с ним.
Настройка подключения VPN к серверу
Подключение настраивается стандартно но с небольшими изменениями.
Вроде рассказал все нюансы, если есть замечания или предложения выслушаю с радостью!