Поднимаем сервер удаленного доступа SSL VPN на базе Windows Server 2008
Ульяна Смелая
VPN-решения появились в ОС Windows еще во времена NT. В каждой последующей версии добавлялись новые возможности для построения виртуальных частных сетей. Выход Win2k8 также не стал исключением, и теперь число поддерживаемых протоколов увеличилось аж до четырех: PPTP, L2TP, IPsec и SSTP. Причем из всех названных только последний является действительно безопасным.
Содержание:
- Новинка SSTP
- Что нужно для VPN?
- Настройка сервера сертификатов
- Создание сертификата
- Установка и настройка RRAS
- Подключаемся клиентом
- Заключение
- Боковые выносы
Принцип работы SSTP (Secure Socket Tunneling Protocol, протокол безопасного туннелирования сокетов) несколько напоминает способ применения SSL в обычном браузере. VPN-клиент подключается к серверу SSTP на стандартный HTTPS порт 443/tcp и отправляет ему приветственное сообщение, уведомляя, что хочет создать SSL сеанс. Сервер высылает ему сертификат, клиент проверяет базу Trusted Root Certification Authorities, чтобы убедиться в валидности полученного сертификата, и передает на сервер специальным образом зашифрованную форму ключа SSL сеанса, а тот ее расшифровывает с помощью личного ключа сертификатов. С этого момента соединение шифруется оговоренным методом шифрования и ключом SSL сеанса, что существенно снижает вероятность перехвата данных. Далее идет окончательное согласование параметров SSTP-канала и PPP-соединения, происходит проверка мандата пользователя посредством механизмов аутентификации PPP/EAP и конфигурирование настроек для IPv4/IPv6 трафика. Только после этого клиент получает доступ к ресурсам удаленной сети.
Что немаловажно, SSTP позволяет значительно упростить организацию соединений, так как при таком типе VPN-подключения не требуется перестройка правил межсетевого экрана, и не возникают проблемы с NAT-устройствами или при работе через прокси-сервер. Правда, если промежуточный прокси имеет функции проверки подлинности, то с настройками придется немного повозиться.
Клиентские ОС Vista SP1 и WinXP SP3 уже поддерживают этот протокол. Естественно, и Win2k8 можно настроить в качестве клиента.
Типичная инфраструктура для создания VPN в Win2k8 состоит из контроллера домена, сервера сертификатов, серверов RRAS (Routing and Remote Access) и NPS (Network Policy Server). Последний ранее назывался Internet Authentication Server (IAS), а фактически был RADIUS сервером. Размещение этих компонентов зависит от топологии сети и количества пользователей. Кроме контроллера AD, все остальные вполне могут работать на одном компьютере. Размещать контроллер домена и RRAS сервер на одной машине не следует. Адреса VPN клиентам можно раздавать при помощи DHCP сервера или средствами RRAS. Для аутентификации можно задействовать внешний RADUIS сервер.
Для упрощения будем считать, что мы уже имеем настроенный контроллер домена и службу DNS, созданы учетные записи и общие каталоги, которые будут использованы для удаленного доступа. Сервер RRAS, участвующий в настройке VPN, подсоединен к домену и виден из внешней сети через межсетевой экран.
В Win2k3 у пользователей, которым разрешен доступ к VPN, должен быть активирован пункт «Управление на основе политик удаленного доступа» в меню «Входящие звонки» (Dial-in). В Win2k8 есть аналогичная вкладка в свойствах учетной записи. Для того чтобы разрешить пользователю подключаться удаленно, следует установить флажок в пункте «Allow Access» или «Control Access Through NPS Network Policy».
Для выдачи сертификатов используется Active Directory Certificate Services, который, в свою очередь, потребует наличия роли Web Server (IIS). Хотя сам IIS не принимает участия в работе RRAS, так как HTTPS соединения проходят прямиком через драйвер HTTP.SYS, он нужен исключительно для получения сертификата.
Настройка сервера сертификатов
Итак, с теоретической частью и геометрией домена закончили, переходим к настройкам. Выбираем в Initial Configuration Tasks (команда oobe) или в Server Manager ссылку Add roles и отмечаем пункт Active Directory Certificate Services. Переходим к следующему шагу, в котором нам предлагают выбрать службу ролей (Role Services). Щелкаем по Certification Authority Web Enrollment. Появившийся мастер Add Roles Wizard позволит дополнительно установить еще две роли: Web Services (IIS) и Windows Process Activation Services. Соглашаемся, нажав Add Required Role Services, и попадаем в диалог, где будет предложено выбрать тип установки CA (Certification Autorities). В нашем случае достаточно остановиться на Standalone. Далее в окне CA Type следует установить переключатель в Root CA.
Переходим к этапу работы с приватными ключами. Если планируется использовать ранее созданный секретный ключ, отмечаем «Use existing private key». Иначе создаем новый ключ, выбрав «Create a new private key». Далее идут настройки безопасности ключа. По умолчанию используется алгоритм SHA1 с длиной ключа 2048 бит, в большинстве случаев этого достаточно. Если тебя эти настройки не устраивают, выбери в Cryptography другие варианты. На этапе Configure CA Name для ключа будет предложено имя, полученное командой hostname. Учти, что имя в сертификате должно совпадать с DNS именем VPN сервера, поэтому при необходимости пропиши нужное в «Common name for this CA». По умолчанию сгенерированный ключ будет действителен в течение 5 лет, этот срок можно изменить на этапе Validity Period. Создание ключей, не имеющих срока окончания действия, не предусмотрено, но это легко обойти, указав большой период валидности ключа. Сгенерированные ключи будут помещены в каталог Windows/system32/CertLog.
Теперь мастер перейдет к установке IIS, на втором шаге которого будет предложено выбрать службы ролей. На странице выбора уже отмечены некоторые из них, оставляем здесь все по умолчанию.
Итак, ключи созданы, теперь VPN серверу необходимо получить сертификат, который будет использован при создании VPN соединения с компьютером клиента.
Чтобы нам не помешала система безопасности, следует уменьшить уровень защиты или установить сайт, с которого будет приниматься сертификат, в Trusted зону. Для этого запускаем IE с правами администратора (если работаешь под обычной учетной записью, то выбери в контекстном меню Run as administrator). Выбрав Tools – Internet Options, вызываем окно настроек. Переходим во вкладку Advanced и отключаем фишинг-фильтр, установив флажок Turn off automatic Phishing Filter. Заходим на вкладку Security, отмечаем Local intranet, где изменяем уровень безопасности с Medium-low на Low.
Далее в браузере набираем адрес Certification Authority Web Enrollment, в общем случае это http://localhost/certsrv. Нажимаем ссылку Request a certificate, затем в следующем окне Advanced Certificate Request жмем Create and submit a request to this CA, разрешаем запуск ActiveX объектов и приступаем к заполнению полей, самым важным из которых является Name. Здесь указывается имя, которое VPN клиенты будут использовать при подключении к серверу. В раскрывающемся списке Type of Certificate Needed выбираем Server Authentication Certificate. В поле Key Options и Additional настраиваем параметры ключа. И обязательно устанавливаем флажок Mark keys as exportable. По окончании установок нажимаем Submit. Появится запрос на установку нового сертификата, подтверждаем нажатием Yes и запоминаем Request ID. В окне, открывшемся по окончании создания сертификата, нам предложат установить полученный сертификат.
Для установки сертификата открываем MMC консоль (Start – Run, набираем mmc). В меню File выбираем пункт Add/Remove Snap-in, после чего должно появиться окно добавления и удаления оснастки, в котором отмечаем Certification Authority и нажимаем кнопку Add для переноса его в правый столбик. Затем нам предложат выбрать компьютер, к которому будет подключаться выбранная оснастка. Оставляем значение по умолчанию, то есть Local computer. После нажатия на ОК в MMC консоли появится вкладка Certification Authority (Local), в списке которой находится наш сервер. Раскрываем список и переходим в пункт Pending Requests. Здесь должен быть наш сертификат с номером в столбце Request ID, совпадающим с созданным на предыдущем шаге. Отмечаем его и в контекстном меню переходим в пункт All Tasks – Issue. Сертификат без всякого предупреждения исчезнет из этого списка и обнаружится только во вкладке Issued Certificates. Чтобы просмотреть его свойства, достаточно дважды щелкнуть мышкой. Обрати внимание на параметр CRL Distribution Points (Точки распределения CRL): в нем показана ссылка, выбрав которую, клиент может загрузить список отозванных сертификатов (Certificate Revocation List – CRL), чтобы убедиться, что сертификат VPN сервера не был отозван или поврежден.
Переходим к установке сертификата. Для этого открываем страницу http://localhost/certsrv, где выбираем View the status of a pending certificate request. В окне появится список ссылок на сертификаты. Он у нас один, нажимаем на ссылку и попадаем в окно Certificate Issued, попутно разрешая выполнение сценариев ActiveX. Для установки нажимаем Install this certificate и подтверждаем установку.
Теперь нужно указать, для кого мы его собственно создавали. Для этого снова вызываем MMC, находим и добавляем вкладку Certificates, как показано выше. Нажимаем Finish, чтобы принять предлагаемое по умолчанию значение My user account. Затем повторяем действие, но теперь выбираем Computer account, в диалоговом окне Select Computer оставляем предложенное значение Local computer. Закрываем окно Add or Remove Snap-ins.
В панели MMC переходим в Certificates – Current User – Personal. Выбираем сертификат и нажатием в контекстном меню All Tasks – Export вызываем мастер Certificate Import Wizard. Первое окно пропускаем, во втором устанавливаем переключатель в Yes, export the private key. Далее мастер советует выбрать формат файла сертификата, оставляем предложенный по умолчанию – PKCS #12, после чего вводим два раза пароль для защиты приватного ключа и указываем, куда сохранить файл. Затем просто следуем за мастером, соглашаясь со всеми пунктами. Теперь импортируем ключ на компьютер. Для этого выбираем Certificates (Local Computer) – Personal и в контекстном меню, доступном по щелчку на пункте Certificates, выбираем All Tasks – Import. В появившемся мастере нужно лишь указать на файл, сохраненный на предыдущем шаге. Если его значок не будет показан, поставь в раскрывающемся списке справа внизу All Files. Для импорта понадобится ввести пароль и место хранения (здесь просто переходим к следующему шагу, оставив значение Personal).
Все, сертификатный квест полностью пройден. Теперь можно спокойно переходить к установке и настройке роли RRAS.
Выбираем в Server Manager пункт Add roles, отмечаем пункт Network Policy and Access Services и в окне выбора службы ролей – Routing and Remote Access Services. В результате будут выбраны пункты Remote Access Service и Routing. Нажимаем Install, подтверждаем выбранные элементы и ожидаем окончания процесса установки.
Теперь нужно активировать входящие в нее сервисы. Это можно сделать, вызвав из меню Start – Administrative Tools консоль Routing and Remote Access или выбрав аналогичный пункт в появившемся после установки роли меню в Server Manager. Далее находим в контекстном меню пункт Configure and Enable Routing and Remote Access. На втором шаге мастера (первый пропускаем) нам предлагают активировать несколько вариантов сервисов. По умолчанию предлагается пункт Remote access (dial-up or VPN), при помощи которого настраивается удаленный доступ для диалап или VPN пользователей, его же рекомендует и документация Microsoft. Подходит он не для всех ситуаций, поэтому советую внимательно изучить, что предлагается в остальных пунктах, которые отвечают за активацию сервиса NAT, связки VPN+NAT, соединение между двумя сетями и выборочную настройку. В том случае, когда внешние клиенты должны получать доступ к серверу сертификации, потребуется и NAT, иначе SSTP соединение работать не будет. Поэтому выбираем Virtual Private Network (VPN) access and NAT. На следующем шаге отмечаем интерфейс, к которому будут подключаться VPN клиенты (если на сервере установлена одна сетевая карта, будет выведено предупреждение). Далее мастер предлагает определиться с тем, как назначать IP-адреса клиентам: автоматически или вручную. Вариант Automatically подходит для тех случаев, когда имеется DCHP сервер. Иначе указываем From a specified range of addresses и в следующем окне вводим диапазон IP-адресов. Так как аутентификацию пользователей будем производить средствами RRAS, то в следующем окне оставляем значение по умолчанию (No, use Routing and Remote Access Server …). Хотя если уже есть настроенный RADIUS сервер, лучше использовать именно его.
В сообщении, появившемся по окончании активации сервисов, будет сказано, что выбранный режим распределения IP-адресов потребует наличия агента распределения DCHP Relay Agent. Ничего делать не нужно, просто принимаем это к сведению.
Если сейчас посмотреть на вкладку RRAS, то увидим, что появились дополнительные вкладки, где можно настроить маршрутизацию, работу Relay Agent’а и прочее (отдельно для IPv4 и IPv6). Некоторые настройки доступны и в меню свойств роли RRAS, назначение большей части из них понятно и без пояснения. Советую просто пройтись по пунктам, чтобы разобраться с возможностями. Настройки портов для всех типов VPN производятся в меню свойств вкладки Port.
Кстати, чтобы сервер SSTP вместо HTTPS использовал HTTP соединение (порт 80/tcp), следует значение параметра UseHttps, который находится в ветке HKLM\System\CurrentControlSet\Services\SstpSvc\Parameters, с 1 изменить на 0. Это может понадобиться при работе через SSL-терминатор или реверсный прокси.
Чтобы разрешить HTTP запросы на сервер сертификации, выбираем IPv4 – NAT и в контекстном меню, появляющемся по щелчку мышки на внешнем сетевом интерфейсе, выбираем его свойства. Теперь переходим в окно Services and Ports и устанавливаем флажок в пункте Web Server (HTTP). В диалоге Edit Service вводим IP-адрес сервера сертификации внутренней сети.
Теперь все готово к первому подключению. Настройка VPN соединения в Vista и WinXP довольно проста, поэтому покажу, как это сделать в Win2k8, хотя пользователи Vista найдут много общего. Документация Microsoft советует в начале настроить PPTP соединение, и если все в порядке, переходить на L2TP или SSTP.
Для настройки PPTP VPN вызываем Network and Sharing Server. Проще это сделать из контекстного меню, вызываемого по щелчку на индикаторе сетевой активности. Нажимаем ссылку Set up a connection or network и в появившемся окне нажимаем Click Connect to a workplace, затем в следующем окне жмем Use my Internet connection (VPN). Мастер предложит настроить Интернет соединение. Здесь можно отметить I’ll set up an Internet connection later. Вводим DNS имя VPN сервера и в строке ниже описание соединения. Переходим к следующему диалогу, где вводим логин и пароль пользователя, эти данные будут использоваться при подключении. Чтобы соединиться с VPN сервером, в Network and Sharing Center выбираем Connect to a network и в появившемся окне нажимаем VPN Connection. Если все нормально, можно переходить к настройке SSTP.
VPN клиент, использующий SSTP подключение, должен установить сертификат сервера. При использовании контроллера домена это будет сделано автоматически, иначе следует установить его вручную. Весь процесс во многом напоминает установку сертификата на сервер, о которой говорилось выше. То есть получаем сертификат с Certification Authority Web Enrollment и импортируем при помощи MMC Certificate (Local Computer). Теперь вызываем свойства созданного VPN соединения и во вкладке Networking, в раскрывающемся списке Type of VPN, установленный по умолчанию Automatic меняем на SSTP. Вот и все.
Не смотря на то, что настройка VPN в Win2k8 на первый взгляд кажется немного запутанной, на самом деле все понятно и логично. Создать готовую конфигурацию можно не спеша за полчаса. Появление нового протокола, работающего по стандартным портам, снимает все вопросы по работе через фаейрвол и NAT, что несомненно упростит жизнь администратору.
INFO
-
SSL (Secure Sockets Layer) — уровень защищенных сокетов. Криптографический протокол, обеспечивающий безопасную передачу данных в интернет.
-
SSTP устанавливает соединение по протоколу HTTPS, чтобы предоставить клиентам безопасный доступ к сетям за маршрутизаторами, брандмауэрами и прокси-серверами, не заботясь об обычных проблемах с блокировкой портов.
-
SSTP часто называют «PPP через SSL», это означает, что можно использовать механизмы аутентификации PPP и EAP, чтобы сделать SSTP-соединение более безопасным.
-
Упрощение настроек и решение проблем с файерволами и NAT-устройствами – вот основные задачи, которые наряду с повышением безопасности ставили перед собой разработчики SSTP.
- По сравнению с IPsec, SSTP обеспечивает более сильную аутентификацию.
- Vista SP1 и WinXP SP3 поддерживают протокол SSTP.
-
Ссылка в параметре CRL Distribution Points в свойствах ключа даст URL, по которому можно получить список отозванных сертификатов, чтобы убедиться, что сертификат VPN сервера не был отозван или поврежден.
-
Сертификат также можно создать при помощи мастера IIS Certificate Request Wizard, вызываемого из Server Manager – Web Server (IIS) – Internet Information Services (IIS) Manager – Server Certificates, после чего в правой части нужно нажать ссылку Create Domain Certificate.
WARNING
-
В настоящее время SSTP не предназначен для организации межсайтовых виртуальных частных сетей.
Статья опубликована в августовском номере журнала «Xakep» за 2008 год.





