Настройка Windows Server 2008 в качестве сервера удаленного доступа SSL VPN

ОГЛАВЛЕНИЕ

Удаленный доступ (Remote Access) на сегодняшний день очень важен. С ростом числа людей, нуждающихся в доступе к информации, хранящейся на домашних и рабочих компьютерах, возможность получать такой доступ из любой точки стала решающей. Прошли те дни, когда люди говорили: «я отправлю вам эту информацию, как только доберусь до своего компьютера». Вам нужна эта информация немедленно, если вы хотите достойно конкурировать в сегодняшнем деловом мире.

В каменном веке компьютеризации способом получения удаленного доступа к своему компьютеру было использование dial-up соединения. RAS dial-up соединения работали через обычные POTS (Простая старая телефонная служба - Plain Old Telephone Service) линии при скорости передачи данных примерно до 56kbps. Скорость была основной проблемой таких соединений, но еще более серьезной проблемой была цена соединения, когда получение доступа требовало больших расстояний.

С ростом популярности сети Интернет, соединения RAS стали использоваться все реже. Причиной этого стало появление соединений по VPN (виртуальная частная сеть). Соединения VPN обеспечивали такую же подключаемость точек между собой, как и соединения dial-up RAS, но делали это быстрее и дешевле, поскольку скорость VPN соединения может быть одинаковой со скоростью подключения к Интернет, а стоимость соединения не зависит от расположения места назначения. Единственное, за что приходится платить, это подключение к Интернет.


Виртуальные частные сети (Virtual Private Networking)

Соединение VPN позволяет компьютеру создавать виртуальное и частное подключение к сети через Интернет. Соединение виртуальное, потому что когда компьютер создает VPN подключение через Интернет, то создающий это подключение компьютер выполняет функцию узла, напрямую подключенного к сети, как если бы он был соединен с сетью посредством кабеля локальных сетей Ethernet. Пользователь имеет такой же доступ к ресурсам, какой он имел бы при прямом подключении к сети с помощью кабеля. Однако в случае VPN подключения клиента к VPN серверу соединение виртуально, поскольку нет действительного подключения Ethernet с местом назначения. VPN соединение частное, поскольку содержание потока данных внутри этого соединения зашифровано, поэтому никто в Интернет не может перехватить и прочесть данные, передаваемые посредством VPN соединения.

Серверы Windows Servers и клиенты поддерживали VPN соединения со времен Windows NT и Windows 95. Хотя клиенты и серверы Windows поддерживают VPN соединения на протяжении десятилетия, тип поддержки VPN эволюционировал со временем. Windows Vista Service Pack 1 и Windows Server 2008 на сегодняшний день поддерживают три типа VPN соединений. Это следующие типы:

  • PPTP
  • L2TP/IPSec
  • SSTP

PPTP – это туннельный протокол от точки к точке. PPTP – это самый простой способ создания VPN соединения, но, к сожалению, он и наименее безопасен. Причина, по которой этот тип наименее безопасный, заключается в том, что мандаты пользователя передаются по небезопасному каналу. Говоря другими словами, шифрование VPN соединения начинается после того, как мандаты были переданы. Хотя действительная информация мандатов не передается между клиентами и серверами VPN, переданные значения хэш-функции могут использоваться опытными хакерами для получения доступа к VPN серверам и подключения к корпоративной сети.

Более надежным является VPN протокол L2TP/IPSec. L2TP/IPSec был совместно разработан компаниями Microsoft и Cisco. L2TP/IPSec более безопасен чем PPTP, поскольку безопасная сессия IPSec создается до того, как мандаты пересылаются по проводам. Хакеры не могут получить доступ к мандатам, а, следовательно, не смогут украсть их, чтобы впоследствии использовать. Более того, IPSec обеспечивает взаимную аутентификацию машин, поэтому неизвестные машины не смогут соединиться с каналом L2TP/IPSec VPN. IPSec обеспечивает взаимную аутентификацию, целостность данных, конфиденциальность и невозможность отказа от авторства. L2TP поддерживает PPP и EAP механизмы аутентификации пользователей, которые обеспечивают высокую безопасность входа, поскольку требуется аутентификация как машины, так и пользователя.

Windows Vista SP1 и Windows Server 2008 на сегодняшний день поддерживают новый тип VPN протокола ' Secure Socket Tunneling Protocol или SSTP. SSTP использует зашифрованные в SSL HTTP соединения, чтобы создавать VPN подключения к VPN шлюзам. SSTP безопасен, так как мандаты пользователя не передаются до тех пор, пока безопасный туннель SSL для соединения с VPN шлюзом не будет открыт. SSTP также известен как PPP через SSL, это означает, что вы можете использовать PPP и EAP механизмы аутентификации, чтобы сделать ваше SSTP соединение более безопасным.

Приватный не значит безопасный

Следует отметить, что VPN соединения скорее частные, чем безопасные. Хотя я и признаю, что приватность является основным компонентом безопасности коммуникаций, однако сама по себе не обеспечивает этой безопасности. Технологии VPN обеспечивают частный компонент при соединении через Интернет, который не позволяет посторонним лицам читать содержимое вашей коммуникации. Технологии VPN также позволяют вам быть уверенными в том, что только авторизированные пользователи могут подключаться к данной сети через шлюз VPN. Однако частный компонент, аутентификация и авторизация не обеспечивают всеобъемлющей безопасности.

