Настройка IPSEC между edge gateway VMware и Windows Server 2012 R2

Настроим IPSEC туннель между vShield (edge gateway) и Windows Server 2012 R2

О том как настроить офисную часть на CentOS 7, можно посмотреть тут

Пример 1, когда на endpont'ах белые IP адреса

Для начала настроим VPN со стороны Edge gateway.

Логинимся в vCloud Director, заходим в наш датацентр и выбираем вкладку Edge Gateways.

Становимся курсором на наш Edge нажимаем правую кнопку мыши и выбираем пункт "Edge Gateway Services ..."

Далее переходим на вкладку VPN.

Тут ставим галочку "Enable VPN" и жмем кнопку "Add"

В открывшимся окошке вдумчиво заполняем поля:

1. Name - имя соединения;

2. Description - описание, полезно заполнять, особенно если у вас много соединений;

3. Проверьте, что бы галочка "Enable this VPN configuration" была установлена;

4. Establish VPN to: тут нужно выбрать "a remote network";

5. Local Networks - Выбираем нашу виртуальную сеть, в данном случае 172.16.0.0/24, сетей может быть несколько;

6. Peer Networks - Указываем сеть нашего офиса 192.168.0.0.0/24;

7. Local Endpoint - выбираем наш внешний пул;

8. Local ID - я тут указываю внешний IP: 185.32.226.177;

9. Peer ID: - внешний IP нашего Windows Server 2012 в офисе;

Проматываем немного вниз и продолжаем заполнять:

10. Peer IP - внешний IP нашего Windows Server 2012 R2 в офисе;

11. Encryption protocol - выбираем AES-256;

Группу Diffie-Hellman'а в этом интерфейсе нельзя выбрать (в vShield можно), просто запомним, что она будет DH2;

12. MTU оставляем как есть 1500;

13. Жмем галочку Show key и копируем его куда-нибудь в блокнот, можно использовать свой ключ, по желанию.

Нажимаем OK.

Если все заполнено корректно, то в предыдущем окне увидите строчку с настройками, правда Status будет гореть красным

нажимаем OK

Теперь настроим IPSEC на Windows:

У нас имеются две сетевые карты, первая с внешним IP:

IP: 185.65.136.140/24

GW: 185.65.136.1

Вторая смотрит в локальную сеть:

IP: 192.168.0.10/24

Добавим роль Remote Serivices

Идем в Server Manager -> Add roles and features->Выбираем Role-based or feature-based installation и жмем Next->Выбираем наш сервер и жмем Next

Выбираем "Remote Access" и жмем Next->Еще раз Next->

Тут выбираем DirectAccess VNN (RAS) и Routing, жмем Next а потом Install, должны установиться компоненты.

Далее идем в Windows Firewall->Advanded settings

Жмем правой мышью в самом верхнем левом углу на "Windows Firewall with Advanced Security on Local Computer"->Properties->IPsec Settings

Здесь сразу выбираем "Exept ICMP fom IPsec" - "Yes" и секции выше выбираем "Customize..."

Сдесь как для первой так и для второй фазы выбираем Advanced и дальше настаиваем нажав "Customize..."

Настроим сначала Main mode

Удаляем все методы и добавляем нужный т.е. алгоритм SHA-1 с шифрованием AES-CBC 256, DH-2. Жмем OK и нажимаем Customize для Quick Mode

Удаляем все настройки в обоих окошках, ставим галочку "Require encryption for all connection security rules that use these settings",

а в правом добавляем алгоритм ESP SHA-1 AES-CBC 256. Жмем ОК и в предыдущем окошке тоже.

Вернувшись к настройкам файрвола становимся курсором мыши на "Connection Security Rules" и содаем новое правило.

Выбираем "Tunnel" и жмем Next.

Оставляем выбранный пунк "Require authentication for inbound and outbaund connections"->Next

Теперь укажем настройки endpoint'ов и сети которые будут за ними. Жмем Next.

Тут нужно выбрать метод аутентификации, выбираем "Advanced" и жмем "Customize..."

В открывшимся окошке слева жмем кнопку "Add" и выбираем Preshared key, вставляем его в поле ниже:

Тут 111222333 указано для примера, вы должны использовать тот же ключ, который указывали в vCloud director. Нажимаем OK, попадаем на предыдущее окошко и жмем Next и еще раз Next, указываем имя (я указал test) и жмем "Finish".

