Nədən danışacağıq?
Şəbəkə inzibatçılarının tez-tez gördüyü işlərdən biri də müxtəlif partnyorlar arasında VPN əlaqə qurmaqdır. Bu tip tunelə Site-to-Site və ya LAN-to-LAN tunel deyilir. Bu yazımızda Cisco ASA və Palo Alto avadanlıqları arasında IKEv2 protokolundan istifadə etməklə Site-to-Site tunel quracağıq.
Şəbəkə topologiyamız aşağıdakı kimi olacaq:

Təcrübəni GNS3 mühitində, PAN OS 10.0.6 virtual Palo Alto avadanlığında aparacağıq. Əslində GNS3-ün özündə də Palo Alto qaldırmaq mümkündür. Sadəcə GNS3 virtual maşınının resursları az olduğu üçün Palo Altonu VMWare hipervizorunda qaldırıb şəbəkə səviyyəsində GNS3-ə qoşmuşam.

Mənim topologiyama görə, burada VMnet7 provayder şəbəkəsinə baxır. VMnet9 isə Palo Altonun arxasında duran server şəbəkəsinə aiddir. Avadanlığın lazım olan alt şəbəkədən IP aldığını dəqiqləşdirmək üçün virtual şəbəkələrdə DHCP server funksiyasını aktiv etmək olar.

Palo Altoda üç interfeysimiz var. Bunlardan birincisi körpü (Bridge) rejimində qoyulub ki, həm intenetə çıxışı olsun, həm də lokal şəbəkəmdən idarəetmə panelinə qoşula bilim.
Digər iki interfeys isə provayder və server şəbəkəsinə qoşulub.

Eyni qayda da, GNS3-də iki interfeys əlavə edilib. Biri VMnet7 – Palo Altonun provayder şəbəkəsini görmək üçün, digəri isə Palo Altonun arxasındakı server şəbəkəsinə qoşulan PC üçün.
Palo Alto sazlamaları
VPN sazlamalarına keçməzdən əvvəl Network –> Interfaces –> Tunnel menyusunda VPN-də istifadə olunacaq tunel yaradırıq. Təhlükəsizlik məqsədi ilə tuneli ayrıca təhlükəsizlik zonasına (Security Zone) atırıq.

Keçək VPN konfiqurasiyasına. Əvvəl Network –> Network profiles –> IKE Crypto menyusunda IKE profil yaradırıq. IKE profil VPN-nin 1-ci fazasında istifadə olunacaq kriptoqrafik göstəriciləri özündə əks etdirir. VPN-nin birinci fazasında tərəflər bir-birini autentifikasiya edir, ikinci fazada (IPSec tuneldə) istifadə olunacaq şifrələmə məlumatlarının və s. haqqında razılığa gəlirlər. Bu zaman IKE və ya ISAKMP tunel qurulur.

VPN əlaqəsi üçün sorğu gələndə cihazlar yaddaşlarında olan IKE profilləri bir-birinə ötürürlər. Uyğun gələn profil seçilir və VPN əlaqəsini qurulması növbəti mərhələyə keçir. VPN fazaları haqqında ətraflı buradan oxuya bilərsiniz.
IKE Profilində:
DH Group – Deffie-Helman qrupu tərəflər arasında İnternet üzərindən ümumi şifrəli açarın ötürülməsi üçün istifadə olunan protokoldur. IKEv1-də 1,2 və 5 qruplar var ki, onlar artıq təhlükəsiz hesab olunmur. Bu səbəbdən daha güclü şifrələmə təqdim edən 14, 19, 20 qruplarından istifadə etmək tövsiyə olunur. Qruplar arasında fərq şifrələmədə istifadə olunan açarın uzunluğudur. Məsələn, 5-ci qrupda məlumatlar 1536 bitlik açar ilə şifrələnir, 14 qrupda isə bu göstərici 2048 bitə bərabərdir.
Encryption – məlumatların şifrələnməsində istifadə olunur. Burada simmetrik şifrələnmə tətbiq edilir. Burada da, açarın uzunluğu nə qədər çox olsa, o qədər yaxşıdır.
Authentication – məlumatların tamlığını təmin etmək üçün istifadə olunur. Burada biristiqamətli xeş funksiyalardan yararlanırıq. Biristiqamətli xeş funksiyalar məlumatı yalnız şifrələyir, deşifrə etmək isə mümkün deyil. Məlumatın doğruluğunu yoxlamaq üçün isə qarşı tərəf alınan məlumatları eyni ölçülü funksiya ilə şifrələyir və göndərilən xeş ilə yoxlayır. Xeşlər üst-üstə düşürsə, deməli məlumat modifikasiyaya uğramayıb.
Timers – IKE tunel qurulduqdan sonra neçə müddət açıq qalmalı olduğu göstərilir. Əgər bu zaman ərzində tuneldən məlumat keçməzsə, əlaqə kəsilir. Yalnız məlumat ötürülməsi başlanan zaman tunel avtomatik yenidən qurulur.
IPSec profil
Daha sonra Network –> Network profiles –> IPSec Crypto menyusunda IPSec profile yaradılır. IPSec profildə tərəflər arasında məlumat mübadiləsi zamanı istifadə olunacaq kriptoqrafik göstəricilər əks olunur.