Допустим, у вас есть сотрудник, которому вы открыли доступ VPN. Поскольку ваш Windows Server 2008 VPN протокол поддерживает EAP аутентификацию пользователя, вы решили создать смарт-карты для ваших пользователей и использовать L2TP/IPSec VPN протокол. Комбинация смарт-карт и протокола L2TP/IPSec позволяет требовать аутентификации пользователя и использования здоровой машины. Ваше решение по использованию смарт-карт и протокола L2TP/IPSec работает отлично, и все довольны.

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

Для VPN, чтобы быть на самом деле безопасными, вам нужно убедиться в том, что ваш VPN шлюз способен обеспечить контроль над доступом пользователей/групп с тем, чтобы вы смогли открывать необходимый уровень доступа пользователям VPN. Более совершенные VPN шлюзы и брандмауэры, такие как ISA Firewall, могут обеспечивать такой контроль на VPN соединениях. Плюс ко всему, такие брандмауэры, как ISA Firewall, могут обеспечивать проверку адресных пакетов и уровня приложений на клиентских VPN соединениях.

Хотя сервер Windows Server 2008 VPN не обеспечивает контроль над доступом пользователей и групп, есть другие способы, посредством которых вы можете настраивать контроль доступа на самом сервере, если вы не хотите платить за приобретение более совершенных брандмауэров и VPN шлюзов. В данной статье мы заостряем наше внимание только на компонентах VPN серверов. Если вы хотите узнать больше о брандмауэрах ISA и их возможностях для VPN серверов, перейдите по ссылке www.isaserver.org

Зачем использовать новый VPN протокол?

Microsoft уже создали два жизнеспособных протокола VPN, позволяющих пользователям соединяться с корпоративной сетью, так зачем же создавать третий? SSTP – это отличное дополнение для пользователей Windows VPN, поскольку SSTP не имеет проблем с брандмауэрами и устройствами NAT в отличие от протоколов PPTP и L2TP/IPSec. Для того чтобы PPTP работал через устройство NAT, это устройство должно поддерживать PPTP с помощью редактора NAT для PPTP. Если такой NAT редактор для PPTP отсутствует на данном устройстве, то PPTP соединения не будут работать.

L2TP/IPSec имеет проблемы с устройствами NAT и брандмауэрами, поскольку брандмауэру необходимо иметь L2TP порт UDP 1701, открытый для исходящих соединений, IPSec IKE порт, UDP 500 открытый для исходящих соединений, и IPSec NAT порт просмотра-обхода, UDP 4500 открыт для исходящих соединений (порт L2TP не требуется при использовании NAT-T). Большинство брандмауэров в общественных местах, таких как гостиницы, центры конференций, рестораны и т.д. имеют малое количество портов, открытых для исходящих соединений, например, HTTP, TCP порт 80 и HTTPS (SSL), TCP порт 443. Если вам нужна поддержка не только протоколов HTTP и SSL, когда вы покидаете офис, ваши шансы на успешное соединение значительно снижаются. Вы можете и не получить порты, требуемые для протоколов PPTP или L2TP/IPSec.

В отличие от предыдущих протоколов, SSTP VPN соединения проходят по каналу SSL, используя TCP порт 443. Поскольку все брандмауэры и устройства NAT имеют открытый порт TCP 443, вы сможете использовать протокол SSTP где угодно. Это значительно облегчает жизнь путешественникам, которые используют VPN соединения для подключения к офису, а также значительно облегчает жизнь корпоративных администраторов, которым нужно поддерживать путешественников, а также помогать служащим в общественных местах обеспечивать доступ к Интернет в гостиницах, конференц-центрах и т.д.


Процесс соединения SSTP

Далее будет показано, как работает процесс SSTP соединения:

  1. SSTP VPN клиент создает TCP соединение с SSTP VPN шлюзом между случайным TCP портом источника клиента SSTP VPN и TCP портом 443 шлюза SSTP VPN.
  2. SSTP VPN клиент отправляет SSL Client-Hello сообщение, указывая на то, что он хочет создать SSL сеанс с SSTP VPN шлюзом.
  3. SSTP VPN шлюз отправляет сертификат компьютера клиенту SSTP VPN.
  4. Клиент SSTP VPN подтверждает сертификат компьютера, проверяя базу сертификатов Trusted Root Certification Authorities, чтобы убедиться в том, что CA сертификат, подписанный сервером, находится в этой базе. Затем SSTP VPN клиент определяет способ шифрования для SSL сеанса, генерирует ключ SSL сеанса и шифрует его с помощью SSTP VPN ключа публичного шлюза, после чего отправляет зашифрованную форму ключа SSL сеанса на SSTP VPN шлюз.
  5. Шлюз SSTP VPN расшифровывает зашифрованный ключ SSL сеанса с помощью личного ключа сертификатов компьютера. Все последующие соединения между SSTP VPN клиентом и SSTP VPN шлюзом будут зашифрованы оговоренным методом шифрования и ключа SSL сеанса.
  6. SSTP VPN клиент отправляет HTTP через SSL (HTTPS) сообщение запроса на SSTP VPN шлюз.
  7. SSTP VPN клиент обсуждает SSTP канал с SSTP VPN шлюзом.
  8. SSTP VPN клиент обсуждает PPP соединение с SSTP сервером. Эти переговоры включают аутентификацию мандатов пользователя посредством стандартного PPP метода аутентификации (или даже EAP аутентификации) и конфигурирование настроек для трафика Интернет протокола четвертой версии (IPv4) или Интернет протокола шестой версии (IPv6).
  9. Клиент SSTP начинает отправку IPv4 или IPv6 трафика через PPP соединение.

