В Windows есть два способа настроить IPsec:
secpol.msc
, представленный в Windows 2000).wf.msc
, представленный в Windows 2008 / Vista).Мой вопрос касается №2 - я уже понял, что мне нужно знать для №1. (Но я хочу использовать «новую» оснастку для улучшенных возможностей шифрования.)
У меня есть два компьютера с Windows Server 2008 R2 в одном домене (члены домена) в одной подсети:
server2 172.16.11.20
server3 172.16.11.30
Моя цель - зашифровать всю связь между этими двумя машинами с помощью IPsec в туннельный режим, так что стек протоколов:
Сначала на каждом компьютере я создал Правило безопасности подключения:
172.16.11.20
для server2
172.16.11.30
172.16.11.30
На данный момент я могу ping
каждая машина, и Wireshark показывает мне стек протоколов; однако ничего не зашифровано (что ожидается на данном этапе). Я знаю, что он незашифрован, потому что Wireshark может его расшифровать (используя настройку Попытка обнаружить / декодировать полезные данные ESP, зашифрованные NULL) и Монитор > Ассоциации безопасности > Быстрый режим на дисплее отображается ESP Encryption: Никто.
Затем на каждом сервере я создал Входящий и Исходящие правила:
172.16.11.20
172.16.11.30
Эта проблема: Хотя я создаю Входящий и Исходящие правила на каждом сервере, чтобы включить шифрование, данные все еще передаются по сети (завернутые в 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.
Сделайте следующее на каждом конце туннеля:
Создать Правило безопасности подключения:
172.16.11.20
172.16.11.30
172.16.11.30
Заставить все соединения IPsec зашифровать:
Если вы ранее создали какие-либо правила для входящего / исходящего трафика для шифрования, отключите или удалите их.
Это хорошо работает. Единственный недостаток - принудительное шифрование каждый Соединение IPsec; вы больше не можете использовать одновременно зашифрованные и защищенные только соединения.
Как узнать, что трафик действительно туннелируется (т.е. ESP несет полезную нагрузку IP вместо, например, TCP)? Вы можете проверить это с помощью старой IPsec MMC (Управление политикой безопасности IP, или secpol.msc
).