Burada da, IKE profildə olduğu kimi, Deffie-Hellman qrupu, şifrələmə və autentifikasiya zaman istifadə olunacaq məlumatlar müəyyən edilir. Bu məlumatlar qarşı tərəfdə də eyni olmalıdır, əks halda IPSec tunel qurulmur. Lakin IKE tunelin parametrləri ilə, IPSec tunelin parametrləri fərqli ola bilər.
IKE Gateway
Bundan sonra isə Network –> Network profiles –> IKE Gateways menyusunda IKE Gateway yaradılır.

Əgər bir neçə VPN əlaqəsi yaradılmalıdırsa hər biri üçün ayrıca IKE Gateway yaradılır. Burada VPN əlaqədə istifadə olunacaq IKE versiyası seçilir. Ardından VPN sorğuları qəbul edəcək interfeys, tərəflərin IP ünvanları qeyd olunur.
Local address – biz tərəfdə istifadə olunan İP.
Peer address – qarşı tərəfin İP ünvanı.
Authentication – burada əvvəlcədən razılaşdırılmış açardan və ya sertifikatlardan istifadə oluna bilər. Sertifikatlarla VPN əlaqəsi daha etibarlı hesab olunur.
Pre-shared key – qarşı tərəflə razılaşdırılmış ortaq paroldur.
Local identification – VPN sorğu göndərən zaman avadanlıq özünü təqdim etmək üçün istifadə etidiy metod göstərilir. Bu IP ünvan və ya host adı ola bilər.
Peer Identification – eyni şey, lakin qarşı tərəf üçün.
Advanced Options menyusunda isə birinci addımda yaratdığımız IKE profil seçilir:

IPSec tunel
Növbəti addımda bilavasitə IPSec tunel yaradılır. Bunun üçün Network –> IPSec tunnels menyusuna keçmək lazımdır.

Burada tunelin adı təyin olunur və əvvəldə yaratdığımız tunel interfeysi göstərilir. Bu interfeys qarşı tərəfə gedən marşrutları öyrənmək üçün istifadə olunur.
Bağlantıda istifadə olunacaq IKE Gateway seçilir və ikinci addımda yaratdığımız IPSec Crypto profili təyin olunur. IKE Gateway-da olduğu kimi, IPSec tunel də individualdır və hər partnyor üçün ayrıca yaradılır.
Proxy IDs menyusunda şifrələnəcək trafik göstərilir:

Buradakı IP ünvanlar sizi çaşdırmasın. Məsələ burasındadır ki, 192.168.0.0 şəbəkəsi geniş yayılıb və bir çox şirkətlərdə istifadə olunur. VPN tuneldə də eyni şəbəkənin olması problemlər yarada bilər. Buna görə də şəbəkə inzibatçıları aralarında razılaşaraq əsas IP ünvanı istifadə etmədikləri IP-lərə NAT edirlər.

Əlavə sazlamalar
Cisco avadanlıqlarından fərqli olaraq, Palo Altoda qarşı tərəfdən gələn sorğuları da özümüzdə NAT etməliyik:

Bu zaman destination NAT istifadə edirik. Şəkildəki yazı isə belə oxunur: 172.16.1.1 şəbəkəsindən 10.10.10.10 şəbəkəsinə gələn bütün sorğuları 192.168.20.131 IP-nə yönləndir. Destination NAT adətən çöldən veb serverlərə giriş açmaq üçün istifadə edilir və bu haqda ayrıca yazım olacaq.
Səbrli olun, Palo Alto ilə birazdan işimiz bitir 😊
NAT siyasətinin ardınca marşrutlamanı sazlamaq lazımdır. VPN tunel üçün marşrutları avtomatik tapan Cisco-dan fərqli olaraq, Palo Altoda bunu mütləq statik qeyd etmək lazımdır. Əks halda trafik işləməyəcək.

İkinci qaydada biz qarşı tərəfin şəbəkəsini tunel1-də axtarmalı olduğunu yazmışıq. Üçüncüdə isə qarşı tərəfə deyirik ki, 10.10.10.10 şəbəkəsini görmək üçün ethernet1/2, yəni serverimiz yerləşən interfeysə müraciət et.
Sonda isə trafikin keçməsi üçün təhlükəsizlik qaydası (Security rule) yazılmalıdır. Bu qayda həm serverdən qarşı tərəfə gedən trafik üçün, həm də qarşı tərəfdən serverimizə gələn trafik üçün yazılmalıdır.

