Привет, Хабровчане!
Сегодня мы хотим рассказать о преимуществах технологии SSL VPN и о практике работы со шлюзом Stonesoft SSL. В статье будет описана настройка данного решения для проброса толстого клиента (на примере хорошо знакомой многим 1С Бухгалтерии) через протокол HTTPS с применением ГОСТовых алгоритмов шифрования. Это позволит нашему любимому главному бухгалтеру удаленно работать с базой 1С по зашифрованному каналу прямо с дачи, нам – быстро подключить к системе пару сотен разбросанных по стране небольших офисов, а нашей организации – выполнить требования законодательства по защите, например, персональных данных.
В статье описывается способ безопасной публикации клиент-серверных приложений через Веб, руководствуясь которым, можно организовать удаленный доступ практически к любому корпоративному ресурсу.
Что такое SSL VPN
Итак, давайте посмотрим, как SSL VPN может облегчить нам жизнь и сэкономить время и нервы. Описывать технологию смысла не вижу, чтобы не докучать сухой технической информацией продвинутому читателю. Освежить знания по SSL VPN можно здесь. Мы же остановимся на практике использования и подумаем, чем же так хорош SSL VPN в сравнении с классическим IPSec VPN.
Суть технологии SSL VPN состоит в следующем: клиент подключается по 443 порту к шлюзу, который в свою очередь инициирует соединение с удаленным сервером (в нашем случае – это 1С), как прокси-сервер.
Во-первых, это удобно. Можно организовать доступ к любому сервису/ресурсу с любого пользовательского устройства из любого места, где есть Интернет. Не надо устанавливать никаких VPN-клиентов, настраивать их, как в случае использования IPSec VPN, достаточно в браузере ввести адрес, аутентифицироваться и работать. Пользователь сможет получить удаленный доступ к корпоративному ресурсу даже через публичный или гостевой Wi-Fi, т.к. 443 порт открыт почти во всех сетях.
Во-вторых, это просто. Просто для всех. Вам не придется объяснять тетеньке-бухгалтеру пользователю, что для получения доступа к какому-то ресурсу ему надо в трее найти иконку VPN-клиента, нажать на ней правой кнопкой мыши, из списка выбрать адрес шлюза, нажать «Connect», ввести логин и пароль (снова привет IPSec VPN). Просто для администраторов, т.к. не надо выдавать пользователю рабочий ноутбук для командировок с установленным и настроенным VPN-клиентом, антивирусом и другим корпоративным ПО.
В-третьих, это безопасно. Есть много механизмов защиты, которые шлюз SSL VPN может применять к клиенту. Два главных механизма – это аутентификация и шифрование. Методы и средства аутентификации можно выбрать самые различные: по логину/паролю, RADIUS, сертификаты, одноразовые пароли, интеграция с Active Directory и многие другие, в зависимости от выбранного решения SSL VPN.
Шифрование тоже на любой вкус, все зависит от вендора. Например, Stonesoft SSL, который мы рассмотрим в этой статье, предлагает нам выбирать из следующих алгоритмов: AES, DES, 3DES, RC2, RC4 и, в версии для России, ГОСТ 28147-89, что очень радует наших гос. регуляторов. Так как мы живем в России и законы не нарушаем, то наличие у этого продукта сертификатов соответствия ФСТЭК и ФСБ позволяет существенно расширить область его применения.
Также можно выделить такие интересные механизмы защиты, как проверка конечного устройства пользователя на соответствие политике безопасности и удаление следов сессии по окончании соединения (cookies, история URL, данные из кэша и временные файлы).
Что имеем и что хотим
Задача стоит следующая: организовать защищенный доступ к серверу 1С по протоколу HTTPS с использованием ГОСТового шифрования с ноутбука бухгалтера, который любит отдыхать и работать на даче. По сути, мы будем прокидывать толстый клиент 1С, который работает по «своим» портам (1540 TCP, 1560-1591 TCP), через порт 443 TCP.
Ниже рассмотрим 2 варианта исполнения подключения через шлюз SSL VPN:
- 1С-клиент работает с сервером 1С по портам 1540 TCP, 1560-1591 TCP, база 1С хранится в СУБД, установленной на том же сервере
- 1С-клиент работает напрямую с базой, которая находится в папке с общим доступом
Для реализации этих сценариев в лаборатории был собран стенд:
- Сервер 1С: Windows Server 2008 R2 x64, MS SQL 2008 R2 Express, 1С 8.3.1.531
- Клиент: Windows XP SP2, клиент 1С 8.3.1.531, КриптоПро CSP 3.6
- Межсетевой экран (МЭ): Stonesoft FW/VPN 5.4.3.9685
- Шлюз SSL VPN: Stonesoft SSL 1.5.200.2002 kc1 GOST, для клиента доступен по адресу https://ssl.sglab.ru/
- Удостоверяющий центр: тестовый УЦ КриптоПро
МЭ стоит для эмуляции работы через интернет: на внешнем интерфейсе открыт только порт 443 TCP
и настроен NAT на интерфейс шлюза SSL VPN.
Как видно из схемы и правил на МЭ, доступа извне к серверу 1С нет (безопасность прежде всего!).
Настраиваем SSL VPN
Описывать процесс установки прошивки с поддержкой ГОСТ на шлюз SSL VPN и его первоначальной настройки не буду, все это можно найти в Интернетах и гайдах. Так что условимся, что у нас есть чистый Stonesoft SSL с установленными криптобиблиотеками КритоПро CSP, сгенерированными ключами, импортированными сертификатами шлюза и доверенного Удостоверяющего центра.
Ниже приведены сертификаты шлюза Stonesoft SSL и пользователя, выпущенные на тестовом Удостоверяющем центре.
Сертификат шлюза SSL VPN:
Сертификат пользователя:
Настройку шлюза SSL VPN можно разделить на следующие шаги:
- Настройка аутентификации пользователей
- Публикация ресурсов на портале приложений шлюза SSL VPN
- Вариант №1: 1С-клиент работает с сервером 1С по портам 1540 TCP, 1560-1591 TCP
- Создание туннельного ресурса
- Создание объекта на портале приложений
- Вариант №2: 1С-клиент работает напрямую с базой, которая находится в папке с общим доступом
- Создание стандартного ресурса
- Вариант №1: 1С-клиент работает с сервером 1С по портам 1540 TCP, 1560-1591 TCP
Ниже приведено подробное описание настроек со скриншотами.
Настройка аутентификации пользователей
Сначала настроим аутентификацию пользователей. Мы выбрали следующую схему: аутентификация по сертификатам, выданным только доверенным УЦ без привязки к какому-либо хранилищу пользователей. Т.е. если у пользователя есть сертификат, выданный УЦ, который шлюз считает доверенным, то пользователь может аутентифицироваться. Итак, заходим на https://10.30.0.213:8443/ и попадаем на консоль администрирования шлюза Stonesoft SSL.
Идем на вкладку Manage System – Authentication Methods.
Добавляем новый метод – жмем Add Authentication Method…, выбираем тип User Certificate, задаем имя методу и выбираем УЦ, который будет использоваться для данного типа аутентификации.
По умолчанию аутентифицироваться может не любой пользователь, а только тот, чья учетная запись известна шлюзу. Для нашей схемы нужно добавить новый атрибут для созданного метода аутентификации: жмем Add Extended Property…, выбираем атрибут Allow user not listed in Any User Storage и выставляем значение атрибута true.
Все, новый метод аутентификации готов, для применения изменений жмем кнопку Publish. Это, наверное, самая важная кнопка при работе с Stonesoft SSL, не забывайте жать ее каждый раз, когда что-то меняете.
Публикация ресурса. Вариант №1
Теперь надо опубликовать ресурс, чтобы он был доступен пользователю на портале приложений шлюза SSL VPN. Сначала рассмотрим Вариант №1: 1С-клиент подключается к серверу 1С и работает с базой в СУБД.
Процесс создания и публикации ресурса можно описать следующим образом:
- Создание хоста (в нашем случае это сервер 1С)
- Создание ссылки на портале приложений шлюза SSL VPN
Идем на вкладку Manage Resource Access – Tunnel Resources, жмем Add Tunnel Resource Host… Заполняем имя ресурса, IP-адрес и порты, по которым мы хотим получить доступ к серверу 1С.
Теперь нужно создать элемент на портале приложений. Идем на вкладку Manage Resource Access – Tunnel Sets, жмем Add Tunnel Set и заполняем имя, выбираем иконку, которая будет видна пользователю (можно выбрать из готовых или загрузить свою), в поле Link Text пишем текст, который будет отображаться под иконкой.
На следующем шаге мы должны указать шлюзу SSL VPN, какой трафик заворачивать в SSL, для этого добавляем динамический туннель, для чего жмем Add Dynamic Tunnel to the Set… и из выпадающего списка в поле Resource выбираем хост с сервером 1С. Все остальные поля заполняются автоматически в соответствии со свойствами ресурса, который мы выбрали.
Теперь самый ответственный момент, необходимо правильно написать команду, которая будет выполняться на клиентском ПК, автоматически запуская клиент 1С с требуемыми параметрами подключения к серверу. У меня она выглядит следующим образом: «C:Program Files1cv88.3.1.531bin1cv8c.exe» /S«10.30.0.2381c». Стоит помнить о том, что если пользователей несколько, то у всех путь к исполняемому файлу должен быть одинаковым. Если это по каким-то причинам невозможно, то можно поле Startup Command оставить пустым, тогда клиент 1С придется запускать вручную и указывать все параметры после открытия ресурса на портале приложений.
После всех проделанных действий жмем Publish.
Теперь можем проверить, что у нас вышло. Запускаем браузер, пишем в адресной строке https://ssl.sglab.ru/ и видим окно с выбором сертификата.
После аутентификации попадаем на портал приложений.
Жмем на 1С и видим, как загружается Access Client, запускается команда, которую мы писали в свойствах Tunnel Set и в итоге стартует клиент 1С: Предприятие и подключается к серверу.
В момент подключения можно посмотреть логи на МЭ и убедиться, что все работает через HTTPS.
Публикация ресурса. Вариант №2
Теперь настроим другой сценарий – пользователь жмет на иконке 1С на портале приложений и получает доступ к папке с базой на сервере 1С.
Заходим на консоль администрирования шлюза, идем на вкладку Manage Resource Access – Standard Resources – File Sharing Resources – Microsoft Windows File Share и жмем Add this Standard Resource.
Заполняем имя ресурса, IP-адрес сервера 1С, имя папки с базой, к которой открыт общий доступ, выбираем иконку для портала приложений и пишем отображаемое имя.
Собственно, все. Не забываем опубликовать изменения на портале.
Теперь с клиентского ПК снова заходим на https://ssl.sglab.ru/ и жмем на созданной иконке База 1С.
После чего мы видим папку с базой 1С.
Далее все просто и понятно – добавляем в клиенте 1С новую информационную базу, указываем путь \10.30.0.2381cbase и работаем с ней по защищенному каналу через HTTPS.
Заключение
Таким образом, мы настроили шлюз SSL VPN для удаленной работы с сервером 1С в двух вариантах по зашифрованному ГОСТовыми алгоритмами каналу и позволили нашим пользователям безопасно работать с корпоративными ресурсами через толстые клиенты.
Это далеко не все, на что способен Stonesoft SSL VPN. Приведенную конфигурацию несложно будет «оттюнинговать» под свои потребности.
Надеемся, эта статья будет вам полезна. В дальнейшем мы планируем продолжить делиться с хабражителями нашим опытом в области информационной безопасности. Будем рады вопросам и пожеланиям в комментах.
Всем спасибо за внимание!
Автор: itsecurity