Те, кому интересны характеристики архитектуры VPN протоколов, могут посмотреть их на рисунке ниже. Обратите внимание, что SSTP имеет дополнительный заголовок в отличие от двух других VPN протоколов. Это благодаря дополнительному HTTPS шифрованию, помимо заголовка SSTP. L2TP и PPTP не имеют заголовков уровня приложений для шифровки соединения.

 
Рисунок 1

Мы возьмем для примера простую сеть из трех машин, чтобы посмотреть, как работает SSTP. Названия и характеристики этих трех машин следующие:

Vista:

Vista Business Edition

Vista Service Pack 1

Non-domain member

W2008RC0-VPNGW:

Windows Server 2008 Enterprise Edition

Two NICs ' Internal and External

Domain member

WIN2008RC-DC:

Windows Server 2008 Enterprise Edition

Domain Controller of MSFIREWALL.ORG domain

DHCP Server

DNS Server

Certificate Server (Enterprise CA)

Обратите внимание, что Vista Service Pack 1 используется в качестве VPN клиента. Хотя в прошлом были обсуждения по поводу Windows XP Service Pack 3, поддерживающей SSTP, дело может закончиться совсем не так. Я недавно установил пробную версию Windows XP Service Pack 3 на тестовый компьютер и не нашел никаких доказательств поддержки SSTP. И это действительно плохо, поскольку на сегодняшний день слишком много ноутбуков используют ОС Windows XP, а факты говорят о том, что Vista слишком медлительна для работы ноутбуков. Возможно, проблемы производительности Vista будут решены с помощью пакета обновления Vista Service Pack 1.

Высокоуровневая конфигурация примерной сети показана на рисунке ниже.

 
Рисунок 2
 


Конфигурирование Windows Server 2008 в качестве сервера Remote Access SSL VPN Server

Я не собираюсь рассматривать все шаги, начиная с самых основ. Смею предположить, что вы установили контроллер домена и активировали DHCP, DNS и Certificate Services роли на этом сервере. Тип сертификации сервера должен быть Enterprise, и вы имеете CA в вашей сети. Сервер VPN должен быть подключен к домену, прежде чем продолжать выполнять следующие шаги. Прежде чем начинать, нужно установить пакет обновления SP1 для клиента Vista.

Нам нужно выполнить следующие процедуры для того, чтобы наше решение работало:

  • Установить IIS на VPN сервер
  • Запросить сертификат машины для сервера VPN, используя мастера запроса сертификатов IIS Certificate Request Wizard
  • Установить роль RRAS на сервере VPN
  • Активировать RRAS Server и настроить его на работу в качестве VPN и NAT сервера
  • Настроить NAT сервер на публикацию CRL
  • Настроить учетную запись (User Account) на использование dial-up соединений
  • Настроить IIS на Certificate Server, чтобы разрешить HTTP соединения для директории CRL
  • Настроить HOSTS файл для VPN клиента
  • Использовать PPTP для связи с VPN сервером
  • Получить CA Certificate из Enterprise CA
  • Настроить клиента на использование SSTP и соединение с сервером VPN с помощью SSTP


Установка IIS на VPN сервер

Возможно, вам покажется странным, что мы начинаем именно с этой процедуры, так как я рекомендую никогда не устанавливать вебсервер на устройство безопасности сети. Хорошая новость заключается в том, что нам не придется хранить вебсервер на VPN сервере, он понадобится нам лишь на некоторое время. Причина кроется в том, что регистрационный сайт, включенный в Windows Server 2008 Certificate Server, более не является полезным для запроса сертификатов компьютера. На самом деле он вообще бесполезен. Интересно то, что если вы все же решите использовать регистрационный сайт для получения сертификата компьютера, все будет выглядеть так, словно сертификат получен и установлен, однако на самом деле это не так, сертификат не установлен.

Для решения этой проблемы мы воспользуемся преимуществом того, что используем enterprise CA. При использовании Enterprise CA, можно посылать запрос на интерактивный сервер сертификации. Интерактивный запрос на получение сертификата компьютера возможен, когда вы используете мастера IIS Certificate Request Wizard и запрашиваете то, что теперь называется сертификатом домена 'Domain Certificate'. Это возможно только в том случае, если запрашивающая машина принадлежит тому же домену, что и Enterprise CA.

Для установки роли IIS Web server на сервере VPN выполните следующие шаги:

  1. Откройте Windows 2008 Server Manager.
  2. В левой панели консоли кликните на вкладке Роли.
 
Рисунок 1
  1. Жмем в меню Добавить роли с правой стороны правой панели.
  2. Жмем Далее на странице Прежде чем начать.
  3. Ставим галочку напротив строкиWeb Server (IIS) на странице Выбрать роли сервера. Жмем Далее.
 
