Привет! Извини, вчера вечером был на телефоне и не хотелось полностью писать всю историю. Да, я подключал USG (3 и Pro) к своему Fortigate (VM01 и 60E). Кратко пробегусь по процессу, чтобы дать общую картину, а потом, если нужно, углубимся в детали.
1. Настроил site-to-site VPN в Unifi
2. Настроил site-to-site VPN в Fortigate так, чтобы совпадало с Unifi
3. Настроил статические маршруты в Fortigate
4. Настроил IPv4-политики в Fortigate
5. Начал наслаждаться процессом
Fortigate, который я использую, — это VM01 на версии v5.6.3, но раньше у меня получалось и на 5.4.
В вашем Unifi Controller на нужном сайте:
Settings > Networks > Создать новую сеть
2. Выберите site-to-site VPN и Manual IP Sec
Введите ваши Remote Subnets (подсети, к которым хотите получить доступ на удалённой стороне)
Введите Peer IP (WAN IP адрес удалённого сайта)
Введите ваш локальный WAN IP (WAN IP адрес локального сайта) (можно найти в Devices > нажать на USG > Details > WAN x)
Сгенерируйте мощный Pre-Shared Key, введите его и сохраните — он понадобится для Fortigate
Оставьте Advanced Options по умолчанию (IKEv1-AES128-SHA1-14-PFS on-Dynamic Routing On)
Нажмите Save — сторона Unifi готова. В панели теперь должна появиться VPN-сессия (скорее всего, красным)
На Fortigate:
Fortigate > VPN > IPsec Tunnels > Create new (custom)
Введите сеть и данные аутентификации так, чтобы они совпадали с настройками Unifi. Тут почти всё надо менять, поэтому подробно:
Network settings, IPv4, Remote Gateway Static IP Address — введите WAN IP USG с сайта Unifi (найти так же, как и раньше)
Выберите интерфейс с IP, который вы указали в Unifi в Peer IP
Local GW — выкл
Mode Config — выкл
NAT Traversal — включён (даже если думаете, что не нужен)
KeepAlive — 10
Dead Peer — On Demand
Authentication Method — Pre-Shared Key (тот же, что и в Unifi Controller)
IKE Version — 1, Mode Main
Phase 1 Proposal — удалите все кроме AES128-SHA1 (тот, что в Unifi)
DH Groups — отметьте только 14 (следите, чтобы не включить 5, он подвох)
Key Life = 86400
Local ID = пусто
XAUTH = отключён
Phase 2 Selectors:
Local Addresses = subnet 0.0.0.0/0.0.0.0 (не знаю почему, но только так получилось запустить)
Remote Addresses = subnet 0.0.0.0/0.0.0.0 (тоже самое, но работает отлично, даже при нескольких туннелях)
Раскройте advanced phase 2 и удалите все предложения, кроме AES128-SHA1
Enable Replay Detection — включён
Enable PFS — включён
DH Group — отметьте только 14 (и не забудьте про 5)
Local Port — All ON
Remote Port — All ON
Protocol — All ON
Auto-Negotiate — ON
Autokey Keep Alive — ON
KeyLifetime Seconds — 43200
Сохраните. Вот и настройки туннеля готовы.
Но подождите, это еще не всё! Если остановитесь сейчас, вы будете чесать голову и гуглить "VPN Tunnel is up but no Traffic going across". Теперь нужно настроить маршруты и IPv4-политики на Fortigate.
Настройка статических маршрутов Fortigate:
Fortigate > Network > Static Routes > Создать новый
Destination = подсеть вашего Unifi сайта
Gateway = оставьте пустым — он исчезнет при смене интерфейса
Interface = выберите интерфейс только что созданного VPN туннеля
Administrative Distance = 10
Comments = введите что-то для облегчения ориентирования через пару месяцев
Status = Enabled
Не волнуйтесь про advanced options — просто нажмите OK.
Настройка IPv4 политики Fortigate:
Теперь создадим политику, которая позволит подсетям LAN Fortigate общаться с удалёнными подсетями через нужные интерфейсы и наоборот. Сначала трафик с Fortigate к Unifi.
Fortigate > Policy and Objects > IPv4 Policy > Create New
Name = что-то понятное (я обычно называю HO - имя сайта VPN)
Incoming interface = LAN интерфейс подсети, которую хотите подключить к удалённому сайту
Outgoing interface = только что созданный VPN туннель
Source = LAN подсеть Fortigate, которую хотите предоставить Unifi
Destination = LAN подсеть удалённого сайта (создайте адрес, указывающий на всю подсеть)
Schedule = always
Service = All
Action = Accept
NAT = Disabled
Security Profiles = сначала всё выключено, потом можно добавить при необходимости
Log Allowed traffic — по желанию
Остальное выключено, включите политику и нажмите OK.
Дальше сделаем политику для трафика в обратную сторону:
Найдите созданную политику в списке, кликните правой кнопкой и выберите "clone Reverse"
Откройте её для редактирования, дайте подходящее имя, настройте логирование под себя и убедитесь, что политика включена. Всё, готово.
Поздравляю, ваш VPN туннель должен быть в рабочем состоянии!
Устранение неполадок:
VPN туннель не поднимается — проверьте VPN Events в FortiGate > Log & Report > VPN Events
Если видите ошибки на phase1 — проверьте все Proposal и совпадение PSK на обеих сторонах
Если ничего не видно — скорее всего, неверно указаны peer IP с одной из сторон
Если phase1 успешен, но туннель не поднимается — проверьте phase2: должны быть 0.0.0.0 у local и remote subnet, а предложение — только AES128-SHA1-DH14 с включённым PFS и Dynamic ON
Если всё вроде верно, но туннель не поднимается — просто удалите настройки на обеих сторонах и создайте заново, у меня не раз это чудесным образом помогало.
Надеюсь, это поможет вам запустить!