2-ci qaydada yazmışıq ki, 192.168.20.131 IP-li serverdən 172.16.1.1-ə gedən trafikə icazə ver. 3-cü qayda isə qarşı tərəfdən bizim serverimizə gələn trafikə icazə verir. Bu zaman, serverin real IP ünvanı əvəzinə NAT ünvanı qeyd olunur. Palo Altoda buna pre-nat IP, post-NAT zone prinisipi deyilir.
P.S. Palo Altoda NAT haqqında ayrıca yazım olacaq.
Sonda isə Commit basırıq və bununla da Palo Alto ilə işimiz bitir. Keçirik Cisco ASA tərəfinə.
Cisco ASA-nın sazlanması
Cisco tərəfdə konfiqruasiya prosesi daha sadədir. Öncə ASA-nın Internetə baxan interfeysində ikev2 qoşuruq:
crypto ikev2 enable outside
Palo Altoda olduğu kimi, Cisco ASA-da da birinci və ikinci faza üçün müvafiq sazlamalar etməliyik. Birinci faza:
crypto ikev2 policy 10
Encryption aes-256
Integrity sha256
Group 14
Prf sha256
Lifetime seconds 86400
Daha sonra isə IPSec tunelin parametrlərini müəyyən edirik:
crypto ipsec ikev2 ipsec-proposal SIDE-B-IPSEC
protocol esp encryption aes-256
protocol esp integrity sha-256
Ardınca object-group-lar yaradırıq. Əslində bu mütləq deyil, amma əlverişli funksionaldır.
object-group network LOCAL-REAL-SIDE-A
network-object host 192.168.16.10
object-group network LOCAL-MAP-SIDE-A
network-object host 172.16.1.1
object-group network REMOTE-NET-SIDE-A
network-object host 10.10.10.10
Bundan sonra isə NAT qaydası yaradırıq:
nat (inside,outside) source static LOCAL-REAL-SIDE-A LOCAL-MAP-SIDE-A destination static REMOTE-NET-SIDE-A REMOTE-NET-SIDE-A
Bu komanda da deyirik ki, 192.168.16.10 hostundan 10.10.10.10 ünvanına gedən bütün paketlər 172.16.1.1 IP-nə NAT olunsun.
Növbəti addım olaraq VPN tuneldə yer alacaq trafiki göstərmək üçün access-list yazırıq:
access-list VPN-SIDE-B-TRAFFIC extended permit ip object-group LOCAL-MAP-SIDE-A object-group REMOTE-NET-SIDE-A
Daha sonra tunel qrupu yaradırıq. Tunel qrup Palo Altoda IKE Gateways elementinə bərabərdir.
tunnel-group 100.64.10.30 type ipsec-l2l
tunnel-group 100.64.10.30 ipsec-attributes
ikev2 remote-authentication pre-shared key cisco123
ikev2 local-authentication pre-shared key cisco123
Sonda isə kripto xəritə yaradıb çölə baxan interfeysə bağlayırıq:
crypto map VPN-MAP 1 match address VPN-SIDE-B-TRAFFIC
crypto map VPN-MAP 1 set pfs group 14
crypto map VPN-MAP 1 set peer 100.64.10.30
crypto map VPN-MAP 1 set ikev2 ipsec-proposal SIDE-B-IPSEC
crypto map VPN-MAP 1 set security-assosiation lifetime seconds 3600
crypto map VPN-MAP interface outside
Birinci komdanda ilə şifrələnəcək trafiki qeyd edirik. İkinci də DH qrupunu təyin edirik. Üçüncü komandada qarşı tərəfin ünvanını qeyd edirik. 4-cü komanda şifrələnmədə istifadə olunacaq IPSec profilini göstərir. 5-ci komanda açarların vaxtını göstərir, burada 1 saatdır. 6-cı komanda isə kripto xəritəni interfeysə bağlayır. Burada yazılan komandalar Palo Altonun IPSec Tunnel menyusunda yazılanlarla üst-üstə düşür.
Əgər konfiqurasiya doğrudursa, ASA-ya qoşulan PC-dən 10.10.10.10 IP-nə ping ata bilməlisiniz.

Eyni zamanda Palo Altoda Network –> IPSec Tunnels menyusunda tunelin statusu yaşıl olmalıdır.

Burada Tunnel info IPSec tunelin statusunu göstərir. Üzərinə klikləməklə tuneldən keçən paket sayını görmək olar.
Cisco ASA-da isə show crypto isakmp sa yazmaqla ikev2 tunelin statusuna baxa bilərsiniz:

IPSec tuneli yoxlamaq üçün isə show crypto ipsec sa peer 100.64.10.30 yazmaq olar.

Burada encaps və decaps parametrləri tuneldən keçən paketlərin sayını göstərir. Adətən say eyni olur. Əhər hər-hansı birində göstərici 0-dırsa deməli tərəflərdən biri trafiki bloklayır.
Düzdür, yazı bir az böyük oldu, amma ümid edirəm sona qədər oxuyub, faydalana biləcəksiz.
netadmin.az IT haqqında Azərbaycan dilində