Рисунок 2
  1. Можете прочесть информацию на странице Web Server (IIS), если пожелаете. Это довольно полезная общая информация об использовании IIS 7 в качестве вебсервера, но поскольку мы не собираемся использовать IIS вебсервер на VPN сервере, эта информация не совсем применима в нашей ситуации. Жмем Далее.
  2. На странице Выбрать службы ролей несколько опций уже выбраны. Однако если вы используете опции по умолчанию, вы не сможете воспользоваться мастером Certificate Request Wizard. По крайней мере, так было, когда я тестировал систему. Нет службы роли для мастера Certificate Request Wizard, поэтому я пытался ставить галочки напротив каждой опции Безопасность, и, кажется, сработало. Сделайте то же самое у себя и нажмите Далее.
 
Рисунок 3
  1. Просмотрите информацию на странице Подтвердить выбор установок и нажмите Установить.
  2. Нажмите Закрыть на странице Результаты установки.
 
Рисунок 4


Запрос сертификата машины (Machine Certificate) для VPN сервера с помощью мастера IIS Certificate Request Wizard

Следующий шаг – это запрос сертификата машины для VPN сервера. VPN серверу требуется сертификат машины для создания SSL VPN соединения с компьютером клиента SSL VPN. Общее название сертификата должно соответствовать имени, которое VPN клиент будет использовать для соединения с компьютером шлюза SSL VPN. Это означает, что вам нужно будет создать публичную DNS запись для имени на сертификате, который будет разрешать внешний IP адрес VPN сервера, или IP адрес NAT устройства перед VPN сервером, которое будет переадресовывать соединение на SSL VPN сервер.

Для запроса сертификата машины на сервер SSL VPN выполните следующие шаги:

  1. В Server Manager, разверните вкладку Роли в левой панели, а затем разверните вкладку Web Server (IIS). Нажмите на Internet Information Services (IIS) Manager.
 
Рисунок 5
  1. В консоли Internet Information Services (IIS) Manager, которая появится справа в левой панели, нажмите на имени сервера. В этом примере имя сервера будет W2008RC0-VPNGW. Нажмите на иконку Сертификаты сервера в правой панели консоли IIS.
 
Рисунок 6
  1. В правой панели консоли жмем на ссылку Создать сертификат домена.
 
Рисунок 7
  1. Введите информацию на странице Определенные свойства имени. Самым важным объектом здесь будет Общее имя. Это то имя, которое VPN клиенты будут использовать для соединения с VPN сервером. Вам также понадобится публичная DNS запись для этого имени с тем, чтобы распознавать внешний интерфейс VPN сервера, или публичный адрес NAT устройства перед VPN сервером. В этом примере мы используем общее имя sstp.msfirewall.org. Позже мы создадим записи HOSTS файла на компьютере VPN клиента, чтобы он мог распознавать это имя. Жмем Далее.
 
Рисунок 8
  1. На странице Интерактивный источник сертификатов жмем кнопку Выбрать. В диалоговом окне Выбрать источник сертификатов, жмем на имени Enterprise CA и нажимаем OK. Вводим дружественное имя в строке Friendly name. В этом примере мы использовали имя SSTP Cert, чтобы знать, что оно используется для шлюза SSTP VPN.
 
Рисунок 9
  1. Жмем Закончить на странице Интерактивный источник сертификатов.
 
Рисунок 10
  1. Мастер будет запущен, а затем исчезнет. После этого вы увидите, как появится сертификат в консоли IIS. Кликнем дважды на сертификате и увидим общее имя в секции Назначен для, и теперь у нас есть частный ключ, соответствующий сертификату. Жмем OK, чтобы закрыть диалоговое окно Сертификат.
 
Рисунок 11

Теперь, когда у нас есть сертификат, мы можем установить роль RRAS Server Role. Обратите внимание на то, что очень важно установить сертификат до того, как устанавливать роль RRAS Server Role. Если вы этого не сделаете, вы наживете себе большие головные боли, поскольку вам придется использовать довольно сложную рутину командных строк, чтобы связать сертификат с клиентом SSL VPN.


Установка роли RRAS Server Role на VPN сервере

Для установки роли RRAS Server Role нужно выполнить следующие шаги:

  1. В Server Manager, нажмите на вкладку Роли в левой панели консоли.
  2. В секции Общие сведения ролей нажмите на ссылку Добавить роли.
  3. Нажмите Далее на странице Прежде чем начать.
  4. На странице Выбрать роли сервера поставьте галочку напротив строки Политика сети и службы доступа. Нажмите Далее.
 
Рисунок 12
  1. Прочтите информацию на странице Политика сети и службы доступа. Большая ее часть касается Network Policy Server (который ранее назывался Internet Authentication Server [IAS] и по сути был RADIUS сервером) и NAP, ни один из элементов не применим в нашем случае. Нажимаем Далее.
  2. На странице Выбрать службы роли ставим галочку напротив строки Маршрутизация и службы удаленного доступа. В результате этого будут выбраны пункты Службы удаленного доступа и Маршрутизация. Жмем Далее.
 
Рисунок 13
  1. Жмем Установить в окне Подтвердить выбранные установки.
  2. Жмем Закрыть на странице Результаты установки.


Активация RRAS Server и его настройка в качестве VPN и NAT сервера

Теперь, когда роль RRAS установлена, нам нужно активировать сервисы RRAS, также как мы делали это в предыдущих версиях Windows. Нам нужно активировать функцию VPN сервера и сервисы NAT. С активацией компонента VPN сервера все понятно, но вы можете поинтересоваться, зачем нужно активировать NAT сервер. Причина активации сервера NAT кроется в том, что внешние клиенты могут получать доступ к серверу сертификации (Certificate Server), чтобы соединяться с CRL. Если клиент SSTP VPN не сможет загрузить CRL, SSTP VPN соединение работать не будет.

