Microsoft — мировой лидер в области ПО и ИТ-услуг
135,59
рейтинг
12 октября 2010 в 10:18

Разное → DirectAccess в Windows 7. Часть1

В своем предыдущем посте я упоминал о двух, с моей точки зрения, наиболее интересных нововведений Windows 7 – BranchCache и DirectAccess. Технология BranchCache была рассмотрена в прошлый раз. Настала очередь DirectAccess. Однако по ходу дела стало понятно, что материал выходит за рамки одного поста. Поэтому для начала я сосредоточусь на рассмотрении особенностей DirectAccess и некоторых вопросах использования IPv6.

Что такое DirectAccess

DirectAccess – технология удаленного доступа к ресурсам корпоративной сети. С потребительской точки зрения суть технологии можно выразить следующим образом: «Как только мой компьютер подключился к Интернету, так сразу я получил доступ и к ресурсам Интернета, и ко всей корпоративной сети». Выражаясь техническим языком, при подключении к Интернету пользовательский компьютер, сконфигурированный в качестве клиента DirectAccess (DA-клиента), автоматически устанавливает туннель до сервера DirectAccess (DA-сервера) и через него получает доступ ко всей корпоративной сети. Отличается ли это чем-то принципиально от традиционных VPN-решений? Давайте рассмотрим особенности DirectAccess и технологическую основу данного решения, после чего, думаю, каждый сам для себя сможет ответить на этот вопрос.

Особенности DirectAccess

Первая очень важная особенность – от пользователя не требуются никакие дополнительные действия. Туннель между клиентом и сервером DirectAccess устанавливается автоматически, причем, как будет показано в дальнейшем, фактически создаются два туннеля: один для аутентификации компьютера, второй для аутентификации пользователя. И этот процесс для пользователя абсолютно прозрачен. Не нужно запускать какие-либо VPN-соединения, не нужно вводить учетные данные – логин и пароль, пин-код для смарт-карты и пр. Более того, если связь с Интернетом на какое-то время теряется, и при этом естественно разрывается туннель, а затем восстанавливается (например, нестабильный сигнал WiFi), то опять же автоматически без участия пользователя восстанавливается и туннель в корпоративную сеть.

Вторая особенность следует из первой, хотя, возможно, это и не очень очевидно. Все время, пока есть связь с Интернетом, и существует туннель, клиентский компьютер доступен для управления со стороны ИТ-служб компании. Иными словами, благодаря DirectAccess не только пользователь может постоянно работать с корпоративными ресурсами, была бы связь с внешним миром, но и другие сотрудники, в первую очередь айтишники, имеют доступ к компьютеру пользователя. Пользователь все время находится «под колпаком» у ИТ-служб, что, наверное, не очень устраивает его самого, но очень устраивает ИТ-персонал. :) С практической точки зрения этот факт дает возможность осуществлять мониторинг клиентской машины – проверку антивирусных баз, последних обновлений, включенного firewall и пр. – даже если она находится за пределами корпоративной сети. С другой стороны, вручную разорвать DA-туннель не так просто, как в случае VPN-соединения, которое, как правило, визуально отображается в сетевых подключениях. То есть конечно можно, но нужно знать как.

Ну и наконец, по умолчанию DirectAccess обеспечивает разные маршруты к локальным, внешним и корпоративным ресурсам (см. рис. 1). Во многих реализациях при установке VPN-соединения меняется адрес шлюза по умолчанию, и весь трафик гонится на VPN-сервер, а уже оттуда в Интернет или корпоративную сеть. Это с одной стороны замедляет скорость работы с Интернет-ресурсами, с другой может создавать определенные проблемы с маршрутизацией в локальной сети. DirectAccess достаточно гибок в настройке, поэтому можно как настроить режим split tunnel (по умолчанию), так и заворачивать весь трафик на DA-сервер.
image
Рис. 1

Технологический фундамент

Давайте рассмотрим теперь технологические решения, лежащие в основе DirectAccess. Фактически их три:
1. Протокол IPv6 для связи DA-клиента с DA-сервером и компьютерами Интрасети.
2. Протокол IPSec поверх IPv6 для защищенной передачи данных по Интернет- / Интранет-сети.
3. Таблица политики разрешения имен (Name Resolution Policy Table, NRPT) для корректного разрешения внутренних (корпоративных) и внешних имен.
Последняя, к слову сказать, позволяет пользователю, находясь в Интернете, обращаться к внутренним ресурсам по коротким именам, например: \\corp-srv1\docs. Обсудим последовательно все три перечисленные компоненты.

