Причинами створення тунелів на різновендорному устаткуванні можуть бути маса факторів, приємно те, що “подружити” виходить практично все. У моєму випадку причиною стала цікавість :). У тестовому середовищі була організована видимість зовнішніх адрес наших маршрутизаторів, а далі все строго за нижченаведеним текстом:
В наявності схематична модель підключення двох маршрутизаторів і мереж за ними, де зовнішніми адресами виступають адреси із “сірого” діапазону, звісно, в реальній ситуації цими адресами повинні бути адреси з зовнішнього пулу, і звісно – всі збіги прошу вважати випадковими.
FORTIGATE
Налаштування IPsec тунелю з боку Fortigate повинні мати первинно підготовлені інтерфейси маршрутизатора: адресація, dhcp, доступ в інтернет, і все, що ще заманеться, з чим, я думаю, проблем не виникне. У нас це:
- port1 – 172.16.16.61/255.255.255.0 (WAN)
- port2 – 1o.0.0.1/255.255.255.0 (LAN)
І до кожного маршрутизатору ми під’єднали по одному пристрою, для перевірки майбутнього тунелю. Адресація цих пристроїв *.*.*.2 для кожної мережі. Насамперед переходимо на вкладку “VPN > IPsec tunnels” і створюємо тунель.
Майстер створення тунелю запропонує використовувати налаштування для вже відомих типів з’єднання, але нас цікавить ручне налаштування – “Custom”.
Також необхідно надати ім’я віртуальному інтерфейсу, ми назвали його “corp-tun”, а потім:
Вказуємо параметри:
Remote Gateway – тип “статична адреса”
IP Address – сама адреса віддаленої точки
Interface – зовнішній інтерфейс fortigate
NAT Traversal – вмикаємо інкапсуляцію (NAT–T)
Keepalive Frequency – частота перевірки активності
Dead Peer Detection – ввімкнення механізму виявлення простою з’єднання (DPD)
Далі вказуємо:
Method – метод перевірки
Pre–shared Key – зміст загального ключа, як приклад “5PA$$Netc)nfiG!8″
Version – версія набору протоколу (IKE)
Mode – режим підключення
В агресивному режимі профіль безпеки на одному маршрутизаторі повинен чітко співпадати з профілем на іншому маршрутизаторі.
У профілі встановимо протокол шифрування, автентифікації, версію DH та час його життя (Phase 1):
Encryption – DES
Authentication – SHA1
Diffie-Hellman Group – 5
Key Lifetime – 86400
Вимикаємо механізм розширеної автентифікації (XAuth)
Переходимо до другої фази:
Наступними налаштуваннями:
Local Port – ALL
Remote Port – ALL
Protocol – ALL
Local Adress – 0.0.0.0/0
Remote Address – 0.0.0.0/0
ми вказуємо який трафік потрібно буде шифрувати, у нашому випадку весь.Далі вказуємо шифрування, автентифікацію та версію протоколу Діффі-Хеллмана (DH)
Відповідно:
Encryption – DES
Authentication – SHA1
Diffie-Hellman Group – 5
І нарешті параметри, що залишилися:
Enable Replay Detection – Функція виявлення пакетів, що повторюються
Perfect Forward Secrecy – Функція генерації ключів DH після закінчення Key Lifetime
Key Lifetime – час життя ключа
Seconds – значення “Key Lifetime” у секундах
Детальніше про другу фазу (Phase 2)
Оскільки такий тип з’єднання є route-based vpn, то з обох сторін тунелю необхідно додати маршрути в мережі по ту сторону тунелю через віртуальний інтерфейс, на Fortigate це можна зробити так:
На вкладці Static Routes додаємо запис.
Destination – мережа по той бік тунелю
Interface – інтерфейс тунелю з нашого боку
Administrative Distanse – ступінь довіри до маршруту (http://www.netconfig.org/routing/1047)
Для проходження трафіку з тунелю в локальну мережу і назад необхідно створити в меню Policy & objects > IPv4 Policy кілька мережевих політик (правил фаєрволу), у нашому випадку правила 2 та 5:
Перше правило працює як звичайний NAT, а останнє забороняє.
CISCO
Тепер за аналогією відтворимо ті самі маніпуляції на другому маршрутизаторі. Для початку підготуємо внутрішній та зовнішній інтерфейси:
CISCO#conf t
CISCO(config)#interface fastEthernet 0/0
CISCO(config-if)#ip address 192.168.10.1 255.255.255.0
CISCO(config-if)#ip nat inside
CISCO(config-if)#no shutdown
CISCO(config-if)#exit
CISCO(config)#interface fastEthernet 0/1
CISCO(config-if)#ip address 172.16.16.64 255.255.255.0
CISCO(config-if)#ip nat outside
CISCO(config-if)#no shutdown
CISCO(config-if)#exit
Потім доступ в інтернет, створивши список доступу і дозволивши йому відправляти весь трафік через зовнішній Fa 0/1, а також вказавши цей інтерфейс як стандартний шлюз.
CISCO(config)#ip access-list extended LAN10
CISCO(config-ext-nacl)#permit ip 192.168.10.0 0.0.0.255 any
CISCO(config-ext-nacl)#exit
CISCO(config)#ip route 0.0.0.0 0.0.0.0 FastEthernet0/1
CISCO(config)#ip nat inside source list LAN10 interface fastEthernet 0/1 overload
Переходимо до першої фази, тут те саме за винятком номера політики – у разі, коли політик більше однієї, її номер впливає на порядок перевірки цих політик під час встановлення першої фази.
CISCO(config)#crypto isakmp policy 20
CISCO(config-isakmp)#authentication pre-share
CISCO(config-isakmp)#group 5
CISCO(config-isakmp)exit
Також пов’язуємо адресу сусіда із загальним ключем:
CISCO(config)#crypto isakmp key 5PA$$Netc)nfiG!8 address 172.16.16.61
Налаштування другої фази виглядає так: створюємо transform-set, а потім додаємо його в профіль, в якому вказуємо версію DH.
CISCO(config)#crypto ipsec transform-set FORTI-SET esp-des esp-sha-hmac
CISCO(cfg-crypto-trans)#exit
CISCO(config)#crypto ipsec profile FORTI-PROFILE
CISCO(ipsec-profile)#set transform-set FORTI-SET
CISCO(ipsec-profile)#set pfs group5
CISCO(ipsec-profile)#exit
Після цього необхідно налаштувати віртуальний інтерфейс, зв’язавши його із зовнішнім інтерфейсом маршрутизатора:
CISCO(config)#interface Tunnel61
CISCO(config-if)#ip unnumbered FastEthernet0/1
CISCO(config-if)# ip nat inside
CISCO(config-if)# ip virtual-reassembly
CISCO(config-if)# tunnel source 172.16.16.64
CISCO(config-if)# tunnel destination 172.16.16.61
CISCO(config-if)# tunnel mode ipsec ipv4
CISCO(config-if)#exit
І додаємо маршрут у віддалену мережу через все той же віртуальний інтерфейс:
CISCO(config)#ip route 10.0.0.0 255.255.255.0 Tunnel61
Тунель готовий! Зберігаємось:
CISCO(config)#do wr
Моніторинг
Перевірка першої фази cisco.
R1#show crypto isakmp sa
R1#show crypto isakmp sa detail
Перевірка другої фази cisco.
R1#show crypto ipsec sa
R1#show crypto ipsec sa detail
R1#show crypto ipsec transform-set
Перегляд сесії на cisco.
R1#show crypto session
R1#show crypto session detail
Дебаг.
sh#debug crypto ipsec *
sh#debug crypto isakmp *
Fortigate для цього має наступні інструменти:
Монітор.
І лог VPN подій.
Як бачимо, робочі стації в локальних мережах побачили своїх сусідів за тунелем:
– Дякую!
– Завжди будь ласка!