Для того, чтобы открыть доступ к CRL, мы настроим VPN сервер в качестве NAT сервера и опубликуем CRL, используя обратимый NAT. В сетевом окружении компаний у вас, скорее всего, будут брандмауэры, например ISA Firewall, перед сервером сертификации, поэтому вы сможете публиковать CRL с помощью брандмауэров. Однако в этом примере единственный брандмауэр, которым будем пользоваться, это брандмауэр Windows Firewall на сервере VPN, поэтому в этом примере нам нужно настроить VPN сервер в качестве NAT сервера.

Для активации сервисов RRAS выполните следующие шаги:

  1. В Server Manager разверните вкладку Роли в левой панели консоли. Разверните вкладку Политика сети и Службы доступа и кликните по вкладке Маршрутизация и Удаленный доступ. Правой клавишей кликните по вкладке Маршрутизация и Удаленный доступ и нажмите Настроить и активировать маршрутизацию и удаленный доступ.
 
Рисунок 14
  1. Нажмите Далее в окне Welcome to the Routing and Remote Access Server Setup Wizard.
  2. На странице Конфигурация выберите опцию Доступ к виртуальным частным сетям и NAT и нажмите Далее.
 
Рисунок 15
  1. На странице VPN соединение выберите NIC в секции Интерфейсы сети, которая представляет внешний интерфейс VPN сервера. Затем нажмите Далее.
 
Рисунок 16
  1. На странице Назначение IP адресов выберите опцию Автоматически. Мы можем выбрать эту опцию, потому что у нас установлен DHCP сервер на контроллере домена за VPN сервером. Если у вас нет DHCP сервера, тогда вам нужно будет выбрать опцию Из определенного списка адресов, а затем внести список адресов, которые VPN клиенты смогут использовать при подключении к сети через шлюз VPN. Жмем Далее.
 
Рисунок 17
  1. На странице Управление удаленным доступом нескольких серверов выбираем Нет, использовать маршрутизацию и удаленный доступ для аутентификации запросов соединения. Эту опцию мы используем, когда недоступны NPS или RADIUS серверы. Поскольку VPN сервер является членом домена, можно аутентифицировать пользователей, используя учетные записи домена. Если VPN сервер не входит в домен, тогда только локальные учетные записи VPN сервера можно использовать, если только вы не решите использовать NPS сервер. Я напишу статью об использовании NPS сервера в будущем. Жмем Далее.
 
Рисунок 18
  1. Прочтите общую информацию на странице Завершение работы мастера настройки маршрутизации и удаленного доступа и нажмите Закончить.
  2. Нажмите OK в диалоговом окне Маршрутизация и удаленный доступ, которое говорит вам о том, что распределение DHCP сообщений требует агента распределения DHCP.
  3. В левой панели консоли разверните вкладку Маршрутизация и удаленный доступ и затем нажмите на вкладке Порты. В средней панели вы увидите, что WAN Miniport соединения для SSTP теперь доступны.
 
Рисунок 19


Настройка NAT сервера для публикации CRL

Как я говорил ранее, клиент SSL VPN должен иметь возможность загружать CRL для подтверждения того, что сертификат сервера на сервере VPN не был поврежден или отозван. Для этого нужно настроить устройство перед сервером сертификации для направления HTTP запросов о расположении CRL на Сервер сертификации.

Как узнать, к какому URL нужно подключиться SSL VPN клиенту, чтобы загрузить CRL? Эта информация содержится в самом сертификате. Если вы снова перейдете на VPN сервер и дважды кликните на сертификате в IIS консоли, как делали прежде, вы сможете найти эту информацию.

Жмем на кнопку Детали на сертификате и листаем вниз до записи Точки распределения CRL, затем жмем на эту запись. В нижней панели показаны различные точки распределения, основанные на протоколе, используемом для получения доступа к этим точкам. В сертификате, показанном на рисунке ниже, видно, что нам нужно открыть доступ клиенту SSL VPN к CRL через URL:

http://win2008rc0-dc.msfirewall.org/CertEnroll/WIN2008RC0-DC.msfirewall.org.crl

 
Рисунок 20

Именно поэтому нужно создавать публичные записи DNS для этого имени, чтобы внешние VPN клиенты смогли относить это имя к IP адресу или устройству, которое будет выполнять обратимый NAT или обратимый proxy для получения доступа к вебсайту сервера сертификации. В этом примере нам нужно связать win2008rc0-dc.msfirewall.org с IP адресом на внешнем интерфейсе VPN сервера. Когда соединение достигает внешнего интерфейса VPN сервера, VPN сервер перенаправит NAT соединение на сервер сертификации.

Если вы используете расширенный брандмауэр, например ISA Firewall, вы можете сделать публикацию CRL сайтов более безопасной, открывая доступ только к CRL, а не ко всему сайту. Однако в этой статье мы ограничим себя возможностью простого NAT устройства, такого, которое обеспечивает RRAS NAT.

Следует отметить, что использование имени CRL сайта по умолчанию может быть менее безопасной опцией, поскольку оно раскрывает частное имя компьютера в Интернете. Вы можете создавать пользовательскую CDP (CRL Distribution Point), чтобы этого избежать, если считаете, что раскрытие частного имени вашей CA в публичной DNS записи создает угрозу безопасности.

