none
Обеспечение безопасности хостового сервера Win2008 с Hyper-V в DMZ сегменте сети RRS feed

  • Вопрос

  • В блогах сотрудников MS прозвучала информация, что основным режимом работы Hyper-V серверов в самом Microsoft является использование двух физических сетевых интерфейсов сервера. Один интерфейс смотрит в локальную сеть, где производится управление Hyper-V серверами, а второй - в DMZ сегмент сети и предоставляется для использования виртуальными машинами, обслуживающими внешние запросы.

    Но я нигде не нашел информации (how to, step by step, etc) каким образом защищать этот второй сетевой интерфейс (DMZ) в хостовой ОС. По логике вещей, с этого сетевого интерфейса должен быть полностью блокирован входящий и исходящий траффик в хостовую ОС. Но как это настроить? Встроенный firewall, при включении правил удаленного администрирования распостраняет их на все сетевые интерфейсы. Как ограничить действие правил только на один интерфейс я не нашел.

    18 ноября 2008 г. 11:18

Ответы

  •  IvHarbor написано:
    В графическом интерфейсе отключить TCP/IP с интерфейса легко. А как это проделать в Core режиме?!

    При помощи редактора реестра.

    Откройте ветвь HKLM\system\currentcontrolset\services\lanmanserver\linkage

    Откройте многострочный ключ BIND

     

    В нем идет перечисление всех привязок ко всем адаптерам.

    Для GUID нужно адаптера удалите строку с ненужным протоколом/службой

     

    Таблица:

     

    Registry Key

    GUI equivalent

    LanmanServer

    File and Printer Sharing

    LanmanWorkstation

    Client for Ms Networks

    lltdio

    Link-Layer Discovery Mapper I/O Driver

    rspndr

    Link-Layer Topology Discovery Responder

    tcpip

    TCP/IPv4

    tcpip6

    TCP/IPv6

     

    Информация дана "AS IS", Microsoft не рекомендует и не поддерживает такие изменения Smile

     

    25 ноября 2008 г. 11:35
  • Вы оказались не совсем правы, по изменению указанных выше параметров. Как удалось выяснить с помощью RegMon (на не Core системе) изменяется большее число веток реестра.

     

    HKLM\System\CurrentControlSet\Control\Network\Config
    HKLM\System\CurrentControlSet\Services\Tcpip\Linkage\Bind
    HKLM\System\CurrentControlSet\Services\Tcpip\Linkage\Route
    HKLM\System\CurrentControlSet\Services\Tcpip\Linkage\Export
    HKLM\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0009\NetCfgInstanceId
    HKLM\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0009\Linkage\RootDevice
    HKLM\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0009\Linkage\UpperBind
    HKLM\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0009\Linkage\Export
    HKLM\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0006\Linkage\FilterList
    HKLM\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0008\Linkage\FilterList
    HKLM\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0005\Linkage\FilterList
    HKLM\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0004\Linkage\FilterList

     

    Вручную править все эти ветки действительно опасно на промышленной системе. Неужели не существует другого способа для изменения?

    27 ноября 2008 г. 4:43
  • Резюме.

    Все правки реестра (отключение сетевых компонентов) необходимо производить после создания виртуальных комутаторов, так как при их создании, у физического интерфейса меняются параметры (из сетевых компонентов выбирается только Microsoft Virtual Network Switch Protocol), а взамен его создается виртуальный Microsoft Virtual Network Switch Adapter со всеми доступными сетевыми компонентами.

    Далее находим GUID этого созданного адаптера, и уже этот гуид исключаем из поля Bind, Export и Route определенных служб (см. сообщение выше). Затем, в классе HKLM\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\XXXX\Linkage\UpperBind необходимо удалить отключенные сетевые компоненты. XXXX это сетевой адаптер, который находим зная гуид (и сравнивая со значением поля NetCfgInstanceId).

    Как заставить это работать без перезагрузки сервера найти не удалось. Но после перезагрузки все работает как надо.

    2 декабря 2008 г. 9:02
  • Кстати, в Hyper-V server 2008 r2, при создании виртуального коммутатора есть галочка "Allow management operating system to share this network adapter" если эту галочку не ставить то нибудет никаких привязок к адаптеру.

    • Помечено в качестве ответа IvHarbor 3 декабря 2009 г. 7:24
    7 сентября 2009 г. 9:14

