Назад | Перейти на главную страницу

Шифрование IPsec Windows 2008 R2 в туннельном режиме, узлы в одной подсети

В Windows есть два способа настроить IPsec:

  1. В Управление политикой безопасности IP Оснастка MMC (часть secpol.msc, представленный в Windows 2000).
  2. В Брандмауэр Windows в режиме повышенной безопасности Оснастка MMC (wf.msc, представленный в Windows 2008 / Vista).

Мой вопрос касается №2 - я уже понял, что мне нужно знать для №1. (Но я хочу использовать «новую» оснастку для улучшенных возможностей шифрования.)


У меня есть два компьютера с Windows Server 2008 R2 в одном домене (члены домена) в одной подсети:

server2  172.16.11.20
server3  172.16.11.30

Моя цель - зашифровать всю связь между этими двумя машинами с помощью IPsec в туннельный режим, так что стек протоколов:

Сначала на каждом компьютере я создал Правило безопасности подключения:

На данный момент я могу ping каждая машина, и Wireshark показывает мне стек протоколов; однако ничего не зашифровано (что ожидается на данном этапе). Я знаю, что он незашифрован, потому что Wireshark может его расшифровать (используя настройку Попытка обнаружить / декодировать полезные данные ESP, зашифрованные NULL) и Монитор > Ассоциации безопасности > Быстрый режим на дисплее отображается ESP Encryption: Никто.

Затем на каждом сервере я создал Входящий и Исходящие правила:

Эта проблема: Хотя я создаю Входящий и Исходящие правила на каждом сервере, чтобы включить шифрование, данные все еще передаются по сети (завернутые в ESP) с NULL-шифрованием. (Вы можете увидеть это в Wireshark.)

Когда приходит на принимающую сторону, он отклоняется (предположительно, потому что он не зашифрован). [И отключение правила для входящих подключений на принимающей стороне приводит к его блокировке и / или синему экрану - весело!] В журнале брандмауэра Windows говорится, например:

2014-05-30 22:26:28 DROP ICMP 172.16.11.20 172.16.11.30 - - 60 - - - - 8 0 - RECEIVE

Я пробовал разные вещи:

Но на самом деле ручек, которые можно повернуть, не так уж и много.

У кого-нибудь есть идеи? Кто-нибудь пытался настроить туннельный режим между двумя хостами с помощью брандмауэра Windows?

Я успешно настроил его в вид транспорта (то есть без туннеля) с использованием точно такого же набора правил, поэтому я немного удивлен, что с добавленным туннелем не получилось Just Work ™.

После долгого расследования и обращения в службу поддержки Microsoft я нашел ответ.

Уловка: не создавайте никаких Входящий или Исходящие правила для шифрования. Только создать Правило безопасности подключения (для тоннеля). Затем установите параметры IPsec по умолчанию для брандмауэра для шифрования каждый Подключение с поддержкой IPsec.

Сделайте следующее на каждом конце туннеля:

  1. Создать Правило безопасности подключения:

    • Конечная точка 1: (локальный IP-адрес), например 172.16.11.20
    • Конечная точка 2: (удаленный IP-адрес), например 172.16.11.30
    • Протокол: любой
    • Аутентификация: Требовать входящий и исходящий, компьютер (Kerberos V5)
    • Туннель IPsec:
      • Освобожденные соединения, защищенные IPsec
      • Конечная точка локального туннеля: любой
      • Конечная точка удаленного туннеля: (удаленный IP-адрес), например 172.16.11.30
  2. Заставить все соединения IPsec зашифровать:

    1. Откройте основные свойства брандмауэра (щелкните правой кнопкой мыши Брандмауэр Windows в режиме повышенной безопасности > Свойства…)
    2. в Настройки IPsec вкладка под Настройки IPsec по умолчаниюнажмите Настроить…
    3. Под Защита данных (быстрый режим), Выбрать Продвинутый, затем щелкните Настроить…
    4. Установите флажок для Требовать шифрование для всех правил безопасности подключения, использующих эти параметры.
    5. Отрегулируйте любые другие настройки (например, вы можете удалить 3DES как протокол), затем ОК, чтобы выйти.

Если вы ранее создали какие-либо правила для входящего / исходящего трафика для шифрования, отключите или удалите их.

Это хорошо работает. Единственный недостаток - принудительное шифрование каждый Соединение IPsec; вы больше не можете использовать одновременно зашифрованные и защищенные только соединения.


Как узнать, что трафик действительно туннелируется (т.е. ESP несет полезную нагрузку IP вместо, например, TCP)? Вы можете проверить это с помощью старой IPsec MMC (Управление политикой безопасности IP, или secpol.msc).

  • На одном сервере создайте туннель, используя приведенные выше инструкции для WFAS.
  • На другом сервере создайте туннель с помощью «старой» MMC IPsec.
  • Эти двое должны общаться без проблем.
  • Если вы переключите «старую» политику IPsec в транспортный режим (т. Е. Удалите туннель), соединение прервется. Вот как вы можете определить, что соединение WFAS действительно туннелируется.