Для настройки RRAS NAT для направления HTTP запросов на сервер сертификации выполните следующие шаги:

  1. В левой панели Server Manager разверните вкладку Маршрутизация и удаленный доступ, а затем разверните вкладку IPv4. Кликните по вкладке NAT.
  2. Во вкладке NAT кликните правой клавишей на внешнем интерфейсе в средней панели консоли. В данном примере имя внешнего интерфейса было Local Area Connection. Нажмите на Свойства.
 
Рисунок 21
  1. В диалоговом окне Свойства Local Area Connection поставьте галочку напротив Web Server (HTTP). Это вызовет диалоговое окно Служба редактирования. В текстовой строке Частный адрес введите IP адрес сервера сертификации во внутренней сети. Нажмите OK.
 
Рисунок 22
  1. Нажмите OK в диалоговом окне Свойства Local Area Connection.
 
Рисунок 23

Теперь, когда NAT сервер установлен и настроен, мы можем перенести наше внимание на настройку сервера CA и клиента SSTP VPN.


Настройка учетной записи пользователя на использование Dial-up соединений

Учетные записи пользователей требуют разрешений для доступа dial-up, прежде чем смогут подключиться к серверу Windows VPN, который входит в домен Active Directory. Самый лучший способ сделать это – это использовать сервер Network Policy Server (NPS), а также разрешение учетной записи пользователя по умолчанию, которое разрешает удаленный доступ на основе политики NPS. Однако в нашем случае мы не устанавливали сервер NPS, поэтому нам придется настраивать разрешение пользователю для доступа dial-in вручную.

Следующую статью я посвящу использованию NPS сервера и аутентификации EAP User Certificate для создания соединений с SSL VPN сервером.

Для того чтобы разрешить определенной учетной записи пользователя доступ dial-in для подключения к SSL VPN серверу, нужно выполнить следующие шаги. В этом примере мы будем активировать разрешение dial-in доступа для учетной записи администратора домена по умолчанию:

  1. На контроллере домена откройте консоль Active Directory пользователи и компьютеры из меню Инструменты администрирования.
  2. В левой панели консоли разверните имя домена и кликните по вкладке пользователи. Дважды кликните на учетной записи Администратор.
  3. Перейдите по вкладке Dial-in. Параметром по умолчанию будет Контроль доступа через NPS политику сети. Поскольку у нас нет NPS сервера в этом сценарии, мы изменим параметр на Разрешить доступ, как показано ниже на рисунке 1. Жмем OK.
Рисунок 1


Настройка IIS на сервере сертификации (Certificate Server) для разрешения HTTP соединений для CRL Directory

По каким-то причинам, когда мастер установки устанавливает Certificate Services (службы сертификации) веб сайт, он настраивает CRL директорию на запрос SSL соединения. Хотя с точки зрения безопасности это кажется вполне хорошей идеей, проблема заключается в том, что унифицированный идентификатор ресурса (URI) на сертификате не настроен под использование SSL. Полагаю, что вы сможете самостоятельно создать CDP запись для сертификата, чтобы он смог использовать SSL, но могу поспорить, что компания Microsoft нигде не упоминала об этой проблеме. Поскольку в этой статье мы используем стандартные параметры для CDP, нам необходимо отключить требование SSL на веб сайте CA для пути CRL директории.

Чтобы дезактивировать требование SSL для директории CRL выполните следующие шаги:

  1. В меню Инструменты администрирования откройте менеджера Internet Information Services (IIS) Manager.
  2. В левой панели консоли IIS разверните имя сервера, а затем разверните вкладку Сайты. Разверните вкладку Веб сайт по умолчанию и кликните на вкладке CertEnroll, как показано на рисунке 2.
 
Рисунок 2
  1. Если вы посмотрите на среднюю панель консоли, вы увидите, что CRL находится в этой виртуальной директории, как показано на рисунке ниже. Чтобы посмотреть содержимое этой виртуальной директории, вам нужно нажать кнопку Посмотреть содержимое в нижней части средней панели.
 
Рисунок 3
  1. Нажмите на кнопку Просмотр параметров внизу средней панели. Внизу средней панели дважды кликните на иконке Параметры SSL.
 
Рисунок 4
  1. В средней панели появится страница Параметры SSL. Уберите галочку в строке Требовать SSL. Нажмите Применить в правой панели консоли.
 
Рисунок 5
  1. Закройте консоль IIS после того, как увидите уведомление Изменения были успешно сохранены.
 
Рисунок 6


Настройка HOSTS файла для VPN клиента

Теперь мы можем уделить все внимание VPN клиенту. Первое что нам необходимо сделать с клиентом, это настроить HOSTS файл, чтобы мы смогли имитировать публичную DNS инфраструктуру. Есть два имени, которые нам необходимо внести в HOSTS файл (то же самое нужно сделать и для публичного DNS сервера, который вы будете использовать в производственных сетях). Первое имя – это имя VPN сервера, как определено общим/субъектным именем сертификата, который мы привязали к SSL VPN серверу. Второе имя, которое нам нужно ввести в HOSTS файл (и публичный DNS сервер), - это имя CDP URL, которое находится на сертификате. Мы рассматривали расположение информации CDP во второй части этой серии.

Два имени, которые необходимо ввести в HOSTS файл в этом примере будут:

192.168.1.73 sstp.msfirewall.org