Все ответы

  • Хорошее интервью с Джимом Хариссоном об обеспечении безопасности в виртуальном окружении на основе Hyper-V:

    Virtualize your ISA or Forefront TMG servers

    19 ноября 2008 г. 6:21
  • Если этот интерфейс нужен только для виртуальных машин и не нужен хосту, то отключить TCP/IP на этом интерфейсе для хоста и всех делов.
    19 ноября 2008 г. 12:03
  • Вот именно об этом в деталях рассказывается в приведённом мною интервью. Правда, помимо озвученного факта там также рассказывается и "зачем" и "почему".
    19 ноября 2008 г. 19:52
  • По описанию на сайте, это интервью посвящено ISA серверу. А идея про отключение TCP/IP интересная. Но как его выключить в core режиме? На примере сервера 2003 эта галочка неактивна для отключения даже в графическом режиме.

    24 ноября 2008 г. 4:49
  • Если этот интерфейс нужен только для виртуальных машин и не нужен хосту, то отключить TCP/IP на этом интерфейсе для хоста и всех делов.

    Подскажете как отключить?
    24 ноября 2008 г. 8:54
  • Для ответа на все вопросы сразу лучше процитирую:

    Isolating Network Adapters


    One of the recommended best practices for Virtual Server is to always have one network interface in the
    physical computer that is not used by any virtual machines. This ensures that no matter what the virtual
    machines do, you will always be able to access the host operating system for administrative purposes. If
    you allow virtual machines to be configured on every physical network adapter, it is possible for rogue vir-
    tual machines to flood the network and stop you from being able to connect to the host operating system.
    It is possible to take this a step further and configure your network adapters to be used specifically for
    the host operating system or for virtual machines, as follows:
    1. Go to Control Panel on the Start menu.
    2. Open Network Connections.
    3. Locate the network adapter that you want to modify and select it.
    4. Click the File menu and select Properties.
    You will now see a list of the clients, services, and protocols that are installed on your computer. This
    will most likely include features such as Client for Microsoft Networks and Internet Protocol (TCP/IP).
    It will also include Virtual Machine Network Services. This is the service that Virtual Server uses to
    communicate to the network through a specific network card. As such, if you want to create a physical
    network card that is dedicated to the use of virtual machines, you should open the Properties for that
    network card and clear all of the entries except Virtual Machine Network Services.
    With this, virtual machines can continue to use the network adapter, but the host operating system is
    completely protected from this adapter. Conversely, if you wanted to ensure that a network adapter was
    only ever used by the host operating system, and that there was no way for a virtual machine to commu-
    nicate over it, you should open the Properties for that network card and unselect Virtual Machine
    Network Services.


    Источник - Professional Microsoft® Virtual Server 2005 by Ben Armstrong. Wiley Publishing.
    24 ноября 2008 г. 12:13
  •  IvHarbor написано:

    По описанию на сайте, это интервью посвящено ISA серверу. А идея про отключение TCP/IP интересная. Но как его выключить в core режиме? На примере сервера 2003 эта галочка неактивна для отключения даже в графическом режиме.

    На самом деле информация из этого интервью относится не только к ISA Server. В нём рассказывается о том, как максимально защитить виртуальное окружение, изолировать его от хостовой системы и остальных сетевых подключений, а также как защитить периметр копроративной сети с помощью ISA Server, развернутым опять же в виртуальном окружении.

    25 ноября 2008 г. 6:08
  • В графическом интерфейсе отключить TCP/IP с интерфейса легко. А как это проделать в Core режиме?!

    25 ноября 2008 г. 11:17
  •  IvHarbor написано:
    В графическом интерфейсе отключить TCP/IP с интерфейса легко. А как это проделать в Core режиме?!

    При помощи редактора реестра.

    Откройте ветвь HKLM\system\currentcontrolset\services\lanmanserver\linkage

    Откройте многострочный ключ BIND

     

    В нем идет перечисление всех привязок ко всем адаптерам.

    Для GUID нужно адаптера удалите строку с ненужным протоколом/службой

     

    Таблица:

     

    Registry Key

    GUI equivalent

    LanmanServer

    File and Printer Sharing

    LanmanWorkstation

    Client for Ms Networks

    lltdio

    Link-Layer Discovery Mapper I/O Driver

    rspndr

    Link-Layer Topology Discovery Responder

    tcpip

    TCP/IPv4

    tcpip6

    TCP/IPv6

     

    Информация дана "AS IS", Microsoft не рекомендует и не поддерживает такие изменения Smile

     

    25 ноября 2008 г. 11:35
  • Оставлять только lltdio и rspndr или вообще все удалять?

    А более официальный путь есть?

    25 ноября 2008 г. 11:46
  • 1. Удаляйте все, кроме Microsoft Virtual Network Switch Protocol.
    2. А что есть более официальный путь ? В случае с Core, другого просто нет.
    25 ноября 2008 г. 16:14
  •  IvHarbor написано:
    A более официальный путь есть?
    Другого пути мне неизвестно. Но этот работает всегда и везде. Не только в 2008.
    25 ноября 2008 г. 19:46
  • В Windows XP список сетевых адаптеров (guid) весьма ограничен. А вот в 2008 их уже значительно больше! Как найти гуиды сетевых устройств и отличить кто из них реальный, а кто виртуальный?

    Code Snippet

    \Device\Tcpip_{4F32E537-34F9-49A7-9686-CC58E4C384D8}
    \Device\Tcpip_{A90AA46D-FC3F-463D-BAAF-164B86303991}
    \Device\Tcpip_{CDE00745-008D-492D-A7F7-CB35D268767D}
    \Device\Tcpip6_{E12D1778-980B-4D6D-9C0D-B8A4B670C733}
    \Device\Tcpip6_{A734D8CB-D76D-4C54-9B85-DDD942D39BE7}
    \Device\Tcpip6_{4F32E537-34F9-49A7-9686-CC58E4C384D8}
    \Device\Tcpip6_{A90AA46D-FC3F-463D-BAAF-164B86303991}
    \Device\Tcpip6_{CDE00745-008D-492D-A7F7-CB35D268767D}
    \Device\NetbiosSmb
    \Device\Smb_Tcpip_{4F32E537-34F9-49A7-9686-CC58E4C384D8}
    \Device\Smb_Tcpip_{A90AA46D-FC3F-463D-BAAF-164B86303991}
    \Device\Smb_Tcpip_{CDE00745-008D-492D-A7F7-CB35D268767D}
    \Device\Smb_Tcpip6_{E12D1778-980B-4D6D-9C0D-B8A4B670C733}
    \Device\Smb_Tcpip6_{A734D8CB-D76D-4C54-9B85-DDD942D39BE7}
    \Device\Smb_Tcpip6_{4F32E537-34F9-49A7-9686-CC58E4C384D8}
    \Device\Smb_Tcpip6_{A90AA46D-FC3F-463D-BAAF-164B86303991}
    \Device\Smb_Tcpip6_{CDE00745-008D-492D-A7F7-CB35D268767D}
    \Device\NetBT_Tcpip_{4F32E537-34F9-49A7-9686-CC58E4C384D8}
    \Device\NetBT_Tcpip_{A90AA46D-FC3F-463D-BAAF-164B86303991}
    \Device\NetBT_Tcpip_{CDE00745-008D-492D-A7F7-CB35D268767D}
    \Device\NetBT_Tcpip6_{E12D1778-980B-4D6D-9C0D-B8A4B670C733}
    \Device\NetBT_Tcpip6_{A734D8CB-D76D-4C54-9B85-DDD942D39BE7}
    \Device\NetBT_Tcpip6_{4F32E537-34F9-49A7-9686-CC58E4C384D8}
    \Device\NetBT_Tcpip6_{A90AA46D-FC3F-463D-BAAF-164B86303991}
    \Device\NetBT_Tcpip6_{CDE00745-008D-492D-A7F7-CB35D268767D}

     

     

    И что удалять?!
    26 ноября 2008 г. 3:55
  • Вам нужно понять какой GUID это "настоящий" интерфейс Local Area Connection?

    Откройте HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces

    Там список GUIDов и настройки TCP/IP - сразу понятно кто есть кто.

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

    26 ноября 2008 г. 7:32
  • Таким образом, для моего примера, физическим интерфейсом, который я хочу отдать под виртуальные машины только, является {CDE00745-008D-492D-A7F7-CB35D268767D}.

    Я должен удалить все вхождения в значении BIND, содержащие данный гуид?

    Т.е. удалить значения:

    \Device\Tcpip_{CDE00745-008D-492D-A7F7-CB35D268767D}
    \Device\Tcpip6_{CDE00745-008D-492D-A7F7-CB35D268767D}
    \Device\Smb_Tcpip_{CDE00745-008D-492D-A7F7-CB35D268767D}
    \Device\Smb_Tcpip6_{CDE00745-008D-492D-A7F7-CB35D268767D}
    \Device\NetBT_Tcpip_{CDE00745-008D-492D-A7F7-CB35D268767D}
    \Device\NetBT_Tcpip6_{CDE00745-008D-492D-A7F7-CB35D268767D}

    а заодно и tcpip6 для всех остальных адаптеров?
    26 ноября 2008 г. 7:51
  • Да. И Smb_Tcpip6 и NetBT_Tcpip6 тоже для всех удалить.
    26 ноября 2008 г. 8:46
  • А как должны выглядеть изменения? Проделал я все указанные действия. Для верности перезагрузил сервер. Ipconfig выдает 2 адаптера, оба имею IP и на PING оба отвечают. Хотя один должен, я так полагаю, остаться без IP адреса?!

    26 ноября 2008 г. 9:46
  •  

    Я правильно понимаю, что у вас в реестре TCPIP прмвязан к двум адаптерам?

    \Device\Tcpip_{4F32E537-34F9-49A7-9686-CC58E4C384D8}
    \Device\Tcpip_{A90AA46D-FC3F-463D-BAAF-164B86303991}

     

    Давайте сделаем  Tcpip только на одном. И Tcpip6, Smb_Tcpip, Smb_Tcpip6, NetBT_Tcpip, NetBT_Tcpip6 тоже только на нем.

    26 ноября 2008 г. 14:29
  • Вы оказались не совсем правы, по изменению указанных выше параметров. Как удалось выяснить с помощью RegMon (на не Core системе) изменяется большее число веток реестра.

     

    HKLM\System\CurrentControlSet\Control\Network\Config
    HKLM\System\CurrentControlSet\Services\Tcpip\Linkage\Bind
    HKLM\System\CurrentControlSet\Services\Tcpip\Linkage\Route
    HKLM\System\CurrentControlSet\Services\Tcpip\Linkage\Export
    HKLM\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0009\NetCfgInstanceId
    HKLM\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0009\Linkage\RootDevice
    HKLM\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0009\Linkage\UpperBind
    HKLM\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0009\Linkage\Export
    HKLM\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0006\Linkage\FilterList
    HKLM\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0008\Linkage\FilterList
    HKLM\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0005\Linkage\FilterList
    HKLM\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0004\Linkage\FilterList

     

    Вручную править все эти ветки действительно опасно на промышленной системе. Неужели не существует другого способа для изменения?

    27 ноября 2008 г. 4:43
  • Предположительно, изменением параметров сети занимаются функции, содержащиеся в модуле netcfgx.dl. Он также присутствует в Core версии. Неужели необходимо писать собственную программу, для выполнения такой важной для безопасности сервера операции?!

    27 ноября 2008 г. 4:54
  • Я уже сказал, мне другого способа неизвестно, хотя вопросом я в свое время занимался.

    Найдете способ, расскажите всем..

    Возможно, следует вопрос задать в форуме по WS2008, там больше специалистов, интересующихся технологиями ОС. К виртуализации же данный вопрос не имеет никакого отношения.

    27 ноября 2008 г. 8:36
  • Ручками отредактировал на свой страх и риск все ветки реестра. Перезагрузил сервер (без перезагрузки ничего не менялось). Сервер перестал откликаться по прежнему адресу на втором сетевом интерфейсе. Зашел в диспетчер Hyper-V, поменял в диспетчере виртуальной сети привязку к физическому сетевому интерфейсу. После этого, хостовый сервер снова стал откликаться по IP протоколу и отвечать по всем разрешенным портам. Посмотрел в реестре, в указанных ветках появился новый адаптер с новым GUID. В классе {4D36E972-E325-11CE-BFC1-08002BE10318} у этого адаптера стоит описание "Microsoft Virtual Network Switch Adapter".

    Вот теперь непонятно, что, у чего и как должно быть выключено.

    1 декабря 2008 г. 5:24
  • Резюме.

    Все правки реестра (отключение сетевых компонентов) необходимо производить после создания виртуальных комутаторов, так как при их создании, у физического интерфейса меняются параметры (из сетевых компонентов выбирается только Microsoft Virtual Network Switch Protocol), а взамен его создается виртуальный Microsoft Virtual Network Switch Adapter со всеми доступными сетевыми компонентами.

    Далее находим GUID этого созданного адаптера, и уже этот гуид исключаем из поля Bind, Export и Route определенных служб (см. сообщение выше). Затем, в классе HKLM\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\XXXX\Linkage\UpperBind необходимо удалить отключенные сетевые компоненты. XXXX это сетевой адаптер, который находим зная гуид (и сравнивая со значением поля NetCfgInstanceId).

    Как заставить это работать без перезагрузки сервера найти не удалось. Но после перезагрузки все работает как надо.

    2 декабря 2008 г. 9:02
  • Проблема таже. Подскажите, какие именно параметры вы изменили. Пробовал отключать интерфесы хостовой машины через netsh interface set interface "Local Area Connection 4" Disabled, в таком случае на виртуальных машинах, через несколько минут после включения, зависают сетевые
    20 августа 2009 г. 12:21
  • В логах что пишется?

    20 августа 2009 г. 12:26
    Модератор
  • Кстати, в Hyper-V server 2008 r2, при создании виртуального коммутатора есть галочка "Allow management operating system to share this network adapter" если эту галочку не ставить то нибудет никаких привязок к адаптеру.

    • Помечено в качестве ответа IvHarbor 3 декабря 2009 г. 7:24
    7 сентября 2009 г. 9:14