- Что такое ssl?
- Описание системы
- Если закрытый ключ в виде файлов
- Использование электронной подписи без токена или флешки (установка в реестр)
- L2tp vpn не работает на некоторых windows компьютерах в локальной сети
- Для клиентов windows и linux (более универсальный способ)
- Добавление нового клиента
- Защита сервера vpn
- Когда нужно переносить сертификаты в другое место?
- Массовый перенос ключей и сертификатов cryptopro на другой компьютер
- Метод №4 – создание ключа реестра инкапсуляции udp с помощью редактора реестра
- Надежные средства аутентификации для виртуальной частной сети
- Настройка базового брандмауэра windows 2003
- Настройка клиента l2tpipsecvpn
- Настройка центра сертификатов и ias в домене windows 2000
- Определение ip-адреса инициатора l2tp-подключения (windows 2003)?
- Ошибка копирования контейнера
- Причины возникновения ошибок ssl-соединения
- Проблематика
- Способ 1: криптопро csp
- Способ 2: средства windows
- Усовершенствованные протоколы с шифрованием
- Установить ssl-сертификат
- Установка strongswan (ipsec)
Что такое ssl?
SSL (Secure Socket Layer) — это интернет-протокол для создания зашифрованного соединения между пользователем и сервером, который гарантирует безопасную передачу данных.
Когда пользователь заходит на сайт, браузер запрашивает у сервера информацию о наличии сертификата. Если сертификат установлен, сервер отвечает положительно и отправляет копию SSL-сертификата браузеру. Затем браузер проверяет сертификат, название которого должно совпадать с именем сайта, срок действия сертификата и наличие корневого сертификата, выданного центром сертификации.
SSL-сертификатыЗащита сайтов любого уровняот12 руб/год
Описание системы
VPN будет работать по схеме IPSec L2TP PPP. Протокол Point-to-Point Protocol (PPP) работает на канальном уровне модели OSI и обеспечивает аутентификацию пользователя и шифрование передаваемых данных. Его данные инкапсулируются в данные протокола L2TP, который собственно обеспечивает создание соединения в VPN сети, но не обеспечивает аутентификацию и шифрование.
Данные L2TP инкапсулируются в протокол IPSec, который тоже обеспечивает аутентификацию и шифрование, но в отличие от протокола PPP аутентификация и шифрование происходит на уровне устройств, а не на уровне пользователей.
Данная особенность позволяет обеспечить аутентификацию пользователей только с определённых устройств. Мы же будем использовать протокол IPSec как данное и позволим производить аутентификацию пользователей с любого устройства.
Аутентификация пользователя с помощью смарт-карт будет производиться на уровне протокола PPP с помощью протокола EAP-TLS.
Более подробную информации о работе данной схемы можно найти в этой статье.
Если закрытый ключ в виде файлов
Закрытый ключ может быть в виде 6 файлов: header.key, masks.key, masks2.key, name.key, primary.key, primary2.key
Тут есть тонкость если эти файлы записаны на жесткий диск вашего компьютера, то КриптоПро CSP не сможет их прочитать, поэтому все действия надо производить предварительно записав их на флешку (съемный носитель), причем нужно расположить их в папку первого уровня, например: E:Andrey{файлики}, если расположить в E:Andreykeys{файлики}, то работать не будет.
(Если вы не боитесь командной строки, то съемный носитель можно сэмулировать примерно так: subst x: C:tmp появится новый диск (X:), в нем будет содержимое папки C:tmp, он исчезнет после перезагрузки. Такой способ можно использовать если вы планируете установить ключи в реестр)
Нашли файлы, записали на флешку, переходим к следующему шагу.
Использование электронной подписи без токена или флешки (установка в реестр)
Если скорость и удобство работы для вас стоит чуть выше чем безопасность, то можно установить ваш закрытый ключ в реестр Windows. Для этого нужно сделать несколько простых действий:
- Выполните подготовку закрытого ключа, описанную в пунктах (2) или (3)
- Далее открываем КриптоПро CSP
- Заходим на вкладку Сервис
- Нажимаем кнопку Скопировать
- С помощью кнопки Обзор выбираем наш ключ
- Нажимаем кнопку Далее, потом придумаем какое-нибудь имя, например «Пупкин, ООО Ромашка» и нажимаем кнопку Готово
- Появится окно, в котором будет предложено выбрать носитель, выбираем Реестр, жмем Ок
- Система попросит Установить пароль для контейнера, придумываем пароль, жмем Ок
Чтобы для сертификата проставить ссылку на этот закрытый ключ выполните действия из пункта (4).
Важное замечание: портал OpenSRO не «увидит» сертификат, если вышел срок его действия.
L2tp vpn не работает на некоторых windows компьютерах в локальной сети
Есть еще один интересный баг. Если в вашей локальной сети несколько Windows компьютеров, вы не сможете установить более одного одновременного подключения к внешнему L2TP/IPSec VPN серверу. Если при наличии активного VPN туннеля с одного клиента, вы попытаетесь подключиться к тому же самому VPN серверу с другого компьютера, появится ошибка с кодом 809 или 789:
Error 789: The L2TP connection attempt failed because the security layer encountered a processing error during initial negotiations with the remove computer.
Что интересно, эта проблема наблюдется только с Windows-устройствами. На устройствах с Linux/MacOS/Android в этой же локальной сети таких проблем нет. Можно без проблем одновременно подключиться к VPN L2TP серверу с нескольких устройств.
По информации на TechNet проблема связана с некорректной реализацией клиента L2TP/IPSec клиента в Windows (не исправляется уже много лет).
Для исправления этого бага нужно изменить два параметра реестра в ветке HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRasManParameters и перезагрузите компьютре:
- AllowL2TPWeakCrypto – изменить на 00000001 (ослабляет уровень шифрования, для L2TP/IPSec используются алгоритмы MD5 и DES)
- ProhibitIPSec – изменить на 00000000 (включает шифрование IPsec, которое часто отключается некоторыми VPN клиентами или утилитами)
Для изменения этих параметров реестра достаточно выполнить команды:reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetServicesRasmanParameters" /v AllowL2TPWeakCrypto /t REG_DWORD /d 1 /f
reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetServicesRasmanParameters" /v ProhibitIpSec /t REG_DWORD /d 0 /f
Для изменения этих параметров реестра достаточно выполнить команды:reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetServicesRasmanParameters">
Это включает поддержку нескольких одновременных L2TP/IPSec-подключений в Windows через общий внешний IP адрес (работает на всех версиях, начиная с Windows XP и заканчивая Windows 10).
Для клиентов windows и linux (более универсальный способ)
Данный способ является более универсальным, т.к. позволяет сгенерировать ключ и сертификат, который будет успешно распознаваться у пользователей Windows и Linux, но он требует наличие машины на Windows для проведения процедуры генерации ключей.
Перед генерацией запросов и импортом сертификатов необходимо добавить корневой сертификат VPN сети в список доверенных. Для этого откроем его и в открывшемся окне выберем опцию «Установить сертификат»:
В открывшемся окне выберем установку сертификата для локального пользователя:
Установим сертификат в хранилище доверенных корневых сертификатов УЦ:
После всех этих действий соглашаемся со всеми дальнейшими пунктами. Теперь система настроена.
Создадим файл cert.tmp со следующим содержимым:
[NewRequest]
Subject = "CN=client"
KeyLength = 2048
KeySpec = "AT_KEYEXCHANGE"
ProviderName = "Microsoft Base Smart Card Crypto Provider"
KeyUsage = "CERT_KEY_ENCIPHERMENT_KEY_USAGE"
KeyUsageProperty = "NCRYPT_ALLOW_DECRYPT_FLAG"
RequestType = PKCS10
SMIME = FALSE
После этого сгенерируем ключевую пару и создадим заявку на сертификат. Для этого откроем powershell и введём следующую команду:
certreq.exe -new -pin $PIN .cert.tmp .client.req
Отправьте созданную заявку client.req в ваш УЦ и дождитесь получения сертификата client.pem. Его можно записать на токен и добавить в хранилище сертификатов Windows с помощью следующей команды:
certreq.exe -accept .client.pem
Стоит заметить, что аналогичные действия можно воспроизвести с помощью графического интерфейса программы mmc, но данный способ является более времязатратным и менее программируемым.
Добавление нового клиента
Чтобы добавить нового клиента в сеть, необходимо записать его сертификат в список доверенных для данного клиента.
Если пользователь хочет стать участником VPN сети, он создаёт ключевую пару и заявку на сертификат для данного клиента. Если пользователь доверенный, то данную заявку можно подписать, а получившийся сертификат записать в директорию сертификатов:
sudo openssl x509 -req -in client.req -CAkey /etc/ppp/keys/ca.pem -CA /etc/ppp/certs/ca.pem -out /etc/ppp/certs/client.pem -CAcreateserial
Добавим строчку в файл /etc/ppp/eaptls-server для сопоставления имени клиента и его сертификата:
"client" * /etc/ppp/certs/client.pem /etc/ppp/certs/server.pem /etc/ppp/certs/ca.pem /etc/ppp/keys/server.pem *
NOTEЧтобы не запутаться, лучше чтобы: Common Name, имя файла с сертификатом и имя пользователя были уникальными.
Также стоит проверить, что в других файлах аутентификации нигде не фигурирует имя пользователя, которого мы добавляем, иначе возникнут проблемы со способом аутентификации пользователя.
Защита сервера vpn
Итак, наш сервер готов к установлению VPN-соединений, но перед подключением к Internet его следовало бы обезопасить. В консоли Routing and Remote Access нужно открыть диалоговое окно Properties сервера VPN и сбросить флажок Router. Затем требуется перейти на закладку Security и щелкнуть на элементе Configure, расположенном рядом со списком Authentication provider.
Когда на экране появится диалоговое окно RADIUS Authentication, следует выбрать имя своего сервера RADIUS и щелкнуть на кнопке Edit. Стандартные настройки сервера VPN предполагают применение сервера RADIUS, но флажок Always use message authenticator по умолчанию не выставляется.
Именно по этой причине Windows, возможно, не будет использовать общий ключ, который был введен ранее при настройке службы RADIUS на данном сервере и службы IAS на контроллере домена. Установив этот флажок, мы обеспечим максимальный уровень защиты от посягательств на трафик VPN и IAS.
Щелкните на кнопке OK и перезапустите оснастку Routing and Remote Access. Правой кнопкой мыши нужно щелкнуть на папке Ports в окне этой оснастки и в контекстном меню выбрать пункт Properties. Откроется диалоговое окно Ports Properties, показанное на экране 4.
Затем нужно будет защитить все исходящие или входящие VPN-соединения, кроме удаленного доступа по протоколу L2TP. В диалоговом окне Ports Properties следует открыть свойства WAN Miniport (PPPOE), сбросить флажок Demand-dial routing connections (outbound only) и нажать OK.
Далее необходимо открыть окно WAN Miniport (PPTP), сбросить флажок Demand-dial routing, connections (outbound only), а также флажок Remote access connections (inbound only) и нажать OK. Выполним те же действия для Direct Parallel. Теперь подобраться к серверу VPN можно только через удаленное соединение по протоколу L2TP.
В диалоговом окне Ports Properties следует открыть WAN Miniport (L2TP) и сбросить флажок Demand-dial-routing connections (outbound only). Определите, какое количество соединений вы хотите поддерживать одновременно, и выделите соответствующее максимальное количество портов, после чего дважды нажмите OK.
Нужно переместиться обратно в консоль Routing and Remote Access и правой кнопкой мыши щелкнуть на папке IP Routing. В открывшемся контекстном меню следует выбрать пункт Properties. Это позволит просмотреть свойства интерфейса в Internet. Отсюда можно будет исследовать фильтры для входящих и исходящих пакетов, которые блокируют прохождение несанкционированного трафика через сервер VPN.
Когда нужно переносить сертификаты в другое место?
И так давайте рассмотрим по каким причинам у вас может появиться необходимость в копировании ваших ЭЦП в другое место.
- На текущем физическом компьютере начинает умирать жесткий диск или SSD накопитель (Как проверить жизненные показатели жесткого диска), очень частая история и жизненная, когда люди теряли все свои данные, из-за банальной жадности в покупке нового оборудования и элементарного незнания принципов резервного копирования.
- У вас производится модернизация оборудования, его улучшение и вам нужно перенести все сертификаты с закрытыми ключами на другую систему
- Вы создали отдельный сервер, в виде виртуальной машины, где будут находится все ваши сертификаты и с ними смогут работать все необходимые сотрудники, терминал для бухгалтерии. Простой пример СБИС, и когда у вас 10-20 организаций.
Массовый перенос ключей и сертификатов cryptopro на другой компьютер
Выше описанные методы хороши, когда у вас один или 5 ключиков в реестре, а как быть если их десятки. Помню лет 5 назад, когда я еще был младшим администратором, то я очень часто устанавливал электронные цифровые подписи главбуху, так как она работала в СБИС и сдавала там постоянно отчетность по огромному количеству организаций, по типу рога и копыта.
Держать кучу токенов было не вариант, и для таких вещей у нее все хранилось в реестре и копия сертификатов была на флешке в сейфе. Флешку потом потеряли, встал вопрос сделать резервную копию всего и плюс обновить систему, в виду нового компьютера, на операционной системе Windows 8.1. ЭЦП было штук 50, а так как я ценю свое время, то и искал методы, выполнить это быстрее, к счастью я его нашел.
Заключался метод переноса сертификатов из реестра, в выгрузке веток и подмене SID значения, но обо всем по порядку. О том, как посмотреть SID пользователя и что это такое я рассказывал.
Открываете командную строку cmd и вводите команду:
Метод №4 – создание ключа реестра инкапсуляции udp с помощью редактора реестра
Этот метод устранения неполадок необходимо испортить в редакторе реестра. Будьте особенно осторожны при работе с этим инструментом, так как он может безвозвратно сломать вашу систему.
Это поможет решить проблему, если вы имеете дело с клиентом или сервером L2TP VPN, который находится за преобразованием сетевых адресов или NAT.
- Откройте редактор реестра на своем компьютере, набрав «regedit» в диалоговом окне «Выполнить».
- Нажмите Да, чтобы предоставить административные привилегии, когда появится запрос UAC.
- Теперь перейдите в следующее место в редакторе реестра:
- HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services PolicyAgent
- Оказавшись там, вам нужно создать новое значение в этом разделе.
- Щелкните правой кнопкой мыши в любом месте страницы и выберите «Создать».
- Выберите значение Dword (32-битное) из представленных вариантов.
- Теперь создайте имя для нового значения Dword:
- AssumeUDPEncapsulationContextOnSendRule
- Нажмите клавишу Enter, чтобы сохранить изменения.
- Дважды щелкните по нему, а затем установите для Base значение Hexadecimal, а значение Value – 2.
- Сохраните изменения и перезагрузите компьютер.
Надежные средства аутентификации для виртуальной частной сети
Долгое время в качестве протокола дистанционного доступа для виртуальных частных сетей (Virtual Private Networks, VPN) я использовал PPTP — несмотря на его недостатки в том, что касается обеспечения защиты данных. Когда в продажу поступила Windows 2000, я с нетерпением ждал возможности использовать в этом же качестве протокол L2TP (Layer Two Tunneling Protocol), однако вскоре мне пришлось с огорчением убедиться, что в случае совместного использования L2TP и службы трансляции сетевых адресов (Network Address Translation, NAT) возникают определенные проблемы, — впрочем, об этом позже.
На базе протокола L2TP можно создать полностью управляемую и хорошо защищенную VPN с удаленным доступом, способную взаимодействовать с клиентами Windows 95 и более поздних версий. Но при этом администратору приходится решать ряд проблем, связанных с обслуживанием удаленных пользователей, которые расположены за защитным экраном NAT, с настройкой клиентов и сертификатов, с аутентификацией и с обеспечением безопасности всей системы.
Настройка базового брандмауэра windows 2003
Возможно, вы захотите повысить уровень защищенности системы от атак из Internet и с этой целью активизировать базовый брандмауэр Windows 2003. После активизации службы Routing and Remote Access средства Internet Connection Firewall (ICF) и Internet Connection Sharing (ICS) становятся недоступными.
Вместо этого для обеспечения таких функций, как исследование содержимого пакетов по технологии проверки пакетов и трансляции сетевых адресов, служба Routing and Remote Access предусматривает сочетание NAT/базовый брандмауэр. Чтобы воспользоваться данной возможностью, правой кнопкой мыши нужно щелкнуть на папке IP Routing, в раскрывшемся меню выбрать пункт Properties, перейти на закладку General и далее выбрать элемент New Routing Protocol.
В диалоговом окне New Routing Protocol следует выбрать элемент NAT/Basic Firewall и затем нажать OK. Внутри папки IP Routing будет создана новая папка NAT/Basic Firewall. Правой кнопкой мыши следует щелкнуть на элементе NAT/Basic Firewall и в контекстном меню выбрать пункт New Interface.
В раскрывшемся списке необходимо выделить элемент Internet interface, после чего щелкнуть на кнопке OK. На экране появится диалоговое окно Network Address Translation Properties (оно показано на экране 5). В этом окне нужно выбрать элемент Basic firewall only — ведь мы не хотим, чтобы клиенты внутренней сети выходили в Internet через сервер VPN.
Далее следует щелкнуть на элементе Inbound Filters и удалить все фильтры, имеющие отношение к порту 47 (GRE) или к порту 1723 TCP (PPTP). Оба порта совместимы с протоколом PPTP, и хотя мы отключили PPTP в настройках Routing and Remote Access, базовый брандмауэр по умолчанию все еще пропускает трафик по этому протоколу.
В диалоговом окне Network Address Translations Properties нужно щелкнуть на элементе Outbound Filters и удалить те же записи. Далее необходимо перейти на закладку Services and Ports. На этой закладке можно указать, какие типы трафика будет пропускать базовый брандмауэр.
Настройка клиента l2tpipsecvpn
Запускаем установленный клиент:
После запуска у вас должен открыться апплет L2tpIpsecVPN. Нажмём на него правой кнопкой мыши и произведём настройку соединения:
Для работы с токенами, в первую очередь, укажем путь opensc движка OpenSSL и PKCS#11 библиотеки. Для этого откройте вкладку «Preferences» для настройки параметров openssl:
Закроем окно настроек OpenSSL и перейдём к настройке сети. Добавим новую сеть, нажав на клавишу Add… в панели настроек и введите имя сети:
После этого данная сеть станет доступна в панели настроек. Дважды кликнем правой кнопкой мыши по новой сети, чтобы настроить её. На первой вкладке необходимо произвести настройки IPsec. Зададим адрес сервера и общий ключ:
После этого переходим на вкладку настройки PPP и укажем там имя пользователя, под которым мы хотим зайти в сеть:
После этого откроем вкладку Properties и укажем путь до ключа, сертификата клиента и УЦ:
Закроем данную вкладку и выполним финальную настройку, для этого откроем вкладку «IP settings» и поставим галочку напротив опции «Obtain DNS server address automatically»:
Данная опция позволит клиенту получать от сервера личный IP-адрес внутри сети.
После всех настроек закроем все вкладки и перезагрузим клиент:
Настройка центра сертификатов и ias в домене windows 2000
Нам предстоит настроить сервер VPN, но прежде необходимо создать центр сертификации (Certificate Authority, CA). Служба сертификатов может устанавливать либо автономный центр сертификации, либо центр сертификации уровня предприятия. Если создается центр сертификации уровня предприятия, то компьютеры, функционирующие под управлением Windows 2000 и более поздних версий, по умолчанию доверяют сертификатам, выданным этим центром сертификации.
Установка службы сертификатов выполняется так. Нужно зарегистрироваться на соответствующем сервере, открыть оснастку Add/Remove Programs и запустить мастер Windows Component Wizard (для этого следует выбрать элемент Add/Remove Components). Требуется установить флажок Certificate Services и щелкать на кнопке Next до тех пор, пока не откроется окно Certification Authority Type.
В качестве первого центра нужно выбрать Enterprise Root CA и далее следовать всем указаниям мастера. Служба сертификатов может функционировать лишь при наличии сервера Microsoft IIS. Если данный пакет еще не установлен, его установит система Windows 2000.
По прошествии нескольких часов после создания центра сертификатов уровня предприятия каждый функционирующий под управлением Windows 2000 и более поздней версии Windows компьютер домена автоматически добавит в хранилище сертификатов Trusted Root Certification Authorities самоподписанный сертификат.
Определение ip-адреса инициатора l2tp-подключения (windows 2003)?
Доброго времени суток.
Возникла такая ситуация.
На одном из серверов в сети, там где его не должно быть, обнаружен VPN-сервер. В логах периодически появляется следующее сообщение:
Не удалось найти сертификат.<br/>
Подключениям, которые используют этот протокол L2TP через IPSec, требуется установка на компьютере сертификата компьютера.<br/>
L2TP-вызовы приниматься не будут.
Просто отключить VPN неинтересно. Интересно определить, что же к нему пытается подключиться. Сервер не смотрит в интернет, следовательно инициатор подключения находится в локальной сети.
Включил подробный журнал на VPN-сервере. После этого было инициировано подключение, но адрес источника в этих подрбных логах я не заметил. Зато заметил тонну отладочной информации.
Собственно, вопрос. Можно ли средствами винды, без развертывания ISA (рекомендовалось на technet’е) и тому подобных тяжестей, определить IP-адрес инициатора подключения?
Ошибка копирования контейнера
Но тут есть важный нюанс. Если во время создания закрытого ключа он не был помечен как экспортируемый, скопировать его не получится. У вас будет ошибка:
Ошибка копирования контейнера. У вас нет разрешений на экспорт ключа, потому что при создании ключа не был установлен соответствующий флаг. Ошибка 0x8009000B (-2146893813) Ключ не может быть использован в указанном состоянии. Либо вы просто не сможете его выбрать для копирования, если у вас последняя версия CryptoPro. Он будет неактивен:
Если получили такую ошибку, то для вас этот способ переноса не подходит. Можно сразу переходить к следующему. Отдельно расскажу, как скопировать сертификат и закрытый ключ к нему в файл, чтобы перенести на другой компьютер без использования токена. Делаем это там же на вкладке Сервис в оснастке CryptoPro. Нажимаем Посмотреть сертификаты в контейнере.
Выбираем необходимый сертификат и нажимаем Посмотреть свойства сертификата.
Далее переходим на вкладку Состав в информации о сертификате и нажимаем Копировать в файл.
Если у вас после слов «Экспортировать закрытый ключ вместе с сертификатом» нет возможности выбрать ответ «Да, экспортировать закрытый ключ», значит он не помечен как экспортируемый и перенести его таким способом не получится. Можно сразу переходить к другому способу, который описан ниже.
Если же такая возможность есть, то выбирайте именно этот пункт и жмите Далее. В следующем меню ставьте все галочки, кроме удаления. Так вам будет удобнее и проще в будущем, если вдруг опять понадобится копировать ключи уже из нового места.
Укажите какой-нибудь пароль и запомните его! Без пароля продолжить нельзя. В завершении укажите имя файла, куда вы хотите сохранить закрытый ключ. Теперь вам нужно скопировать сам сертификат. Только что мы копировали закрытый ключ для него. Не путайте эти понятия, это разные вещи.
Сохраните сертификат для удобства в ту же папку, куда сохранили закрытый ключ от него. В итоге у вас должны получиться 2 файла с расширениями:
Вам достаточно перенести эти 2 файла на другой компьютер и кликнуть по каждому 2 раза мышкой. Откроется мастер по установке сертификатов. Вам нужно будет выбрать все параметры по умолчанию и понажимать Далее. Сертификат и контейнер закрытого ключа к нему будут перенесены на другой компьютер.
Причины возникновения ошибок ssl-соединения
Когда сертификат работает корректно, адресная строка браузера выглядит примерно так:
Но при наличии ошибок она выглядит несколько иначе:
Существует множество причин возникновения таких ошибок. К числу основных можно отнести:
- Некорректную дату и время на устройстве (компьютер, смартфон, планшет и т.д.);
- Ненадежный SSL-сертификат;
- Брандмауэр или антивирус, блокирующие сайт;
- Включенный экспериментальный интернет-протокол QUIC;
- Отсутствие обновлений операционной системы;
- Использование SSL-сертификата устаревшей версии 3.0;
- Появление ошибки «Invalid CSR» при генерации сертификата из панели управления облачного провайдера.
Давайте рассмотрим каждую из них подробнее.
Проблематика
Ещё совсем недавно многие не знали, как это — работать из дома. Пандемия резко изменила ситуацию в мире, все начали адаптироваться к сложившимся обстоятельствам, а именно к тому, что выходить из дома стало просто небезопасно. И многим пришлось быстро организовывать работу из дома для своих сотрудников.
Однако отсутствие грамотного подхода в выборе решений для удалённой работы может привести к необратимым потерям. Пароли пользователей могут быть украдены, а это даст возможность злоумышленнику бесконтрольно подключаться к сети и ИТ-ресурсам предприятия.
Именно поэтому сейчас выросла потребность в создании надёжных корпоративных VPN сетей. Я расскажу вам о надёжной, безопасной и простой в использовании VPN сети.
Она работает по схеме IPsec/L2TP, использующей для аутентификации клиентов неизвлекаемые ключи и сертификаты, хранящиеся на токенах, а также передает данные по сети в зашифрованном виде.
Способ 1: криптопро csp
Прежде всего, рассмотрим способ копирования при помощи самого приложения КриптоПро CSP. Все действия будут описаны на примере операционной системы Виндовс 7, но в целом представленный алгоритм можно использовать и для других ОС семейства Windows.
Основным условием, при котором возможно копирование контейнера с ключом, является необходимость того, чтобы при создании на сайте КриптоПро он был помечен, как экспортируемый. В противном случае перенос произвести не получится.
- Перед началом манипуляций подсоедините флешку к компьютеру и перейдите в «Панель управления» системы.
- Откройте раздел «Система и безопасность».
- В указанной директории отыщите пункт «КриптоПро CSP» и щелкните по нему.
- Откроется небольшое окошко, где требуется переместиться в раздел «Сервис».
- Далее нажмите кнопку «Скопировать…».
- Отобразится окошко копирования контейнера, где требуется щелкнуть по кнопке «Обзор…».
- Откроется окошко выбора контейнера. Выделите из перечня наименование того из них, сертификат из которого желаете скопировать на USB-носитель, и нажмите «OK».
- Затем отобразится окно аутентификации, где в поле «Введите пароль» требуется произвести ввод ключевого выражения, которым запаролен выбранный контейнер. После заполнения указанного поля нажмите «OK».
- После этого происходит возврат в основное окно копирования контейнера закрытого ключа. Обратите внимание, что в поле имени ключевого контейнера к исходному наименованию автоматически добавится выражение «- Copy». Но при желании вы можете изменить название на любое другое, хоть это и не обязательно. Затем щелкните по кнопке «Готово».
- Далее откроется окно выбора нового ключевого носителя. В представленном перечне выберите диск с той буквой, которой соответствует нужная флешка. После этого жмите «OK».
- В отобразившемся окне аутентификации потребуется ввести дважды один и тот же произвольный пароль к контейнеру. Он может, как соответствовать ключевому выражению исходника, так и быть совершенно новым. Ограничений в этом нет. После ввода нажмите «OK».
- После этого отобразится информационное окошко с сообщением, что контейнер с ключом успешно скопирован на выбранный носитель, то есть в данном случае на флешку.
Способ 2: средства windows
Также перенести сертификат КриптоПро на флешку можно исключительно средствами операционной системы Windows путем простого копирования через «Проводник». Данный метод подойдет только тогда, когда файл header.key содержит в себе открытый сертификат. При этом, как правило, его вес составляет не менее 1 Кб.
Как и в предыдущем способе, описания будут даны на примере действий в операционной системе Виндовс 7, но в целом подойдут и для других ОС данной линейки.
- Подключите USB-носитель к компьютеру. Откройте «Проводник Windows» и переместитесь в ту директорию, где расположена папка с закрытым ключом, который требуется скопировать на флешку. Щелкните по ней правой кнопкой мыши (ПКМ) и из раскрывшегося меню выберите пункт «Копировать».
- Затем откройте через «Проводник» флешку.
- Щелкните ПКМ по пустому месту в открывшейся директории и выберите пункт «Вставить».
Внимание! Вставку нужно производить в корневую директорию USB-носителя, так как в обратном случае работа с ключом в дальнейшем будет невозможна. Также рекомендуем не переименовывать при переносе название копируемой папки.
- Каталог с ключами и сертификатом будет перенесен на флешку.
Можете открыть эту папку и проверить правильность переноса. В ней должны находится 6 файлов с расширением key.
На первый взгляд перенос сертификата КриптоПро на флешку посредством инструментов операционной системы гораздо проще и интуитивно понятнее, чем действия, через КриптоПро CSP. Но нужно отметить, что этот метод подойдет только при копировании открытого сертификата. В обратном случае вам придется для этой цели воспользоваться программой.
Усовершенствованные протоколы с шифрованием
Как известно, PPTP не обеспечивает защиты от атак через посредника, способных вызвать нарушение целостности данных и подмену адресата. Но главный недостаток этого протокола в том, что он дает возможность выполнять процедуры аутентификации, основанные лишь на одном критерии (а именно на знании пользователем пароля).
Иными словами, если злоумышленник выкрадет или разгадает пароль служащего, он сможет получить доступ к сети компании. Преодолеть барьер двухфакторной аутентификации, в ходе которой используются как некие знания пользователя (скажем, пароль), так и предметы (допустим, карта с защищенным ключом или сертификат), уже гораздо сложнее.
В среде Windows XP и более поздних версиях Windows существует возможность заменить пароли пользовательскими сертификатами, для чего наряду с PPTP применяется протокол Extensible Authentication Protocol-Transport Layer Security (EAP-TLS). Но комбинация PPTP и EAP-TLS обеспечивает лишь однофакторную аутентификацию и не устраняет уязвимости PPTP в сетевой среде.
Кроме того, нельзя забывать, что сертификаты не переносимы. А значит, если пользователю понадобится позаимствовать ноутбук коллеги или потребуется заменить вышедший из строя мобильный компьютер находящегося в отъезде сотрудника, осложнений не избежать, ведь для того, чтобы пользователь мог подключиться к VPN и войти в сеть компании, придется предварительно установить на его машине сертификат, созданный именно для этого пользователя.
Установить ssl-сертификат
Для начала определитесь, какой именно сертификат нужен вашему сайту:
- Сертификат с упрощенной проверкой DV (Domain Validation) удостоверяет только соответствие домена тому, которому выдан сертификат. Не содержит информацию о том, кому этот домен принадлежит. Подходит для физлиц, ИП, небольших компаний.
- Сертификат со стандартной проверкой (OV) существенно повышает доверие к ресурсу, ведь при его выдаче проверяется, на какую организацию зарегистрирован домен, есть ли о ней сведения в открытых реестрах, подтверждены ли контактные данные. Такие сертификаты выбирают для серьезных бизнес-сайтов, интернет-магазинов.
- Максимальная расширенная проверка проводится при выдаче EV сертификатов. Исследуется не только существование компании, но правомерность ее деятельности. Сайты с EV сертификатом выделяются в адресной строке и обязательно есть информация, кем выдан сертификат. Чаще всего таким сертификатом подписывают ресурсы госорганизаций, банков, других финансовых компаний.
Есть еще самоподписанные сертификаты – это «техническое» решение, которое используют для тестирования или во внутренней сети (с установкой на все машины). Для сайтов в Интернете они не пользуются.
Для получения OV и EV сертификата нужно предоставить удостоверяющему центру пакет документов, выпуск займет от 3-5 дней.
Процесс установки сертификата может отличаться в зависимости от хостинга и ПО сайта, но обычно подробную информацию можно найти в разделах помощи. Самый простой вариант – заказать услугу установки сертификата. Например, такая возможность есть на сайте RU-CENTER.
Установка strongswan (ipsec)
В первую очередь, настроим firewall для работы ipsec
sudo firewall-cmd --permanent --add-port=1701/{tcp,udp}
sudo firewall-cmd --permanent --add-service=ipsec
sudo firewall-cmd --reload
Затем приступим к установке
sudo yum install epel-release ipsec-tools dnf
sudo dnf install strongswan
После установки необходимо задать конфигурацию для strongswan (одну из реализаций IPSec). Для этого отредактируем файл /etc/strongswan/ipsec.conf :
config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
oe=off
protostack=netkey
conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
ikelifetime=8h
keylife=1h
type=transport
left=%any
leftprotoport=udp/1701
right=%any
rightprotoport=udp/%any
ike=aes128-sha1-modp1536,aes128-sha1-modp1024,aes128-md5-modp1536,aes128-md5-modp1024,3des-sha1-modp1536,3des-sha1-modp1024,3des-md5-modp1536,3des-md5-modp1024
esp=aes128-sha1-modp1536,aes128-sha1-modp1024,aes128-md5-modp1536,aes128-md5-modp1024,3des-sha1-modp1536,3des-sha1-modp1024,3des-md5-modp1536,3des-md5-modp1024
Также зададим общий пароль для входа. Общий пароль должен быть известен всем участникам сети для аутентификации. Данный способ и является заведомо ненадёжным, т.к. данный пароль с лёгкостью может стать известным личностям, которым мы не хотим предоставлять доступ к сети.
Тем не менее, даже этот факт не повлияет на безопасность организации сети, т.к. основное шифрование данных и аутентификация пользователей осуществляется протоколом PPP. Но справедливости ради стоит заметить, что strongswan поддерживает более безопасные технологии для аутентификации, например, с помощью приватных ключей.
Так же в strongswan имеется возможность обеспечить аутентификацию с помощью смарт-карт, но пока поддерживается ограниченный круг устройств и поэтому аутентификация с помощью токенов и смарт-карт Рутокен пока затруднительна. Зададим общий пароль через файл /etc/strongswan/ipsec.secrets:
# ipsec.secrets - strongSwan IPsec secrets file
%any %any : PSK "SECRET_PASSPHRASE"
Перезапустим strongswan:
sudo systemctl enable strongswan
sudo systemctl restart strongswan