192.168.1.73 win2008rc0-dc.msfirewall.org

Для настройки HOSTS файла для Vista SP1 VPN клиента выполните следующие процедуры:

  1. В меню Пуск введите c:\windows\system32\drivers\etc\hosts в строку поиска и нажмите ENTER.
  2. В диалоговом окне Открыть с помощью выберите Блокнот.
  3. Введите записи в HOSTS файл в формате, как показано на рисунке ниже. Обязательно нажмите enter после последней строки, чтобы курсор находился под ней.

Рисунок 7
  1. Закройте файл и выберите опцию сохранить изменения.


Использование PPTP для подключения к VPN серверу

Мы постепенно приближаемся к созданию SSL VPN соединения! Следующим шагом будет создание VPN коннектора на Vista SP1 клиенте, который позволит нам создать начальное VPN соединение с VPN сервером. В нашем случае это нужно сделать, потому что компьютер клиента не является членом домена. Так как машина не является членом домена, сертификат CA не будет автоматически установлен в ее хранилище Trusted Root Certificate Authorities. Если бы машина входила в домен, автоматическая регистрация позаботилась бы за нас об этой проблеме, так как мы установили Enterprise CA.

Самый простой способ выполнить этот шаг заключается в создании PPTP подключения Vista SP1 VPN клиента к Windows Server 2008 VPN серверу. По умолчанию VPN сервер будет поддерживать PPTP соединения, и клиент сначала попробует PPTP, перед тем как пробовать L2TP/IPSec и SSTP. Для этого нам нужно создать VPN Коннектор или объект соединения.

Для создания коннектора на VPN клиенте выполните следующие шаги:

  1. На VPN клиенте кликните правой клавишей на иконке сети и нажмите Сеть и коммутационный центр (Sharing Center).
  2. В окне Сеть коммутационного центра нажмите на ссылке Создать соединение или сеть в левой части окна.
  3. На странице Выбрать опции подключения нажмите на записи Подключиться к рабочему месту, затем нажмите Далее.
 
Рисунок 8
  1. На странице Как вы хотите подключиться выберите опцию Использовать мое Интернет соединение (VPN).
 
Рисунок 9
  1. На странице Введите Интернет адрес для подключения введите имя SSL VPN сервера. Убедитесь в том, что это имя и общее имя на сертификате, используемом сервером SSL VPN, одинаковое. В этом примере имя было sstp.msfirewall.org. Введите Имя адресата. В этом примере мы будем использовать имя адресата SSL VPN. Нажмите Далее.
 
Рисунок 10
  1. На странице Введите имя пользователя и пароль введите Имя пользователя, Пароль и Домен. Нажмите Соединить.
 
Рисунок 11
  1. Нажмите Закрыть на странице Вы подключены.
 
Рисунок 12
  1. На странице Выберите расположение для «ЅSSL VPN» сети выберите опцию Работа.
 
Рисунок 13
  1. Нажмите Продолжить в подсказке UAC.
  2. Нажмите Закрыть на странице Успешно настроенные параметры сети.
 
Рисунок 14
  1. В окне Сеть и коммутационный центр, нажмите на ссылку Показать статус в разделе SSL VPN, как показано на рисунке ниже. В диалоговом окне Статус SSL VPN вы увидите, что тип соединения VPN - это PPTP. Нажмите Закрыть в диалоговом окне Статус SSL VPN.
 
Рисунок 15
  1. Откройте окно командной строки и отправьте команду ping на контроллер домена. В этом примере IP адрес контроллера домена будет 10.0.0.2. Если ваше VPN соединение успешное, вы получите ping ответ с контроллера домена.
 
Рисунок 16


Получение CA Certificate с Enterprise CA

Клиент SSL VPN должен доверять CA, который выпустил сертификат, используемый VPN сервером. Чтобы создать это доверие, нам нужно установить CA сертификат на CA, выпустивший сертификат для VPN сервера. Мы можем это сделать, подключившись к веб сайту регистрации на CA во внутренней сети и установив сертификат VPN клиента в его хранилище Trusted Root Certification Authorities.

Для получения сертификата с сайта регистрации выполните следующие шаги:

  1. На клиенте VPN, подключенном к VPN серверу через PPTP соединение, введите http://10.0.0.2/certsrv в строке адреса в обозревателе Internet Explorer и нажмите ENTER.
  2. Введите имя пользователя и пароль, используемый в мандатном диалоговом окне. В этом примере мы будем использовать имя пользователя и пароль учетной записи администратора домена по умолчанию.
  3. На странице Приветствие сайта регистрации перейдите по ссылке Загрузить сертификат CA, цепь сертификатов или CRL.
 
Рисунок 17
  1. В диалоговом окне, предупреждающем вас о том, что Веб сайт хочет открыть веб содержимое, используя эту программу на вашем компьютере, нажмите Разрешить. Затем нажмите Закрыть в диалоговом окне Вы заметили информационное окно, если оно появится.
 
Рисунок 18
  1. Обратите внимание на то, что информационное окно информирует вас о том, что веб сайт мог быть отображен некорректно, поскольку контроль элементов ActiveX заблокирован. Это не должно вызывать никаких проблем, так как мы будем загружать CA сертификат, и использовать консоль Certificates MMC для его установки. Нажмите на ссылку Загрузить CA сертификат.
 
