Надежные средства аутентификации для виртуальной частной сети
Долгое время в качестве протокола дистанционного доступа для виртуальных частных сетей (Virtual Private Networks, VPN) я использовал PPTP — несмотря на его недостатки в том, что касается обеспечения защиты данных. Когда в продажу поступила Windows 2000, я с нетерпением ждал возможности использовать в этом же качестве протокол L2TP (Layer Two Tunneling Protocol), однако вскоре мне пришлось с огорчением убедиться, что в случае совместного использования L2TP и службы трансляции сетевых адресов (Network Address Translation, NAT) возникают определенные проблемы, — впрочем, об этом позже.
На базе протокола L2TP можно создать полностью управляемую и хорошо защищенную VPN с удаленным доступом, способную взаимодействовать с клиентами Windows 95 и более поздних версий. Но при этом администратору приходится решать ряд проблем, связанных с обслуживанием удаленных пользователей, которые расположены за защитным экраном NAT, с настройкой клиентов и сертификатов, с аутентификацией и с обеспечением безопасности всей системы. Кстати, должен заметить, что в процессе подготовки этой статьи я пользовался бета-версией системы Windows Server 2003; сейчас же доступна ее окончательная версия. Давайте начнем с L2TP как базового компонента VPN с защищенным дистанционным доступом.
Усовершенствованные протоколы с шифрованием
Как известно, PPTP не обеспечивает защиты от атак через посредника, способных вызвать нарушение целостности данных и подмену адресата. Но главный недостаток этого протокола в том, что он дает возможность выполнять процедуры аутентификации, основанные лишь на одном критерии (а именно на знании пользователем пароля). Иными словами, если злоумышленник выкрадет или разгадает пароль служащего, он сможет получить доступ к сети компании. Преодолеть барьер двухфакторной аутентификации, в ходе которой используются как некие знания пользователя (скажем, пароль), так и предметы (допустим, карта с защищенным ключом или сертификат), уже гораздо сложнее. В среде Windows XP и более поздних версиях Windows существует возможность заменить пароли пользовательскими сертификатами, для чего наряду с PPTP применяется протокол Extensible Authentication Protocol-Transport Layer Security (EAP-TLS). Но комбинация PPTP и EAP-TLS обеспечивает лишь однофакторную аутентификацию и не устраняет уязвимости PPTP в сетевой среде. Кроме того, нельзя забывать, что сертификаты не переносимы. А значит, если пользователю понадобится позаимствовать ноутбук коллеги или потребуется заменить вышедший из строя мобильный компьютер находящегося в отъезде сотрудника, осложнений не избежать, ведь для того, чтобы пользователь мог подключиться к VPN и войти в сеть компании, придется предварительно установить на его машине сертификат, созданный именно для этого пользователя.
За последние годы разработчики Microsoft приложили немало усилий, чтобы удержать PPTP «на плаву». Однако понятно, что L2TP покоится на гораздо более прочном и совместимом с общепринятыми стандартами фундаменте: это и усиленная двухфакторная аутентификация, и шифрование, и целостность данных. Когда с помощью протокола L2TP выполняется подключение к серверу VPN, для аутентификации систем этот протокол использует сертификаты клиентских и серверных машин. После успешного завершения процедуры аутентификации L2TP устанавливает соединение по протоколу IP Security (IPSec) в режиме Encapsulating Security Payload (ESP). До этого момента L2TP зашифровывал все данные, проходящие через VPN в Internet, защитил соединение от «атак через посредника» и завершил первый уровень аутентификации. Если перспектива обеспечивать все компьютеры сети сертификатами не вызывает у вас энтузиазма, рекомендую воспользоваться одним из замечательных средств, разработанных специалистами Microsoft для решения этой проблемы, а также многих других задач, связанных с развертыванием VPN промышленного уровня с дистанционным доступом (скажем, Group Policy для автоматизации регистрации сертификатов или Connection Manager Administration Kit — CMAK — для автоматизации развертывания клиентов VPN).
Далее, L2TP обеспечивает аутентификацию пользователей. Можно выбрать любой из методов, но сейчас я предлагаю рассмотреть вариант, связанный с применением пароля сетевой учетной записи пользователя. Нам придется также выбрать протокол аутентификации, на который L2TP возложит задачу верификации пароля. На первый взгляд может показаться, что этот вопрос не имеет большого значения, поскольку мы уже используем протокол IPSec. Но не будем забывать о том, что сервер VPN, осуществляющий аутентификацию на уровне пользователя, может успешно выполнить эту задачу только в том случае, если предварительно вступит во взаимодействие с контроллером домена. Отсюда следует, что протокол аутентификации может стать важным фактором, который обеспечивает защиту пользовательских паролей от посягательств со стороны любителей чужих ключей, работающих во внутренней сети. После успешного завершения аутентификации пользователя средствами протокола L2TP мы получаем защищенный туннель для передачи данных по Internet в нашу сеть; этот туннель обеспечит такой же доступ к сети, какой предоставляет локальное соединение, разве что скорость передачи будет чуть ниже. Известие о том, что Windows 2000 оснащена средствами для работы с протоколом L2TP, в свое время очень меня порадовало, но скоро я столкнулся с одной проблемой. После настройки L2TP мне удалось установить соединение с сервером VPN в дороге, когда я подключился к Internet через канал своего глобального провайдера. Но когда я подключил ноутбук к локальной сети одного из клиентов и попытался получить соединение с сервером VPN, L2TP не смог его установить, и я получил сообщение об ошибке с кодом 791: The L2TP connection attempt failed because security policy for the connection was not found. Проблема возникла потому, что для сокрытия внутренней сети от любопытных взглядов из Internet мой клиент, как и системы многих других компаний, использует службу NAT. А надо сказать, что при передаче пакетов между Internet и корпоративной сетью NAT изменяет номера портов TCP и UDP, поэтому L2TP не может выполнить проверку целостности данных средствами IPSec. Именно из-за этого ограничения многие компании лишены возможности использовать L2TP в качестве надежного протокола дистанционного доступа, поскольку и сети деловых партнеров, и домашние сети, из которых многие удаленные пользователи соединяются с корпоративными сетями, как правило, оснащены средствами NAT.
Чтобы решить эту проблему, ведущие компании отрасли, в том числе Microsoft, Nortel Networks, F-Secure и Cisco Systems, разработали спецификацию NAT-Transversal (NAT-T). Документ с описанием нового стандарта можно найти на Web-узле Internet Internet Engineering Task Force (IETF) по адресу http://www.ietf.org/internet-drafts/ draft-ietf-ipsec-udp-encaps-06.txt. С помощью средств NAT-T два компьютера получают возможность выявить наличие одного или нескольких расположенных между ними NAT-устройств и затем перейти на инкапсуляцию обычных пакетов IPSec в пакеты UDP с портом 4500. По данным, которыми я располагаю сегодня, Microsoft планирует встроить в Windows 98 и в более поздние версии Windows клиенты VPN на базе протокола L2TP и стандарта NAT-T. Так что можно смело использовать клиенты более ранних версий, а также контроллеры доменов и центры сертификации уровня Windows 2000, но сервер VPN должен функционировать под Windows 2003.
Создание конфигурации VPN на базе протокола L2TP
Чтобы разобраться в особенностях формирования VPN на базе L2TP, рассмотрим пример. Предположим для начала, что контроллеры нашего домена функционируют под управлением Windows 2000, а в число клиентов, расположенных в одном сегменте сети, входят, как показано на рисунке, компьютеры Windows XP, Windows NT и Windows 9x. Для предоставления удаленным пользователям доступа на базе средств L2TP/NAT-T необходимо добавить сервер Windows 2003. Как известно, все редакции Windows 2003 — за исключением Windows 2003 Web Edition — позволяют одновременно устанавливать не менее 1000 VPN-соединений. В этом примере VPN-сервер Windows 2003 непосредственно подключается к Internet. Сервер VPN можно устанавливать как перед брандмауэром, так и внутри демилитаризованной зоны (Demilitarized Zone, DMZ) — Microsoft предоставляет информацию о том, как осуществляется настройка установленных на брандмауэре и сервере VPN фильтров для обработки пакетов в каждом из упомянутых случаев. Мало того, брандмауэр и сервер VPN могут даже размещаться на одном и том же компьютере. В нашем примере сервер VPN подключается еще и к внутренней сети, поэтому нам придется тщательно защитить этот сервер, чтобы хакеры не смогли проникнуть во внутреннюю сеть. Наряду с VPN-сервером Windows 2003 нам нужно будет установить на одном из существующих контроллеров домена Windows 2000 службу Internet Authentication Service (IAS), которая есть не что иное, как Microsoft-версия сервера Remote Authentication Dial-In User Service (RADIUS). Это делается для того, чтобы сервер VPN мог средствами сервера RADIUS осуществлять аутентификацию удаленных пользователей по их учетным записям в домене Windows 2000. Наконец, нам необходимо установить последний серверный компонент — службу сертификатов Certificate Services; с ее помощью мы будем предоставлять компьютерные сертификаты серверу VPN и машинам удаленных клиентов. Для клиентов Windows XP и Windows 2000 потребуется установить обновленную версию IPSec NAT-T. Надо сказать, что системы Windows XP и Windows 2000 уже наделены средствами для работы с протоколами L2TP и IPSec, поэтому данное обновление содержит лишь исправления для IPSec в NAT-T. Для обеспечения функционирования клиентов Windows NT и Windows 9x необходимо установить программу L2TP/IPSec VPN Client. Ее можно получить по адресу http://www.microsoft.com/windows2000/server/ evaluation/news/bulletins/l2tpclient.asp.
Настройка центра сертификатов и IAS в домене Windows 2000
Нам предстоит настроить сервер VPN, но прежде необходимо создать центр сертификации (Certificate Authority, CA). Служба сертификатов может устанавливать либо автономный центр сертификации, либо центр сертификации уровня предприятия. Если создается центр сертификации уровня предприятия, то компьютеры, функционирующие под управлением Windows 2000 и более поздних версий, по умолчанию доверяют сертификатам, выданным этим центром сертификации. Кроме того, данный режим позволяет автоматически назначать эти сертификаты компьютерам Windows 2003, Windows XP и Windows 2000. В нашей демонстрационной сети мы установим службу сертификатов на контроллере домена ad1, как показано на рисунке.
Установка службы сертификатов выполняется так. Нужно зарегистрироваться на соответствующем сервере, открыть оснастку Add/Remove Programs и запустить мастер Windows Component Wizard (для этого следует выбрать элемент Add/Remove Components). Требуется установить флажок Certificate Services и щелкать на кнопке Next до тех пор, пока не откроется окно Certification Authority Type. В качестве первого центра нужно выбрать Enterprise Root CA и далее следовать всем указаниям мастера. Служба сертификатов может функционировать лишь при наличии сервера Microsoft IIS. Если данный пакет еще не установлен, его установит система Windows 2000. По прошествии нескольких часов после создания центра сертификатов уровня предприятия каждый функционирующий под управлением Windows 2000 и более поздней версии Windows компьютер домена автоматически добавит в хранилище сертификатов Trusted Root Certification Authorities самоподписанный сертификат. Тем самым все эти компьютеры засвидетельствуют доверительное отношение ко всем сертификатам, представленным другими машинами и подписанным вашим центром сертификации.
Далее требуется установить сертификаты на клиентских компьютерах, которые будут подключаться к сети через VPN; это необходимо для того, чтобы клиенты могли устанавливать с сервером VPN первоначальное соединение по протоколу IPSec. Развертывание сертификатов на входящих в домен компьютерах с Windows 2000 и более поздними версиями Windows можно осуществлять с помощью Group Policy. Следует открыть оснастку Active Directory Users and Computers консоли Microsoft Management Console (MMC), выбрать корневой каталог домена и установить сертификат на каждом компьютере домена. При желании можно выбрать организационную единицу, в которой хранится информация обо всех удаленных компьютерах. Правой кнопкой мыши нужно щелкнуть на имени домена, выбрать пункт меню Properties. Откроется окно корневого каталога домена. Следует перейти на закладку Group Policy, щелкнуть на элементе Default domain Policy Group Policy Object (GPO) и перейти к элементу Computer ConfigurationWindows SettingsSecurity SettingsPublic Key Policies. Правой кнопкой мыши нужно щелкнуть на Automatic Certificate Request Settings, выбрать пункт New и далее — Automatic Certificate Request. Откроется окно мастера Automatic Certificate Request Setup Wizard с предложением указать, какой шаблон сертификата и центр сертификатов вы хотите использовать. Следует выбрать шаблон сертификата Computer certificate, выбрать новый центр сертификатов и завершить работу с мастером. Таким образом, процесс добавления нового запроса к локальному центру сертификатов будет закончен. Теперь всякий применяющий данный объект GPO компьютер будет автоматически запрашивать сертификат у центра сертификатов — без каких-либо напоминаний. Центр сертификатов будет автоматически санкционировать поступивший запрос, так как в соответствии со стандартными разрешениями шаблона сертификата Computer контроллеры доменов имеют право запрашивать сертификат, а соответствующий компьютер может автоматически обращаться в центр сертификатов по протоколу Kerberos — ведь оба компьютера входят в состав одного и того же домена.
Для развертывания сертификатов на компьютерах, функционирующих под управлением более ранних, нежели Windows 2000, версий Windows, а также на компьютерах, применяющихся для дистанционного доступа к сети, в каждом случае придется вручную направлять запрос и устанавливать сертификат соответствующего клиентского компьютера, а также сертификат соответствующего центра сертификатов. Для выполнения такого запроса можно воспользоваться Web-сайтом сервера сертификатов, расположенным по адресу computernamecertserv.
Далее необходимо установить на контроллере домена службу IAS, которая будет обрабатывать запросы на аутентификацию, поступающие от оснащенного службой RADIUS сервера VPN. Следует вновь открыть окно оснастки Add/Remove Programs и выбрать элемент Add/Remove Components. На этот раз нужно выбрать пункт Networking Services, а затем — пункт Details. Необходимо установить флажок Internet Authentication Service и далее выполнять все указания мастера. После установки службы IAS требуется настроить ее так, чтобы служба принимала запросы RADIUS с сервера VPN, который является клиентом сервера IAS. Откройте окно оснастки Internet Authentication Service, правой кнопкой мыши щелкните на папке Clients, затем выберите пункт New Client. Далее нужно ввести имя сервера VPN (в данном примере я ввел имя testras), затем щелкнуть на кнопке Next. Получив приглашение, следует добавить имя клиента в диалоговом окне RADIUS Client (в нашем примере я ввел имя tastras.ad.local), изменить значение параметра Client-Vendor на Microsoft, а затем ввести строку символов, которую предстоит использовать в качестве общего ключа (shared secret). Общие ключи дадут возможность обрабатывать лишь те запросы на аутентификацию, которые будут поступать от полноправного сервера VPN, где нужно установить тот же общий ключ для аутентификации в домене. Кстати, этот ключ будет использовать и Windows 2000 — в целях шифрования и подтверждения целостности данных, пересылаемых между сервером VPN и сервером RADIUS. Общий ключ защищает от несанкционированного доступа конфиденциальный RADIUS-трафик в пределах внутренней сети. Microsoft рекомендует применять общие ключи длиной не менее 22 символов; они должны состоять из прописных и строчных букв, а также из цифр и символов. Закончив ввод общего ключа, следует завершить выполнение мастера щелчком на кнопке Finish.
Экран 1. Подключение подписи для защиты внутреннего траффика RADIUS |
Теперь контроллер домена готов к приему запросов от сервера VPN, но перед тем, как проверять это на практике, нужно откорректировать параметр безопасности, не учтенный мастером IAS. Необходимо открыть оснастку Internet Authentication Service, затем выбрать папку Clients. Следует выполнить двойной щелчок на записи клиента; сервер VPN откроет диалоговое окно сервера Properties, показанное на экране 1. Теперь нужно установить флажок Client must always send the signature attribute in the request. Тем самым мы ставим перед системой Windows задачу обеспечивать максимальный уровень защиты трафика RADIUS при прохождении по внутренней сети. Операционная система будет требовать от клиента аутентификации при передаче каждого запроса и обеспечит серверу RADIUS возможность убедиться в том, что запрос не был изменен в процессе пересылки.
Установка сервера VPN
По завершении настройки центра сертификатов и службы IAS можно браться за установку сервера VPN. В нем должны быть две сетевые платы. Одну следует соединить с внутренней сетью, а другую оставить неподключенной — из соображений безопасности мы не будем подключать второй адаптер к Internet до тех пор, пока не обезопасим сервер. Необходимо установить Windows 2003 со стандартными настройками (их мы подкорректируем позднее) и защитить локальную учетную запись Administrator таким длинным паролем, который не сможет быстро разгадать злоумышленник. Пусть в ходе установки сервер получит адрес DHCP. После этого компьютер можно присоединять к домену. По завершении установки нужно зарегистрироваться в системе в качестве администратора домена. Следует открыть папку Network Connections и дать сетевым адаптерам новые имена, чтобы иметь возможность различать соединения с Internet и с внутренней сетью. Далее требуется назначить для соединения с внутренней сетью статический IP-адрес, а также соответствующую подсеть, DNS и шлюз по умолчанию. VPN-серверу внутренней сети можно присвоить DHCP-адрес, но в этом случае процесс конфигурации будет сложнее, так что специалисты Microsoft рекомендуют использовать статический адрес. Затем в соответствии с инструкциями провайдера необходимо назначить для соединения с Internet соответствующий IP-адрес, подсеть и шлюз по умолчанию. При желании можно подключить к внешнему адаптеру сервера VPN концентратор и соединить его еще с одним компьютером: он будет имитировать компьютер из Internet. Если присвоить этому компьютеру какой-либо адрес внутри той же подсети, в которой находится сервер VPN, можно использовать данный компьютер как тестовый и выполнять сканирование портов сервера VPN или проверку его уязвимых мест как последний тест перед подключением сервера к Internet.
По завершении настройки сетевых адаптеров нужно установить службу Routing and Remote Access. Следует открыть оснастку Routing and Remote Access, щелкнуть правой кнопкой мыши на имени сервера, который был выбран для установки Routing and Remote Access, и запустить мастер Routing And Remote Access Server Setup Wizard (для этого нужно выбрать пункт Configure and Enable Routing and Remote Access). Щелкните на элементе Remote access (dial-up or VPN) и далее — на кнопке Next. В окне Remote Access следует установить флажок VPN, сбросить флажок Dial-up и нажать Next. В окне VPN Connection, показанном на экране 2, нужно выбрать соединение с Internet, установить флажок Enable security on the selected interface by setting up static packet filters и нажать Next. В окне IP Address Assignment требуется указать, каким образом сервер VPN будет назначать клиентам VPN IP-адреса внутренней сети. Можно сделать так, чтобы сервер VPN получал произвольный адрес от сервера DHCP, или назначать IP-адрес из тех адресов, которые выделены в сети для клиентов VPN. Проще всего воспользоваться услугами сервера DHCP. Но не исключено, что вы захотите использовать зарезервированный диапазон адресов. Прийти к такому решению заставляют два обстоятельства. Во-первых, в этом случае можно с легкостью идентифицировать весь клиентский трафик VPN во внутренней сети, ибо в вашем распоряжении будут исходные IP-адреса (тогда как при использовании адресов, предоставленных сервером DHCP, адреса клиентов VPN будут идти вперемешку с адресами локальных клиентов). Во-вторых, чтобы обеспечить дополнительную защиту содержащим конфиденциальные данные серверам внутренней сети, которые не обязательно должны быть доступны удаленным пользователям, вошедшим в сеть по каналам VPN, можно будет настроить фильтры этих компьютеров на блокировку пакетов с адресами отправителей, входящими в диапазон адресов клиентов VPN. И тогда, если какой-нибудь хакер сумеет использовать сервер VPN для успешного вторжения во внутреннюю сеть, он не сможет напрямую атаковать серверы с конфиденциальными данными. Сделав соответствующий выбор, нужно щелкнуть Next.
Экран 2. Выбор Internet-соединения для VPN |
Если вы предпочли назначение адресов из зарезервированного диапазона, мастер предложит ввести границы этого диапазона; в противном случае он предложит указать, желаете вы осуществлять аутентификацию средствами Routing and Remote Access или средствами сервера RADIUS. В процессе подготовки данной статьи я поначалу выбрал пункт Routing and Remote Access — не хотелось перегружать статью множеством вариантов. Но это повлекло за собой несколько ошибок в процедуре аутентификации, которые сразу же исчезли, как только я перешел на использование сервера RADIUS. Итак, следует выбрать пункт RADIUS и нажать Next. Мастер предложит ввести DNS-имя сервера RADIUS и общий ключ. В нашем примере я использовал имя контроллера домена ad1.ad.local (т. е. имя машины, на которой была установлена служба IAS) и общий ключ, который я ввел ранее на сервере IAS. Чтобы застраховаться от сбоев в работе VPN, которые могут последовать за выходом из строя одного из контроллеров домена, можно установить и сконфигурировать службу IAS на другом контроллере домена и обозначить данный контроллер домена как альтернативный сервер службы RADIUS. Нужно щелкнуть Next и просмотреть сводные данные, предлагаемые мастером. При нажатии на кнопку Finish система Windows 2000 запустит службу Routing and Remote Access.
Защита сервера VPN
Итак, наш сервер готов к установлению VPN-соединений, но перед подключением к Internet его следовало бы обезопасить. В консоли Routing and Remote Access нужно открыть диалоговое окно Properties сервера VPN и сбросить флажок Router. Затем требуется перейти на закладку Security и щелкнуть на элементе Configure, расположенном рядом со списком Authentication provider. Когда на экране появится диалоговое окно RADIUS Authentication, следует выбрать имя своего сервера RADIUS и щелкнуть на кнопке Edit. Стандартные настройки сервера VPN предполагают применение сервера RADIUS, но флажок Always use message authenticator по умолчанию не выставляется. Именно по этой причине Windows, возможно, не будет использовать общий ключ, который был введен ранее при настройке службы RADIUS на данном сервере и службы IAS на контроллере домена. Установив этот флажок, мы обеспечим максимальный уровень защиты от посягательств на трафик VPN и IAS. Далее следует перейти на закладку Logging диалогового окна Properties и активизировать функцию регистрации всех событий, что даст возможность отслеживать статистику использования каналов VPN.
Экран 3. Имя сервера RADIUS для данного соединения VPN |
Щелкните на кнопке OK и перезапустите оснастку Routing and Remote Access. Правой кнопкой мыши нужно щелкнуть на папке Ports в окне этой оснастки и в контекстном меню выбрать пункт Properties. Откроется диалоговое окно Ports Properties, показанное на экране 4.
Экран 4. Окно свойств портов |
Затем нужно будет защитить все исходящие или входящие VPN-соединения, кроме удаленного доступа по протоколу L2TP. В диалоговом окне Ports Properties следует открыть свойства WAN Miniport (PPPOE), сбросить флажок Demand-dial routing connections (outbound only) и нажать OK. Далее необходимо открыть окно WAN Miniport (PPTP), сбросить флажок Demand-dial routing, connections (outbound only), а также флажок Remote access connections (inbound only) и нажать OK. Выполним те же действия для Direct Parallel. Теперь подобраться к серверу VPN можно только через удаленное соединение по протоколу L2TP. В диалоговом окне Ports Properties следует открыть WAN Miniport (L2TP) и сбросить флажок Demand-dial-routing connections (outbound only). Определите, какое количество соединений вы хотите поддерживать одновременно, и выделите соответствующее максимальное количество портов, после чего дважды нажмите OK. Нужно переместиться обратно в консоль Routing and Remote Access и правой кнопкой мыши щелкнуть на папке IP Routing. В открывшемся контекстном меню следует выбрать пункт Properties. Это позволит просмотреть свойства интерфейса в Internet. Отсюда можно будет исследовать фильтры для входящих и исходящих пакетов, которые блокируют прохождение несанкционированного трафика через сервер VPN.
Настройка базового брандмауэра Windows 2003
Возможно, вы захотите повысить уровень защищенности системы от атак из Internet и с этой целью активизировать базовый брандмауэр Windows 2003. После активизации службы Routing and Remote Access средства Internet Connection Firewall (ICF) и Internet Connection Sharing (ICS) становятся недоступными. Вместо этого для обеспечения таких функций, как исследование содержимого пакетов по технологии проверки пакетов и трансляции сетевых адресов, служба Routing and Remote Access предусматривает сочетание NAT/базовый брандмауэр. Чтобы воспользоваться данной возможностью, правой кнопкой мыши нужно щелкнуть на папке IP Routing, в раскрывшемся меню выбрать пункт Properties, перейти на закладку General и далее выбрать элемент New Routing Protocol. В диалоговом окне New Routing Protocol следует выбрать элемент NAT/Basic Firewall и затем нажать OK. Внутри папки IP Routing будет создана новая папка NAT/Basic Firewall. Правой кнопкой мыши следует щелкнуть на элементе NAT/Basic Firewall и в контекстном меню выбрать пункт New Interface. В раскрывшемся списке необходимо выделить элемент Internet interface, после чего щелкнуть на кнопке OK. На экране появится диалоговое окно Network Address Translation Properties (оно показано на экране 5). В этом окне нужно выбрать элемент Basic firewall only — ведь мы не хотим, чтобы клиенты внутренней сети выходили в Internet через сервер VPN. Далее следует щелкнуть на элементе Inbound Filters и удалить все фильтры, имеющие отношение к порту 47 (GRE) или к порту 1723 TCP (PPTP). Оба порта совместимы с протоколом PPTP, и хотя мы отключили PPTP в настройках Routing and Remote Access, базовый брандмауэр по умолчанию все еще пропускает трафик по этому протоколу. В диалоговом окне Network Address Translations Properties нужно щелкнуть на элементе Outbound Filters и удалить те же записи. Далее необходимо перейти на закладку Services and Ports. На этой закладке можно указать, какие типы трафика будет пропускать базовый брандмауэр. Установите флажок VPN Gateway (L2TP/IPSec — running on this server) и нажмите на кнопку Edit. В диалоговом окне Edit Service следует ввести адрес внутреннего сетевого адаптера сервера VPN. По завершении настройки базового брандмауэра нажмите OK.
Реализация средства защиты домена и локального компьютера
Теперь ваш сервер надежно защищен от атак из глобальной сети; сервер VPN должен реагировать только на трафик по протоколу IPSec. Эту реакцию можно проверить путем сканирования портов с помощью такого средства, как Nmap (его можно получить на сайте Insecure.org). Теперь почти все готово к подключению сервера VPN к Internet. Но прежде стоит принять кое-какие меры для защиты домена и локальных компьютеров. К счастью, стандартные параметры безопасности системы Windows 2003 гораздо сильнее, чем в Windows 2000. И тем не менее стоит предпринять некоторые шаги по общему усилению сервера VPN. Требуется активизировать функцию аудита и настроить средства защиты таким образом, чтобы можно было отслеживать события в области безопасности. Важно убедиться, что учетные записи локальных пользователей не предусматривают возможности удаленного доступа по коммутируемым соединениям.
Кроме того, нужно установить строгие правила блокировки учетных записей. Локальная учетная запись Administrator должна быть защищена надежным паролем, а учетные записи Guest и другие локальные учетные записи, надобность в которых неочевидна, следует отключить. Имеет смысл деактивировать и все ненужные службы. Я рекомендую вносить перечисленные изменения не путем непосредственной настройки, а с помощью объекта GPO; при этом все параметры будут сохранены, даже если в случае расширения масштабов VPN будет заменен существующий сервер или развернуто несколько серверов.
На уровне домена следует активизировать коммутируемый доступ RAS только для тех пользователей, которым действительно требуется дистанционный доступ, и обеспечить применение этими пользователями надежных паролей. Аутентификация удаленных пользователей на сервере VPN осуществляется по тем же учетным записям, по которым они локально регистрируются в офисе, так что взломщики могут попытаться использовать атаки Denial of Service (DoS) для блокировки одной или нескольких учетных записей путем срыва попыток регистрации на сервере VPN. В среде Windows с попытками блокировать учетные записи удаленных пользователей можно разбираться по отдельности, поэтому действующие по ту сторону брандмауэра взломщики не могут блокировать учетные записи домена локальной сети; вместо этого они сами отсекаются от сервера VPN. Эти особые средства борьбы с попытками блокировки доступа со стороны удаленных пользователей можно активизировать с помощью настройки HKEY_LOCAL_MACHINESYSTEMCurrent ControlSetServicesRemoteAccess ParametersAccountLockout (более подробно настройка этого параметра описывается в документации Windows, по адресу http://www.microsoft.com/technet/treeview/default.asp? url=/technet/prodtechnol/windowsserver2003/proddocs/ datacenter/sag_rras-ch1_74.asp).
После подключения сервера VPN можно попытаться установить соединение с ним с различных клиентов. Я рекомендую начать с соединения с таким клиентом, который устанавливает коммутируемое соединение непосредственно с провайдером, минуя NAT-устройства. Важно не забыть модернизировать свои клиентские машины: если они функционируют под управлением операционных систем, выпущенных до появления Windows 2000, то на них нужно установить VPN-клиенты Microsoft L2TP/IPSec, а если они работают под Windows 2000 или более поздней версией Windows, следует развернуть на них систему IPSec NAT-T. Кроме того, необходимо удостовериться в том, что на клиентах установлены сертификаты компьютеров и что сертификат центра сертификатов находится в папке Trusted Root Certification Authorities. Следует открыть окно Network Connections и создать соединение с сервером VPN с помощью мастера New Connection Wizard. Это соединение нужно настроить на использование протокола L2TP и испытать его с помощью доменной учетной записи, которой разрешен доступ по коммутируемым линиям. Если установить соединение удастся, можно попробовать добиться того же результата из-за NAT-устройства (скажем, из-за брандмауэра домашней сети или из офиса партнера).
Несколько советов по диагностике
Всякий раз, когда в конфигурацию службы Routing and Remote Access или IAS вносятся изменения, я рекомендую перезапускать соответствующую службу; это приведет к тому, что изменения будут применены немедленно. Для выяснения причин проблем со связью, если таковые возникнут, можно воспользоваться журналами регистрации Security и System клиента и сервера VPN, а также журналами регистрации службы IAS и сервера IAS (они хранятся в каталоге \%winroot%system32logfiles). Регистрационные файлы IAS начинаются с IN; их лучше всего просматривать с помощью средства IASParse, которое входит в состав комплекта Servier Resource Kit. Желаю всем нашим читателям успеха в создании двухфакторного механизма аутентификации для VPN с дистанционным доступом, способного преодолевать барьеры NAT.
Рэнди Франклин Смит — редактор Windows & .NET Magazine и президент компании Monterey Technology Group, которая занимается обучением и консалтингом в области защиты Windows NT. Связаться с ним можно по адресу: rsmith@montereytechgroup.com