Преамбула
И так, холодным ранним утром вы поняли, что вам необходим IPSEC VPN с удаленной Windows машины где-то там и что бы этот VPN работал всегда, при любой погоде, перезагрузке, до Windows logon, без участия админа, без обновления клиентов и прочих вещей, что могут поломаться. Как же это сделать ?
Самый простой способ - использовать Windows firewall with advanced security.
То есть, в Windows можно создать правило, которое будет работать как policy based IPSEC и запихивать весь нужный трафик в VPN до шлюза CHKP.
Ну что ж, начнем.
Включаем IPSEC на CHKP
В Check Point IPSEC VPN разделен на несколько частей: настройки сетей, объекты удаленных IPSEC шлюзов, настройки шифрования и аутентификации (community group). Начнем:
1. Включаем блейд IPSEC VPN

2. Указываем с какого адреса строить VPN

3. Создаем объект под нашу Windows машину

4. Называем, задаем IP адрес, включаем IPSEC VPN
5. переходим в topology и указываем внешний интерфейс

6. В VPN Domain указываем сети за Windows, либо просто оставляем все сети.
Настраиваем IPSEC на CHKP
Все объекты созданые, все готово к настройке самого IPSEC на шлюзе CHKP.
1. Создаем VPN Community

2. Настраиваем параметры шифрования
Windows поддерживает PFS, но включается он через CLI
Step 5: Examine the Differences in Functionality Between the MMC Snap-in and the Netsh Command-line ...
3. Задаем параметры формирования SA.

4. Permanent tunnels работает только между CHKP - CHKP, не включаем
One VPN tunnel per Gateway pair, означает, что в SA Identity будет указано 0.0.0.0/0 - 0.0.0.0/0
5. Добавляем правила для VPN в Rule base либо разрешаем весь трафик в настройках Community.
Включаем вечно выключенный Windows firewall
1. Заходим в настройки Windows Firewall
2. Включаем для нужных подсетей (например, для внешней)

Настраиваем IPSEC
Настройки IPSEC находятся в двух местах:
- В настройках самого Windows FW (Encryption, key exchange, etc..)
- В правилах Connection security rules - то есть, а какой трафик собственно шифровать ?
1. Переходим в настройки самого FW

2. Идем на страничку IPSEC Settings

3. В Key exchange выставляем Advanced и меняем настройки первой фазы

4. Удаляем 3DES, задаем время обновления ключей - key lifetime. У Check Point по умолчанию для первой фазы 1440 минут, для IPSEC SA 3600.
5. Настраиваем Quick Mode, точно так же задаем время жизни туннеля и алгоритмы шифрования
6. Заходим в Authentication Method, убираем Computer и выбираем выданный данной машине клиентский сертификат
7. Закрываем, все сохраняем и настраиваем tunnel authorization - кто сможет строить туннели с этой виндой?
Создаем правило шифрования трафика
Параметры IPSEC настроены, теперь пора описать что собственно мы будем широфвать на этой Windows машине. Следует учесть, что настройки Endpoint 1 и Endpoint 2 влияют на формирование поля Identity в SA. То есть, если будет указано Endpoint 1 - any, Endpoint 2 - <ЦОД IP>, то SA будет вида 0.0.0.0/0 - <ЦОД IP>. Что логично, но если вы видите ошибки вида Peer notification: invalid id information, это как раз про это.
И так, начнем.
1. Создаем новое правило
2. Мы ведь хотим все контролировать, выбираем Custom

3. В настройках Endpoint 1 указываем какие сети шифровать со стороны Windows (Сети за Windows машинной) либо все что есть.

4. В Endpoint 2 - сети за CHKP

5. Задаем двустороннюю аутентификацию

6. На следующем шаге оставляем либо Default - использовать настройки из Windows FW, либо указываем выданный клиентский сертификат
7.Задаем оставшиеся параметры - порты и сервисы и имя правила

Правило применяется сразу же! Учтите, что бы не потерять связь с Windows машиной.
8. Добавляем нужные правила в Windows Firewall.
9. Заходим в настройки созданного правила Connection rule и открываем Advanced-> IPSec Tunneling:

10. Указываем откуда куда строить туннель.
Проверяем
1. Заходим по SSH на CHKP
2. Заходим в Expert
3. Смотрим установленные SA через комманду VPN TU
4. Заходим в логи, видим в логах шифрованный трафик.
5. O_O работает с первого раза ??
6. Идем пить кофе 