IPv6

DirectAccess требует наличия настроенного протокола IP версии 6, как минимум на DA-клиентах и DA-серверах. Не спешите сразу заканчивать чтение, это вовсе не означает, что DirectAccess неприменим в нынешних условиях практически безраздельного царствования IPv4 на просторах нашего, да и не только нашего Интернета.

Почему вообще была сделана ставка на IPv6? Этот протокол обладает массой преимуществ, главное из которых – отсутствие недостатков старого доброго IPv4. :) Если серьезно, то применительно к нашей теме я бы отметил следующие особенности IPv6.

Первое – это огромное адресное пространство. Что это реально дает? Сейчас все или почти все компании используют один или несколько публичных IPv4-адресов в демилитаризованной зоне, в то время как компьютеры внутренней сети настроены на какой-либо из диапазонов частных адресов (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16). Вполне вероятно, что при подключении к Интернету через NAT удаленный компьютер получит адрес из такого же диапазона, что сделает применение режима split tunnel весьма затруднительным. Подобная же проблема может возникнуть при связывании через VPN двух удаленных офисов, использующих одинаковую частную IP-подсеть. Адресное пространство IPv6 позволяет присвоить любому хосту компании уникальный IPv6-адрес, причем уникальный не только в пределах корпоративной сети, но и всего Интернета. Как следствие необходимость в трансляции адресов отпадает, и можно вообще отказаться от использования NAT – речь будет идти только о маршрутизации пакетов.

Насколько безопасна работа без NAT? Понимаю, что вопрос более чем дискуссионный. И все же. Давайте вспомним, что в первую очередь NAT призван решить проблему нехватки публичных IPv4-адресов. Этой проблемы нет в IPv6. Второе следствие применения NAT – скрытие внутренней IP-адресации. Хосты в Интернете «видят» только IP-адреса на внешнем интерфейсе NAT-устройства. В случае отказа от NAT компания «засветит» реальные IPv6-адреса корпоративной сети. Является ли это угрозой безопасности? В общем случае да. Чем меньше злоумышленник знает о моей сети, тем меньше потенциальных бед может натворить. Однако с другой стороны, мы ведь говорим об удаленном доступе клиентов к корпоративным ресурсам. Firewall-ы никто не отменял, они по-прежнему пропускают только определенный трафик и наверняка снабжены системами обнаружения вторжений, предотвращения сканирования портов и пр. Кроме того, едва ли кто-нибудь будет организовывать туннель для удаленного доступа без шифрования. И вот тут надо вспомнить про IPSec over IPv6. DA-сервер принимает только IPSec-трафик. По умолчанию. Перенастроить всегда можно. А при установке IPSec-соединения происходит взаимная аутентификация сервера и клиента, сначала на уровне учетных записей компьютеров посредством цифровых сертификатов, затем на уровне учетной записи пользователя посредством заданного корпоративной политикой механизма (пароль, смарт-карта, отпечатки пальцев и пр.). Соответственно, знание конкретного IP-адреса внутреннего сервера едва ли сильно облегчит задачу проникновения во внутреннюю сеть.

И напротив, отказ от NAT приводит к еще одной полезной особенности использования IPv6 – возможности защищенных соединений точка-точка. Действительно, стандартным решением в случае NAT является схема (см. рис. 2), при которой шифрованный туннель устанавливается от, в данном случае, DA-клиента до DA-сервера. По внутренней сети трафик передается уже в открытом виде (красные стрелки), либо снова шифруется, но уже не клиентом, а DA-сервером.
image
Рис.2

В случае глобальной маршрутизации IPv6 шифрованный канал может быть установлен между DA-клиентом и конечным сервером, а сервер DirectAccess лишь пропускает (маршрутизирует) такой трафик через себя (см. рис. 3). Это позволяет настраивать права доступа к серверам и на уровне компьютеров, и на уровне пользователей, дополнительно «закручивая гайки» безопасности. Сложность же в реализации подобной схемы при использовании трансляции адресов заключается в том, что каждый пакет IPSec имеет цифровую подпись, которая нарушается, когда NAT-устройство пытается модифицировать пакет. И хотя решение данной проблемы существует, не каждое NAT-устройство его поддерживает.
image
Рис. 3

