Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР 116, АВГУСТ 2008 г.

Слоеный VPN

Ульяна Смелая

Хакер, номер #116, стр. 116-122-1

Поднимаем сервер удаленного доступа SSL VPN на базе Windows Server 2008

VPN-решения появились в ОС Windows еще во времена NT. В каждой последующей версии добавлялись новые возможности для построения виртуальных частных сетей. Выход Win2k8 также не стал исключением – теперь число поддерживаемых протоколов увеличилось аж до четырех: PPTP, L2TP, IPsec и SSTP. Только последний из них действительно безопасен.

Новинка SSTP

Принцип работы 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?

Типичная инфраструктура для создания 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». По дефолту сгенерированный ключ будет действителен в течение пяти лет (срок можно изменить на этапе 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.

Установка и настройка 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 часто называют «PPP через SSL». Это означает, что можно использовать механизмы аутентификации PPP и EAP, чтобы сделать SSTP-соединение более безопасным.

Упрощение настроек и решение проблем с файрволами и NAT-устройствами – вот основные задачи, которые наряду с повышением безопасности ставили перед собой разработчики SSTP.

По сравнению с IPsec SSTP обеспечивает более сильную аутентификацию.

Vista SP1 и WinXP SP3 поддерживают протокол SSTP.

Ссылка в параметре CRL Distribution Points в свойствах ключа даст URL, по которому можно получить список отозванных сертификатов и убедиться, что сертификат VPN сервера не был отозван или поврежден.

WARNING

SSTP не предназначен для организации межсайтовых виртуальных частных сетей.

Содержание
загрузка...
Журнал Хакер #151Журнал Хакер #150Журнал Хакер #149Журнал Хакер #148Журнал Хакер #147Журнал Хакер #146Журнал Хакер #145Журнал Хакер #144Журнал Хакер #143Журнал Хакер #142Журнал Хакер #141Журнал Хакер #140Журнал Хакер #139Журнал Хакер #138Журнал Хакер #137Журнал Хакер #136Журнал Хакер #135Журнал Хакер #134Журнал Хакер #133Журнал Хакер #132Журнал Хакер #131Журнал Хакер #130Журнал Хакер #129Журнал Хакер #128Журнал Хакер #127Журнал Хакер #126Журнал Хакер #125Журнал Хакер #124Журнал Хакер #123Журнал Хакер #122Журнал Хакер #121Журнал Хакер #120Журнал Хакер #119Журнал Хакер #118Журнал Хакер #117Журнал Хакер #116Журнал Хакер #115Журнал Хакер #114Журнал Хакер #113Журнал Хакер #112Журнал Хакер #111Журнал Хакер #110Журнал Хакер #109Журнал Хакер #108Журнал Хакер #107Журнал Хакер #106Журнал Хакер #105Журнал Хакер #104Журнал Хакер #103Журнал Хакер #102Журнал Хакер #101Журнал Хакер #100Журнал Хакер #099Журнал Хакер #098Журнал Хакер #097Журнал Хакер #096Журнал Хакер #095Журнал Хакер #094Журнал Хакер #093Журнал Хакер #092Журнал Хакер #091Журнал Хакер #090Журнал Хакер #089Журнал Хакер #088Журнал Хакер #087Журнал Хакер #086Журнал Хакер #085Журнал Хакер #084Журнал Хакер #083Журнал Хакер #082Журнал Хакер #081Журнал Хакер #080Журнал Хакер #079Журнал Хакер #078Журнал Хакер #077Журнал Хакер #076Журнал Хакер #075Журнал Хакер #074Журнал Хакер #073Журнал Хакер #072Журнал Хакер #071Журнал Хакер #070Журнал Хакер #069Журнал Хакер #068Журнал Хакер #067Журнал Хакер #066Журнал Хакер #065Журнал Хакер #064Журнал Хакер #063Журнал Хакер #062Журнал Хакер #061Журнал Хакер #060Журнал Хакер #059Журнал Хакер #058Журнал Хакер #057Журнал Хакер #056Журнал Хакер #055Журнал Хакер #054Журнал Хакер #053Журнал Хакер #052Журнал Хакер #051Журнал Хакер #050Журнал Хакер #049Журнал Хакер #048Журнал Хакер #047Журнал Хакер #046Журнал Хакер #045Журнал Хакер #044Журнал Хакер #043Журнал Хакер #042Журнал Хакер #041Журнал Хакер #040Журнал Хакер #039Журнал Хакер #038Журнал Хакер #037Журнал Хакер #036Журнал Хакер #035Журнал Хакер #034Журнал Хакер #033Журнал Хакер #032Журнал Хакер #031Журнал Хакер #030Журнал Хакер #029Журнал Хакер #028Журнал Хакер #027Журнал Хакер #026Журнал Хакер #025Журнал Хакер #024Журнал Хакер #023Журнал Хакер #022Журнал Хакер #021Журнал Хакер #020Журнал Хакер #019Журнал Хакер #018Журнал Хакер #017Журнал Хакер #016Журнал Хакер #015Журнал Хакер #014Журнал Хакер #013Журнал Хакер #012Журнал Хакер #011Журнал Хакер #010Журнал Хакер #009Журнал Хакер #008Журнал Хакер #007Журнал Хакер #006Журнал Хакер #005Журнал Хакер #004Журнал Хакер #003Журнал Хакер #002Журнал Хакер #001