Рисунок 19
  1. В диалоговом окне Предупреждение безопасности загрузки файла жмем кнопку Сохранить. Сохраняем сертификат на рабочий стол.
 
Рисунок 20
  1. Нажимаем Закрыть в диалоговом окне Загрузка завершена.
  2. Закрываем Internet Explorer.

Теперь нам нужно установить сертификат CA в хранилище Trusted Root Certification Authorities Certificate Store машины клиента VPN. Для этого нужно сделать следующее:

  1. Жмем Пуск, затем вводим mmc в строку поиска и нажимаем ENTER.
  2. Жмем Продолжить в диалоговом окне UAC.
  3. В окне Консоль1 жмем меню Файл, а затем жмем Добавить/Удалить оснастку.
  4. В диалоговом окне Добавить или Удалить оснастки выбираем Сертификаты в списке Доступные оснастки, затем нажимаем Добавить.
  5. На странице Оснастки сертификатов выбираем опцию Учетная запись компьютера и жмем Закончить.
  6. На странице Выбрать компьютер выбираем опцию Локальный компьютер и жмем Закончить.
  7. Жмем OK в диалоговом окне Добавить или удалить оснастки.
  8. В левой панели консоли разворачиваем вкладку Сертификаты (Локальный компьютер) и затем разворачиваем вкладку Trusted Root Certification Authorities. Жмем по вкладке Сертификаты. Правой клавишей нажимаем на вкладке Сертификаты, выбираем Все задания и жмем Импорт.
 
Рисунок 21
  1. Жмем Далее в окне Welcome to the Certificate Import Wizard.
  2. На странице Импортируемый файл жмем кнопку Обзор, чтобы найти сертификат, и затем жмем Далее.
 
Рисунок 22
  1. На странице Хранилище сертификатов смотрим, что опция Разместить все сертификаты в данном хранилище выбрана, и, что хранилище Trusted Root Certification Authorities есть в списке. Жмем Далее.
 
Рисунок 23
  1. Жмем Закончить на странице Завершение импорта сертификатов.
  2. Жмем OK в диалоговом окне, информирующем о том, что импорт прошел успешно.
  3. Теперь в консоли появится сертификат, как показано на рисунке ниже.
 
Рисунок 24
  1. Закрываем консоль MMC.


Настройка клиента на использование SSTP и подключение к VPN серверу через SSTP

И вот почти все готово! Теперь нам нужно отключить VPN соединение и настроить VPN клиента на использование SSTP для VPN протокола. В производственном окружении вам не придется использовать этот шаг для пользователей, так как вы будете использовать пакет Connection Manager Administration Kit для создания VPN объекта соединения для пользователя, который будет включать клиента, использующего SSTP, или вы будете настраивать только SSTP порты на VPN сервере.

Все зависит от конфигурации окружения, поскольку вам нужно распределить время так, чтобы пользователи смогли в течение некоторого времени использовать PPTP, пока вы устанавливаете сертификаты. Конечно, вы можете установить сертификаты CA не через сеть, то есть посредством загрузки с веб сайта или по электронной почте, и в этом случае вам не придется разрешать пользователям PPTP. Но тогда, если какие-то клиенты не поддерживают SSTP, вам потребуется разрешить PPTP или L2TP/IPSec, и вы не сможете отключить все не-SSTP порты. В таком случае вам придется полагаться на ручную настройку или на обновленный пакет CMAK.

Еще одним вариантом здесь может стать привязка SSTP клиента к определенному IP адресу на RRAS сервере. В этом случае вы сможете создать пользовательский пакет CMAK, который ссылается только на IP адрес на SSL VPN сервере, прослушивающем сеть на предмет входящих SSTP соединений. Другие адреса на сервере SSTP VPN будут прослушивать сеть на предмет PPTP и/или L2TP/IPSec соединений.

Выполните следующие шаги для того, чтобы отключить PPTP сеанс и настроить объект подключения VPN клиента на использование SSTP:

  1. На компьютере VPN клиента откройте окно Сеть и коммутационный центр, как делали ранее.
  2. В окне Сеть и коммутационный центр нажмите на ссылку Разъединить, которая находиться прямо под ссылкой Показать статус. Раздел SSL VPN исчезнет из окна Сеть и коммутационный центр.
  3. В окне Сеть и коммутационный центр нажмите на ссылку Управление сетевыми подключениями.
  4. Правой клавишей кликните по ссылке SSL VPN и выберите вкладку Свойства.
 
Рисунок 25
  1. В диалоговом окне Свойства SSL VPN перейдите по вкладке Сеть. В окне Тип VPN нажмите стрелку вниз и выберите опцию Secure Socket Tunneling Protocol (SSTP), затем нажмите OK.
 
Рисунок 26
  1. Дважды кликните по объекту подключения SSL VPN в окне Сетевые подключения.
  2. В диалоговом окне Подключить SSL VPN нажмите кнопку Соединить.
  3. Когда подключение выполнено, кликните правой клавишей на объекте подключения SSL VPN в окне Сетевые подключения и выберите опцию Статус.
 
Рисунок 27
  1. В диалоговом окне Статус SSL VPN вы увидите, что было создано соединение SSTP WAN Miniport.
 
Рисунок 28
  1. Если вы зайдете на VPN сервер и откроете Консоль маршрутизации и удаленного доступа, вы убедитесь в том, что SSTP соединение было создано.
 
Рисунок 29
 
Томас Шиндер (Thomas Shinder)