А теперь магия, нам нужно включить PFS, делается это в Windows Server 2012 так:

C:\Users\Administrator>netsh advfirewall consec set rule name="test" new QMPFS=dhgroup2 QMSecMethods=ESP:SHA1-AES256+60min+100000kb
Updated 1 rule(s).
Ok.
C:\Users\Administrator>

Тут надо выбрать правильный алгоритм и имя нашего правила в данном случае test.

Если все сделано правильно, то перейдя в файрволе в раздел мониторинг и раскрыв Security Associations, увидите записи в Main mode и в Quick Mode

Теперь идем в Computer Management, находим Routing and Remote Access жмем правой кнопкой мыши и в открывшимся меня выбираем "Configure Routing and Remote Access"

Откроется мастер Routing and Remote Access Server, тут жмем Next

На следующем шаге выбираем "Custom configuration" и жмем Next

Выбираем LAN routing и жмем Next, а в следующем окошке Finish.

Появитя окошко с сообщением, что можно запустить сервис, жмем Start Serivce и немного ждем пока он запустится.

Проверяем со стороны Windows Server 2012 R2, в качестве источника пакетов указываем 192.168.0.10

C:\Users\Administrator>ping 172.16.0.20 -S 192.168.0.10
Pinging 172.16.0.20 from 192.168.0.10 with 32 bytes of data:
Reply from 172.16.0.20: bytes=32 time=33ms TTL=62
Reply from 172.16.0.20: bytes=32 time=33ms TTL=62
Reply from 172.16.0.20: bytes=32 time=34ms TTL=62
Reply from 172.16.0.20: bytes=32 time=33ms TTL=62
Ping statistics for 172.16.0.20:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 33ms, Maximum = 34ms, Average = 33ms
C:\Users\Administrator>

Тест с машины находящеся в этой же сети, со следующими настроками

[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eno16777984: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:50:56:b9:c4:65 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.11/24 scope global eno16777984
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:feb9:c465/64 scope link
       valid_lft forever preferred_lft forever
[root@localhost ~]# ip r
172.16.0.0/24 via 192.168.0.10 dev eno16777984
192.168.0.0/24 dev eno16777984  proto kernel  scope link  src 192.168.0.11
[root@localhost ~]# ping 172.16.0.20 -c 3
PING 172.16.0.20 (172.16.0.20) 56(84) bytes of data.
64 bytes from 172.16.0.20: icmp_seq=1 ttl=62 time=35.6 ms
64 bytes from 172.16.0.20: icmp_seq=2 ttl=62 time=34.4 ms
64 bytes from 172.16.0.20: icmp_seq=3 ttl=62 time=34.4 ms
--- 172.16.0.20 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 34.449/34.859/35.652/0.580 ms

А теперь со стороны облака VMware

П[sf@localhost ~]$ ping 192.168.0.10 -c 3
PING 192.168.0.10 (192.168.0.10) 56(84) bytes of data.
64 bytes from 192.168.0.10: icmp_seq=1 ttl=126 time=33.8 ms
64 bytes from 192.168.0.10: icmp_seq=2 ttl=126 time=33.9 ms
64 bytes from 192.168.0.10: icmp_seq=3 ttl=126 time=34.0 ms
--- 192.168.0.10 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 33.870/33.940/34.001/0.053 ms
[sf@localhost ~]$ ping 192.168.0.11 -c 3
PING 192.168.0.11 (192.168.0.11) 56(84) bytes of data.
64 bytes from 192.168.0.11: icmp_seq=1 ttl=62 time=34.3 ms
64 bytes from 192.168.0.11: icmp_seq=2 ttl=62 time=34.5 ms
64 bytes from 192.168.0.11: icmp_seq=3 ttl=62 time=34.4 ms
--- 192.168.0.11 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 34.310/34.420/34.521/0.174 ms

Пример 2, когда со стороны офиса используется NAT

В таком случае со стороны vCloud Director'а все настраивается также за исключением Peer ID, который будет 10.0.0.10, Peer IP: будет внешний IP на роутере, т.е. 185.65.136.140.

Со стороны Windows Server нуно установить адрес Endpoint 10.0.0.10

На маршрутизаторе нужно настроить правило, которое будет прокидывать 500 UDP порт на адрес 10.0.0.10.

В остальном настройка аналогична.