Ну и еще один немаловажный момент, связанный с NAT. Приложения. Можно легко столкнуться с программами, которые не работают или криво работают через NAT. В том числе, в силу некорректного разрешения внутренних и внешних имен. Отсутствие NAT позволяет разработчикам забыть о вопросах трансляции адресов и сосредоточиться на бизнес-логике приложения, а администраторам избавиться от дополнительных настроек и приложений, и firewall-ов.
Таким образом, на чаше весов оказываются «открытость» IP-адресации вашей сети и те преимущества «мира без NAT», которые я попытался обозначить. Выбор, как всегда, за вами.

В следующем посте я закончу рассмотрение технологического фундамента DirectAccess. Речь пойдет об использовании IPv6 в среде IPv4, вариантах применения IPSec over IPv6, особенностях реализации NRPT.
Автор: @ashapo
Microsoft
рейтинг 135,59
Microsoft — мировой лидер в области ПО и ИТ-услуг

Комментарии (43)

  • –13
    Очередные костыли от MS для админов котрые не в состоянии грамотно настроить vpn/openvpn и маршрутизацию. А вообще на виндовс серверах это в принципе не возможно, поэтому и рождаются подобные продукты.
    • +4
      По-моему, как-то неконструктивно. Пока речь шла фактически об IPv4 и IPv6, а это все RFC.
      • –2
        все зависит от задач. в свое время столкнулся с задачами которые просто не имели решения на платформе MS.
        linux дает набор инструментов с помощью которых можно делать все что угодно — iproute2 + iptables в купе с openvpn или pppoe сервером представляет фантастические возможности.
        В частности возможно ли в windows иметь несколько таблиц маршрутизации и в зависимости от типа трафика (комплекс ряда условий — ип, протокол, порт, etc) распределять его по разным таблицам?
        несколько лет эту задачу решить было просто невозможно в windows — сейчас может и есть чтото, но я очень сомневаюсь.
        • +7
          Простите, а причем здесь то что вы сейчас написали и DirectAccess?
      • 0
        дело в том, что главная фича директ ацесс во всех рекламных статьях (включая эту): «Первая очень важная особенность – от пользователя не требуются никакие дополнительные действия» — т.е. автоматическое поднятие туннеля при наличии интернета
    • +2
      В чем смысл вообще заморачиваться с опенвпн если в винде есть искаропки впн? Вот это действительно костыль. А DirectAccess по-моему очень удобная технология хотя бы уже тем, что не надо пациентам рассказывать вот, мол, щелкните сначала вот этот значочек чтоб подключиться к интернету, потом вот этот чтоб подключиться к сети компании, потом введите логин и пароль, причем не свои, а от впн…
      • –1
        в опенвпн можно сделать аутентификацию по ключам без паролей. ну и запускать при старте.
        да этого нет в коробке винды. и осилить это видимо невероятно трудно и заморочено.
        • 0
          Конечно можно. только вот сравни трудозатраты на подключение клиента с впн штатными средствами винды и с помощью опенвпн.
          • +1
            для опенвпн — запустить инсталл, а потом распаковать три файлика.
            • 0
              Найти, скачать, установить, потом где-то найти эти 3 файлика, додуматься куда их копировать… А кстати разве опенвпн кроме автозагрузки умеет еще и автоподключение? Конфиги наверно ковырять надо?
              • 0
                Умеет. Если подойти, установить, настроить. Так, чтобы через Group Policy — никогда не сможет.
              • +1
                Админ найдёт скачает и настроит сервер. И скажет куда скопировать.
            • +2
              Для DirectAccess:
              1 Раз настроить сервер. Всё.
              • 0
                дык это… для опенвпна — то же самое, не? только сертификат на клиента положи и все
                • 0
                  Не. Ибо на клиента надо бы самого OpenVPN клиента поставить ;)
                  Да, это решаемо политиками (а уж GPP так и вообще сказка), но всё равно, по сравнению с DA количество телодвижений гораздо больше.
        • +3
          > да этого нет в коробке винды.

          Да ладно? Аутентификацию по сертификатам не проходили еще? Групповыми политиками подключения не создавали? Никогда не настраивали клиентские компьютеры централизованно?

          Юзер вообще может не знать, что он подключается к какому-то там VPN. А добиться такой прозрачности с применением DA бесконечно проще — вообще никак не надо настраивать клиентский компьютер. VPN становится не нужен.
          • 0
            имеется ввиду автоподнятие туннеля при появлении связи, наверное
  • –7
    майкрософт переименовала IPSec. это для них типично.
    но почему vpn и маршрутизацию принципиально невозможно настроить?
    • +4
      Майкрософт не переименовывала IPSec, в документации прямо указано что эта технология используется как часть решения DirectAccess. Если для MS типично переименовывать общепринятые протоколы — потрудитесь предоставить примеры, пожалуйста.
      Принципиально можно настроить и vpn, и маршрутизацию, и на любой платформе, о чем спор?
      Другое дело что тут это делается в несколько кликов, все это тесно интегрируется с уже настроенными NAP. Видно все что открыто и кому из одного места (UAG). За пару минут добавляется мониторинг для новой технологии через OpsMgr.
      Никто не спорит что все можно сделать на не-MS. Но насколько удобно это получится и сколько будет затрачено времени?
      • 0
        безусловно времени на запуск решений от MS нужно меньше. Все зависит от квалификации специалистов, но всеж меньше — это однозначно.
        но и цена другая да и железо тоже поживее надо.
        • –2
          в случае поднятия простейшего интернет-шлюза — windows-server тупо дольше устанавливается (по крайней мере 2003, более поздние версии не ставил). конечно, если вам нужен контроллер домена, то в линуксе вам нужно точно знать, что вы делаете. Не гроворю, что в виндовс не нужно знать ничего, но средневзвешенный админ на винде поднимет контроллер домена, наверное, быстрее.
          • +2
            в случае поднятия простейшего интернет-шлюза — ставится коробка от Cisco и настраивается за 5 минут.
            • 0
              тогда уж вообще длинк дир-300
              • 0
                На 3х человек — может быть, или для Вас шлюзы-роутеры различаются только интерфейсом конфигурирования?
          • 0
            Да если бы только контроллер домена, он ведь ставится для чего-то. Простейший случай — централизованное управление аккаунтами пользователей, администрирование пользовательских рабочих мест, запрет/разрешение пользования разными информационными ресурсами, автоматизация рутины. Я думаю нет сомнения в том, на какой платформе это быстрее реализуется. И дело тут не в квалификации админа, а в том что майкрософт достаточно много внимания уделяет взаимодействию собственных продуктов и их работе «из коробки».
      • –4
        Спор ни о чём. Я просто спросил автора первого коментария, да видать промахнулся кнопкой, коментарий получился верхнего уровня.

        Разумеется майкрософт ничего не переименовывала прямо. Майкрософт часто берёт какую-то технологию, заворачивает в новую обёртку и даёт громкое название. Из примеров сейчас вспомнил «Web folders».
      • –1
        дело в том что когда инфраструктура уже работает долгие годы — что-то менять иногда себе дороже. а автоподнятия VPN при появлении связи — например на шлюзе филиала с центральным офисом — у майкрософта не было до этого момента, нужно было писать скрипты или ставить специально обученного человека.
        • +1
          > а автоподнятия VPN при появлении связи у майкрософта не было

          Было, есть и будет есть. Обычнейшее on-demand подключение на сервере RRAS. В настройках запрещаем отключаться при простое, пусть остается подключенным вечно. Связь оборвалась — подключение упало. Связь появилась — курим до тех пор, пока подключение не требуется. Как только стало нужно — поднялось. Всё делается в три щелчка, какие еще специально обученные скрипты?
          • 0
            тогда я вообще не понимаю, почему майкрософт как киллер-фичу это свое автоподнятие туннеля позиционирует
            • 0
              Внимательно почитайте ВСЕ возможности DA.
              Заодно не забудьте прочитать сколькими и какими способами он это может делать.
              • 0
                я не говорю про ВСЕ возможности, я говорю про то, что в рекламе
                • 0
                  Ещё раз прочитал ветку и всё стало на свои места.
                  Вы знаете что такое RRAS, о котором пишет chupkb?
  • 0
    Как сисадмину мне интересно, как администратор локальной сети может запретить directaccess (как клиентов) с машин своей сети. Достаточно ли для этого запретить Teredo и IPV6 на firewall-e?
    • 0
      DA умеет через HTTPS ходить. Так что…
    • 0
      А зачем вам это делать?
      Если вы хотите держать свою сеть под контролем: устанавливайте настройки машин с помощью групповых политик, проверяйте соответствие с помощью NAP.

      Если вы хотите обезопаситься от слива информации — отключите интернет, или разрешите обращения лишь к особо определнным сайтам и проверяйте трафик. Туннели есть и такие что в icmp-пингах прячуться.

      И вообще, в наше время наивно делать различия в плане безопасности между внутренней и внешней сетью. Большинство угроз сейчас приходит как раз из внутренней сети. Снаружи то что — DMZ, Firewall уровня приложений и пробиваться к вам извне станет уже нецелесообразно. А изнутри: флешки, подкупленные сотрудники (занесшие трояна/слившие инфу), некомпетентные/не соблюдающие политики сотрудники (wi-fi роутер в корп сети, пароль типа 12Октября, клиент для удаленного управления из дома, и т.д.)
      • 0
        Могу просто обьяснить: мне не нравится автоматичность этого действия. Излишняя автоматичность небезопасна — пример тому автостарт с флешек. Я ожидаю следующий сценарий: компьютер несведующего в компьютерах специалиста
        (например эстрадного певца) устанавливает такое (вообще говоря не нужное ему) соединение с домашней сетью, полной вредносного ПО. ПО получает сетевой канал внутрь управляемой мной сетки.
        Вижу такое решение:
        — ipv6 запретить
        — Teredo запретить
        — https требует ручной авторизации на прокси.
        • 0
          Может вы тогда хотите отключить еще и групповые политики и утилиты командной строки? :)
          То что DA можно настроить без ведома пользователя, не значит что он может настроится без ведома администратора. Хотя конечно если в сети каждый пользователь обладает правами администратора, а каждый третий имеет свой домен… но в таком случае у вас уже не в DA проблема :)

          Соединение с домашней сетью через DA пользователь не установит — для DA требуется инфраструктура, поднимать которую админам домашних сетей не надо/не хватит квалификации. В частности — AD.

          Если у вас пользователи могут устанавливать всё что захотят, вам стоит опасаться не технологий помогающих администратору, а вредоносного ПО. Пользователь скорее установит троян использующий любой доступный порт/прокси для открытия канала к хозяину, чем «ВНЕЗАПНО подхватит DA» :)
          • 0
            А как быть с пользователями-гостями? Им бывает нужен доступ к ресурсам внутренней сети, но политики на их компьютерах не выставишь и в домен не введешь.
            DA можно отключить политикой — я так понял.
        • 0
          Эх…
          Вы придумываете совершенно от балды примеры, на которые еесстественно нормального ответа нет.
          Теперь по порядку:
          а) если вы развертываете DA, значит вам это нужно и вы понимаете КТО и КУДА будет иметь доступ. Можно, конечно, развернуть DA на все машины в домене, но тогда нефиг сомневаться.
          б) если вы решили что у человека должен быть доступ к домену через DA, то почему его машина должна быть как решето, что оказавшись в абстрактной «домашней» сети она сразу заразится сто-тыщ мильёнами зловредов? Между прочим DA как поможет с этим бороться, оставляя связь с WSUS и т.п. даже за пределами сети организации.
          в) как вам xaegr правильно говорит — NAP.
          г) DA можно настроить что стартовать будет только со вставленной смарт-картой, т.е. человек захотел порно посмотреть дома — пожалуйста, захотел поработать — воткнул СК — пожалуйста.

          А вообще вы хернёй страдаете, вам предлагают ДА чтобы не надо было устанавливать соединение, так вы хотите наоборот, что бы надо было руками устанавливать соединение.

          И да, сервер DA любой юзверь может поднять, ага.
  • +1
    >Можно легко столкнуться с программами, которые не работают или криво работают через NAT

    а уж сколько программ, которые не работают или криво работают через IPv6, и вообще не говорить не стоит
    • +1
      *вообще говорить не стоит
  • 0
    Если у меня ноут с виндой, не введённой в домен, смогу я на нём настроить доступ через DA? Если да — то каким образом происходит аутентификация? Если ноут украдут и снимут пароль какой-нить тулзой, и включат, то подключится ли он автоматически к корпоративной сети?
    • 0
      Что делает в корпоративной сети компьютер не введенный в домен?
      DA разумеется не будет работать без AD, это как вы заметели было бы совершенно небезопасно. technet.microsoft.com/ru-ru/library/ee382305(WS.10).aspx

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разное