- Настройка TMG Beta 3 для SSTP VPN подключений — часть 2: настройка брандмауэра на прием подключений SSTP
- Создание сертификата веб приемника SSTP Web Listener
- Установка сертификата веб приемника SSTP
- Исправление проблем с CRL
- Заключение
- Установка сертификатов Let’s Encrypt на Windows Server
- Создание и экспорт сертификатов для VPN-подключений пользователей Generate and export certificates for User VPN connections
- Создание самозаверяющего корневого сертификата Create a self-signed root certificate
- Создание сертификата клиента Generate a client certificate
- Пример 1. сеанс консоли PowerShell по-прежнему открыт Example 1 — PowerShell console session still open
- Пример 2. новый сеанс консоли PowerShell Example 2 — New PowerShell console session
- Экспорт открытого ключа корневого сертификата (.cer) Export the root certificate public key (.cer)
- Экспорт самозаверяющего корневого сертификата и закрытого ключа для его сохранения (необязательно) Export the self-signed root certificate and private key to store it (optional)
- Экспорт сертификата клиента Export the client certificate
Настройка TMG Beta 3 для SSTP VPN подключений — часть 2: настройка брандмауэра на прием подключений SSTP
Посетителей: 4465 | Просмотров: 7067 (сегодня 0)
В первой части этого цикла статей я рассказал о преимуществах SSTP и о примерной тестовой сети, с которой работаю. Если вы пропустили эту часть, перейдите по этой ссылке, чтобы понять основные концепты SSTP и конфигурацию тестовой сети.
Теперь давайте перейдем к задаче сборки рабочей SSTP конфигурации на TMG Beta 3. Следует учитывать, что эта конфигурация создана для третьей бета версии продукта и после выхода продукта в RTM версии могут быть определенные изменения. В этом примере я использую TMG Enterprise Edition в массиве с одним участником. Процедуры будут слегка отличаться, если вы устанавливаете TMG VPN решение с помощью массива Enterprise, поскольку вам придется делать такие вещи, как определение владельца подключения, и вы не сможете использовать DHCP для информации IP адресов.
Шаги, необходимые для создания рабочего решения в тестовой сети, включают следующее:
Создание сертификата веб приемника SSTP Web Listener
TMG использует веб приемник (Web Listener) для принятия подключений от SSTP VPN клиентов. Это слегка усложняет дело. Веб приемник SSTP требует присвоения ему сертификата. Это означает, что вам нужно выделить IP адрес для веб приемника SSTP в большинстве ситуаций. Причина этого заключается в том, что веб приемник SSTP не требует проверки подлинности. Он не только не требует проверки подлинности, вы не сможете принудительно внедрить аутентификацию на этом веб приемнике. По этой причине вы вряд ли будете использовать тот же веб приемник для правила веб публикации (Web Publishing Rule). Таким образом, следует запланировать выделение IP адреса на внешнем интерфейсе брандмауэра TMG для SSTP приемника.
Следующая проблема, с которой нам предстоит разобраться, представляет собой собственно получение сертификата. Во времена Windows 2003 получение сертификата с сайта подачи заявок через интернет было простым делом. Однако все изменилось с выходом Windows Server 2008, и если вы думаете, что сможете использовать сайт подачи заявок через интернет для получения сертификата веб сайта для приемника SSTP, вы будете сильно разочарованы. Просто ради интереса можете попробовать. Однако не стоит тратить слишком много времени на это, поскольку это не сработает.
Вам придется использовать другие способы получения сертификата. Для начала вам необходимо решить, какой тип сертификата вы хотите использовать:
В этом примере я использую частный сертификат. Это означает, что мне придется сделать две вещи, чтобы все работало правильно:
Как на счет подробностей? Как вы требуете сертификат веб сайта? Мой врач говорит, что я должен снижать свое кровяное давление, поэтому я решил использовать мастера Windows Server 2003 IIS Web Site Certificate Request Wizard для получения сертификата. Однако это лишь один из способов выполнения данной задачи. Существует масса других способов. Если у вас нет проблем с давлением или других проблем со здоровьем, которые не позволяют вам использовать командную строку, то настоятельно рекомендую вам использовать процедуру, описанную Джейсоном Джоунсом.
Сертификат, который я создал для веб приемника SSTP, показан на рисунке ниже. Общее имя сертификата будет vpn.msfirewall.org, а улучшенный ключ (Enhanced Key Usage) для аутентификации сервера (Server Authentication).
Получите сертификат веб сайта выбранным вами способом и скопируйте его на рабочий стол на брандмауэре TMG.
Установка сертификата веб приемника SSTP
Следующим шагом будет установка сертификата веб сайта на брандмауэр TMG. Это простая часть. Выполните следующие шаги на брандмауэре TMG, чтобы установить сертификат:
Импортированный сертификат появится в окне консоли, подобно тому, что показано на рисунке ниже.
Убедитесь в том, что ЦС сертификат установлен в хранилище сертификатов корневого доверенного центра сертификации машины. Брандмауэр TMG, используемый в лабораторной сети, был настроен в качестве участника домена перед установкой ПО TMG, поэтому авторегистрация автоматически установила сертификат, поскольку я использовал производственный ЦС Windows Server 2003 Enterprise CA. Если вы не используете подобную конфигурацию, вам необходимо убедиться, что ЦС сертификат установлен на брандмауэре. На рисунке ниже показан ЦС сертификат, установленный в нужное место.
Исправление проблем с CRL
Я уже упоминал о проблеме CRL. Когда SSTP VPN клиент создает подключение, он будет проверять CRL на предмет отзыва сертификата веб сайта. Расположение CRL включено в сертификат, как показано на рисунке ниже.
На рисунке 4 видно, что CRL доступен через HTTP подключение. Это означает, что мне нужно опубликовать свой веб сайт CRL. Обратите внимание, что имя по умолчанию включено в сертификат. Есть некоторые вещи, которые можно сделать с настройкой личного ЦС, чтобы изменить URL, используемый для публикации CRL, и вам, возможно, придется сделать это в производственной среде. Для подробной информации об этих изменениях нажмите здесь.
Сейчас я расскажу вам, а позже и покажу, что точка распространения CRL Distribution Point недоступна непосредственно с этого URL. Итак, если вы планируете опубликовать свой CRL, и считаете, что сможете воспользоваться URL, указанным на сертификате, вы будете неприятно удивлены тем, что это не работает. Мы рассмотрим эту проблему более подробно позже.
Если вы используете коммерческий сертификат, вам не нужно беспокоиться о публикации своего CRL сайта. Коммерческий CRL должен быть доступен с любого интернет подключения.
Теперь давайте вернемся назад к задаче публикации сайта CRL. Она требует создания правила веб публикации (Web Publishing Rule):
Теперь переходим к клиенту и пытаемся зайти на сайт. На моем тестовом клиенте под управлением Windows 7 я введу http://dc.msfirewall.org/CertEnroll/dc.crl и нажму клавишу enter. Вы должны увидеть следующее диалоговое окно.
Если вы откроете CRL, вы увидите нечто вроде того, что показано на рисунке ниже.
На данный момент мы знаем, что правило работает. Однако мы не знаем, будет ли SSTP клиент на самом деле использовать путь, указанный в правиле. Дам вам подсказку: SSTP клиент не использует этот путь. Это означает, что нам нужно пересмотреть это правило позже. Но я хочу показать вам процесс подключения SSTP, прежде чем подробно описать эти детали, о которых мы поговорим в следующей части.
Заключение
В этой части цикла о настройке брандмауэра TMG на прием подключений от SSTP VPN клиентов мы обсудили проблемы, связанные с сертификатами, а затем установили сертификат веб сайта на брандмауэр TMG. После этого мы создали правило веб публикации с целью публикации CRL сайта для нашего частного ЦС. Обратите внимание, что вам не нужно выполнять этот шаг, если вы используете коммерческий ЦС. В третьей части этого цикла мы рассмотрим шаги настройки компонентов VPN сервера и затем создадим VPN подключение с помощью SSTP.
Установка сертификатов Let’s Encrypt на Windows Server
Для работы служб удаленного доступа Windows Server, таким как Remote Desktop Gateway и Remote Access VPN требуется требуется сертификат, выданный публичным удостоверяющим центром.
Сертификат используется для шифрования трафика между клиентом и сервером, а также для аутентификации сервера (не клиента). Можно использовать самоподписанный сертификат, но в таком случае вам придется устанавливать его на каждое устройство ваших пользователей.
Есть бесплатная альтернатива — сервис Let’s Encrypt, в котором можно бесплатно за несколько минут получить валидный сертификат.
Для работы с сервером сертификации необходимо загрузить клиент Win-Acme. Клиент распространяется бесплатно, исходный код доступен в GitHub.
Загрузите последнюю версию Win-Acme с сайта https://github.com/win-acme/win-acme/releases, вариант trimmed. Распакуйте архив на Windows сервере, где необходимо установить сертификат.
Установка сертификата для SSTP VPN
Перед установкой, убедитесь, что:
- адрес сервера указан в DNS
- на сервере установлена роль Direct Access and VPN (RAS)
где vpn.example.com — адрес вашего сервера.
Установка сертификата для Remote Desktop Gateway
Перед установкой, убедитесь, что:
- адрес сервера указан в DNS
- на сервере установлена роль Remote Desktop Gateway
где rds.example.com — адрес вашего сервера.
Обратите внимание, сертификат Let’t Encrypt выдается сроком на 3 месяца, но скрипт установки создает задачу в Task Scheduler для автоматического обновления.
Создание и экспорт сертификатов для VPN-подключений пользователей Generate and export certificates for User VPN connections
Подключения VPN пользователя (точка-сеть) используют сертификаты для проверки подлинности. User VPN (point-to-site) connections use certificates to authenticate. Эта статья поможет создать самозаверяющий корневой сертификат, а также сертификаты клиента с помощью PowerShell в Windows 10 или Windows Server 2016. This article shows you how to create a self-signed root certificate and generate client certificates using PowerShell on Windows 10 or Windows Server 2016.
Выполните описанные действия на компьютере с Windows 10 или Windows Server 2016. You must perform the steps in this article on a computer running Windows 10 or Windows Server 2016. Командлеты PowerShell, которые используются для создания сертификатов, являются частью операционной системы и не работают в других версиях Windows. The PowerShell cmdlets that you use to generate certificates are part of the operating system and do not work on other versions of Windows. Компьютер с Windows 10 или Windows Server 2016 требуется только для создания сертификатов. The Windows 10 or Windows Server 2016 computer is only needed to generate the certificates. После создания сертификатов их можно отправить или установить в любой поддерживаемой клиентской операционной системе. Once the certificates are generated, you can upload them, or install them on any supported client operating system.
Создание самозаверяющего корневого сертификата Create a self-signed root certificate
Используйте командлет New-SelfSignedCertificate для создания самозаверяющего корневого сертификата. Use the New-SelfSignedCertificate cmdlet to create a self-signed root certificate. Дополнительные сведения о параметре см. в разделе New-SelfSignedCertificate. For additional parameter information, see New-SelfSignedCertificate.
На компьютере под управлением Windows 10 или Windows Server 2016 откройте консоль Windows PowerShell с повышенными привилегиями. From a computer running Windows 10 or Windows Server 2016, open a Windows PowerShell console with elevated privileges. Эти примеры не запускаются через кнопку «Попробовать» в Azure Cloud Shell. These examples do not work in the Azure Cloud Shell «Try It». Их нужно запустить локально. You must run these examples locally.
Используйте следующий пример для создания самозаверяющего корневого сертификата. Use the following example to create the self-signed root certificate. Следующий пример создает самозаверяющий корневой сертификат P2SRootCert, который автоматически устанавливается в папку Certificates-Current User\Personal\Certificates. The following example creates a self-signed root certificate named ‘P2SRootCert’ that is automatically installed in ‘Certificates-Current User\Personal\Certificates’. Этот сертификат можно просмотреть, открыв файл certmgr.msc или раздел Управление сертификатами пользователей. You can view the certificate by opening certmgr.msc, or Manage User Certificates.
Выполните вход с помощью Connect-AzAccount командлета. Sign in using the Connect-AzAccount cmdlet. Затем выполните следующий пример с любыми необходимыми изменениями. Then, run the following example with any necessary modifications.
Оставьте консоль PowerShell открытой и перейдите к следующим шагам, чтобы создать сертификаты клиента. Leave the PowerShell console open and proceed with the next steps to generate a client certificates.
Создание сертификата клиента Generate a client certificate
На каждом клиентском компьютере, который подключается к виртуальной сети с помощью подключения типа «точка —сеть», должен быть установлен сертификат клиента. Each client computer that connects to a VNet using Point-to-Site must have a client certificate installed. Вы можете создать сертификат клиента из самозаверяющего корневого сертификата, а затем экспортировать и установить его. You generate a client certificate from the self-signed root certificate, and then export and install the client certificate. Если сертификат клиента не установлен, произойдет сбой аутентификации. If the client certificate is not installed, authentication fails.
Ниже описан способ создания сертификата клиента из самозаверяющего корневого сертификата. The following steps walk you through generating a client certificate from a self-signed root certificate. Из одного корневого сертификата можно создать несколько сертификатов клиента. You may generate multiple client certificates from the same root certificate. При создании сертификатов клиента с помощью приведенных ниже инструкций сертификат клиента автоматически устанавливается на компьютер, который использовался для его создания. When you generate client certificates using the steps below, the client certificate is automatically installed on the computer that you used to generate the certificate. Если вы хотите установить сертификат клиента на другой клиентский компьютер, его можно экспортировать. If you want to install a client certificate on another client computer, you can export the certificate.
В примерах используется командлет New-SelfSignedCertificate для создания сертификата клиента, срок действия которого истекает через год. The examples use the New-SelfSignedCertificate cmdlet to generate a client certificate that expires in one year. Дополнительные сведения о параметре, например о задании другого значения срока действия сертификата клиента, см. в разделе New-SelfSignedCertificate. For additional parameter information, such as setting a different expiration value for the client certificate, see New-SelfSignedCertificate.
Пример 1. сеанс консоли PowerShell по-прежнему открыт Example 1 — PowerShell console session still open
Если вы не закрыли консоль PowerShell после создания самозаверяющего корневого сертификата, воспользуйтесь этим примером. Use this example if you have not closed your PowerShell console after creating the self-signed root certificate. Этот пример является продолжением предыдущего раздела и в нем используется переменная $cert. This example continues from the previous section and uses the declared ‘$cert’ variable. Если вы закрыли консоль PowerShell после создания самозаверяющего корневого сертификата или создаете дополнительные сертификаты клиента в новом сеансе консоли PowerShell, выполните действия, описанные в примере 2. If you closed the PowerShell console after creating the self-signed root certificate, or are creating additional client certificates in a new PowerShell console session, use the steps in Example 2.
Измените и запустите пример, чтобы создать сертификат клиента. Modify and run the example to generate a client certificate. Если выполнить этот пример, не изменив его, то будет создан сертификат клиента P2SChildCert. If you run the following example without modifying it, the result is a client certificate named ‘P2SChildCert’. Если требуется указать другое имя дочернего сертификата, измените значение CN. If you want to name the child certificate something else, modify the CN value. Не изменяйте TextExtension при выполнении данного примера. Do not change the TextExtension when running this example. Сертификат клиента, который создается, автоматически устанавливается в папку Certificates — Current User\Personal\Certificates на компьютере. The client certificate that you generate is automatically installed in ‘Certificates — Current User\Personal\Certificates’ on your computer.
Пример 2. новый сеанс консоли PowerShell Example 2 — New PowerShell console session
Если вы создаете дополнительные сертификаты клиента или не используете тот же сеанс PowerShell, в котором был создан самозаверяющий корневой сертификат, выполните следующее. If you are creating additional client certificates, or are not using the same PowerShell session that you used to create your self-signed root certificate, use the following steps:
Определите самозаверяющий корневой сертификат, установленный на компьютере. Identify the self-signed root certificate that is installed on the computer. Этот командлет возвращает список сертификатов, установленных на компьютере. This cmdlet returns a list of certificates that are installed on your computer.
Найдите имя субъекта в полученном списке, а затем скопируйте отпечаток, расположенный рядом с ним, в текстовый файл. Locate the subject name from the returned list, then copy the thumbprint that is located next to it to a text file. В следующем примере указано два сертификата. In the following example, there are two certificates. CN-имя — это имя самозаверяющего корневого сертификата, на основе которого требуется создать дочерний сертификат. The CN name is the name of the self-signed root certificate from which you want to generate a child certificate. В данном случае это P2SRootCert. In this case, ‘P2SRootCert’.
Объявите переменную для корневого сертификата, используя отпечаток из предыдущего шага. Declare a variable for the root certificate using the thumbprint from the previous step. Замените THUMBPRINT отпечатком корневого сертификата, на основе которого требуется создать дочерний сертификат. Replace THUMBPRINT with the thumbprint of the root certificate from which you want to generate a child certificate.
Например, если использовать отпечаток для P2SRootCert из предыдущего шага, то переменная будет выглядеть следующим образом. For example, using the thumbprint for P2SRootCert in the previous step, the variable looks like this:
Измените и запустите пример, чтобы создать сертификат клиента. Modify and run the example to generate a client certificate. Если выполнить этот пример, не изменив его, то будет создан сертификат клиента P2SChildCert. If you run the following example without modifying it, the result is a client certificate named ‘P2SChildCert’. Если требуется указать другое имя дочернего сертификата, измените значение CN. If you want to name the child certificate something else, modify the CN value. Не изменяйте TextExtension при выполнении данного примера. Do not change the TextExtension when running this example. Сертификат клиента, который создается, автоматически устанавливается в папку Certificates — Current User\Personal\Certificates на компьютере. The client certificate that you generate is automatically installed in ‘Certificates — Current User\Personal\Certificates’ on your computer.
Экспорт открытого ключа корневого сертификата (.cer) Export the root certificate public key (.cer)
После создания самозаверяющего корневого сертификата экспортируйте CER-файл его открытого ключа (не закрытый ключ). After creating a self-signed root certificate, export the root certificate public key .cer file (not the private key). В дальнейшем вы загрузите этот файл в Azure. You will later upload this file to Azure. Чтобы экспортировать CER-файл для самозаверяющего корневого сертификата, сделайте следующее: The following steps help you export the .cer file for your self-signed root certificate:
Чтобы получить из сертификата CER-файл, откройте раздел Управление сертификатами пользователей. To obtain a .cer file from the certificate, open Manage user certificates. Найдите корневой самозаверяющий сертификат (обычно он находится в папке Certificates — \Personal\Certificates) и щелкните его правой кнопкой мыши. Locate the self-signed root certificate, typically in ‘Certificates — Current User\Personal\Certificates’, and right-click. Щелкните Все задачи > Экспорт. Click All Tasks, and then click Export. Откроется мастера экспорта сертификатов. This opens the Certificate Export Wizard. Если не удается найти сертификат в разделе \Personal\Certificates, возможно, вы случайно открыли «Certificates — Local Computer»вместо «Certificates— «. If you can’t find the certificate under Current User\Personal\Certificates, you may have accidentally opened «Certificates — Local Computer», rather than «Certificates — Current User»). Если вы хотите открыть диспетчер сертификатов в области текущего пользователя с помощью PowerShell, выполните команду certmgr в окне консоли. If you want to open Certificate Manager in current user scope using PowerShell, you type certmgr in the console window.
В окне мастера нажмите Далее. In the Wizard, click Next.
Выберите Нет, не экспортировать закрытый ключ и снова нажмите кнопку Далее. Select No, do not export the private key, and then click Next.
На странице Формат экспортируемого файла выберите Файлы X.509 (.CER) в кодировке Base-64 и нажмите кнопку Далее. On the Export File Format page, select Base-64 encoded X.509 (.CER)., and then click Next.
На странице Имя экспортируемого файла нажмите кнопку Обзор, чтобы перейти в расположение для экспорта сертификата. For File to Export, Browse to the location to which you want to export the certificate. В поле Имя файла введите имя для файла сертификата. For File name, name the certificate file. Затем щелкните Далее. Then, click Next.
Нажмите кнопку Готово, чтобы выполнить экспорт сертификата. Click Finish to export the certificate.
Сертификат успешно экспортирован. Your certificate is successfully exported.
Экспортированный сертификат выглядит примерно так: The exported certificate looks similar to this:
Если открыть экспортированный сертификат в Блокноте, результат будет приблизительно таким, как в приведенном ниже примере. If you open the exported certificate using Notepad, you see something similar to this example. Выделенный синим цветом раздел содержит сведения, которые загружены в Azure. The section in blue contains the information that is uploaded to Azure. Если при открытии сертификата в Блокноте он не выглядит, как приведенный ниже пример, как правило, это означает, что экспорт выполнен не в формате X.509 (.CER) с кодировкой Base64. If you open your certificate with Notepad and it does not look similar to this, typically this means you did not export it using the Base-64 encoded X.509(.CER) format. Кроме того, при использовании другого текстового редактора следует учитывать, что в некоторых редакторах может выполняться непреднамеренное форматирование в фоновом режиме. Additionally, if you want to use a different text editor, understand that some editors can introduce unintended formatting in the background. Это может вызвать проблемы при передаче текста из этого сертификата в Azure. This can create problems when uploaded the text from this certificate to Azure.
Экспорт самозаверяющего корневого сертификата и закрытого ключа для его сохранения (необязательно) Export the self-signed root certificate and private key to store it (optional)
Может возникнуть необходимость экспортировать самозаверяющий корневой сертификат и сохранить его как резервную копию в надежном месте. You may want to export the self-signed root certificate and store it safely as backup. При необходимости позже можно будет установить его на другом компьютере и создать дополнительные сертификаты клиента. If need be, you can later install it on another computer and generate more client certificates. Чтобы экспортировать самозаверяющий корневой сертификат в формате PFX, выберите корневой сертификат и выполните те же действия, что описаны в разделе Экспорт сертификата клиента. To export the self-signed root certificate as a .pfx, select the root certificate and use the same steps as described in Export a client certificate.
Экспорт сертификата клиента Export the client certificate
Созданный сертификат клиента автоматически устанавливается на компьютере, который использовался для его создания. When you generate a client certificate, it’s automatically installed on the computer that you used to generate it. Если вы хотите установить созданный сертификат клиента на другой клиентский компьютер, то его необходимо экспортировать. If you want to install the client certificate on another client computer, you need to export the client certificate that you generated.
Чтобы экспортировать сертификат клиента, откройте раздел Управление сертификатами пользователей. To export a client certificate, open Manage user certificates. По умолчанию создаваемые сертификаты клиента хранятся в папке Certificates — Current User\Personal\Certificates. The client certificates that you generated are, by default, located in ‘Certificates — Current User\Personal\Certificates’. Щелкните правой кнопкой мыши сертификат клиента, который требуется экспортировать, выберите все задачи, а затем щелкните Экспорт , чтобы открыть Мастер экспорта сертификатов. Right-click the client certificate that you want to export, click all tasks, and then click Export to open the Certificate Export Wizard.
В мастере экспорта сертификатов нажмите кнопку Далее, чтобы продолжить. In the Certificate Export Wizard, click Next to continue.
Выберите Да, экспортировать закрытый ключ, а затем нажмите кнопку Далее. Select Yes, export the private key, and then click Next.
На странице Формат экспортируемого файла оставьте настройки по умолчанию. On the Export File Format page, leave the defaults selected. Убедитесь, что выбран параметр включить все сертификаты в путь сертификации, если это возможно . Make sure that Include all certificates in the certification path if possible is selected. При этом также будут экспортированы данные корневого сертификата, необходимые для успешной аутентификации клиента. This setting additionally exports the root certificate information that is required for successful client authentication. Без этих данных аутентификация клиента завершится ошибкой, так как у клиента не будет доверенного корневого сертификата. Without it, client authentication fails because the client doesn’t have the trusted root certificate. Затем щелкните Далее. Then, click Next.
На странице Безопасность следует защитить закрытый ключ. On the Security page, you must protect the private key. Если вы решите использовать пароль, обязательно запишите или запомните пароль, заданный для этого сертификата. If you select to use a password, make sure to record or remember the password that you set for this certificate. Затем щелкните Далее. Then, click Next.
На странице Имя экспортируемого файла нажмите кнопку Обзор, чтобы перейти в расположение для экспорта сертификата. On the File to Export, Browse to the location to which you want to export the certificate. В поле Имя файла введите имя для файла сертификата. For File name, name the certificate file. Затем щелкните Далее. Then, click Next.
Нажмите кнопку Готово, чтобы выполнить экспорт сертификата. Click Finish to export the certificate.