IPsec ESP: nə daşıyır və axdığını necə sübut etmək olar
ESP tunel rejimində daxili IP paketini bükür və assosiasiyasını SPI ilə müəyyən edir. Vəziyyəti oxuyun, sonra bir axının sayğacları hərəkətə gətirdiyini izləyin.
ESP IPsec VPN-də trafiki daşıyır və onun üçün runbook bir qayda ilə başlayır: siyasəti dəyişməzdən əvvəl təhlükəsizlik assosiasiyasını oxu. İzah edilməyən ESP davranışının çoxu uyğun gəlməyən selektora, oxunmaq əvəzinə güman edilən rejimə və ya bir axın göndərilərkən heç kimin yoxlamadığı sayğaca gedib çıxır. Aşağıdakı üç addım nəyin nəyi daşıdığını müəyyən edir, bir axının ondan istifadə etdiyini sübut edir və yaddaşdan asılı olmayan geri qaytarma buraxır. Hər addım yazılmağa dəyər bir müşahidə verir.
Sahələri oxumadan əvvəl tanı
ESP qorunan məlumatın qabağına başlıq, arxasına trayler qoyur. Başlıq alıcının hansı assosiasiyadan istifadə etməli olduğunu müəyyən edən təhlükəsizlik parametri indeksini, təkrar göndərmənin aşkarlanması üçün ardıcıllıq nömrəsini, traylerdə isə şifrə üçün yükü düzülü saxlayan doldurmanı daşıyır. Traylerdəki növbəti başlıq sahəsi qorunan məzmunun nə olduğunu bildirir və alıcı nəyi deşifrə etdiyini bununla bilir.
Rejim həmin mühafizənin içində nə olduğunu dəyişir. Tunel rejimində qorunan material tam daxili IP paketidir və onu uç nöqtələr arasında yeni xarici başlıq daşıyır. Nəqliyyat rejimində mühafizə mövcud paketin yuxarı qat yükünü bükür, ona görə açılacaq ikinci IP başlığı yoxdur. Hansı rejimin istifadə olunduğu konfiqurasiya faktıdır, təfsir məsələsi deyil. Onu diaqramdan çıxarmaq əvəzinə vəziyyət qeydindən oxu.
Heç bir rejim paketi çatdırmalı olan xarici ünvanlaşmanı gizlətmir. Bu, dizaynın xüsusiyyətidir, çatışmazlıq deyil və buna görə aralıq müşahidəçi yük qeyri-şəffaf olsa da hansı iki ünvanın danışdığını hələ də görə bilir.
Birinci addım: vəziyyəti, sonra siyasəti oxu
Vəziyyət qeydləri açarları və sayğacları saxlayır; siyasət qeydləri isə onlardan nəyin istifadə edə biləcəyini müəyyən edən selektorları. Linux-da hər ikisi paket tutmadan görünür və onları bu ardıcıllıqla oxumaq iki sualı ayrı saxlayır.
ip xfrm state
ip xfrm policy
Vəziyyət çıxışında assosiasiyanın mənbəyini və təyinatını, rejimi və inkapsulyasiyanın UDP portlarını göstərib-göstərmədiyini yoxla. Bu portlar NAT keçidinin istifadə olunduğunu bildirir, bu da aralıq firewall-un nəyə icazə verməli olduğunu dəyişir, lakin uç nöqtələrdə hansı selektorların və ya açarların tətbiq olunduğunu yox.
Sonra siyasətdəki selektorları oxu. Sınaqdan keçirdiyin trafikdən daha dar prefiks göstərən selektor işlək tunelin axını görməməzliyə vurmasının ən çox yayılmış səbəbidir və səhv protokol üçün selektor eyni sükutu yaradır.
| Field | Where it appears | What it decides |
|---|---|---|
| Security parameter index | ESP header, and the receiving state entry | Which association and keys the receiver applies |
| Sequence number | ESP header | Replay detection for that association |
| Next header | ESP trailer | What the decapsulated payload contains |
| Inner IP header | Inside tunnel-mode payload only | The original source and destination the endpoints act on |
| Traffic selectors | Policy, not the packet | Which local traffic is allowed to use the association |
Vendor alətləri eyni məlumatı daha rahat formada çap edir. ipsec statusall strongSwan-də bu, uşaq assosiasiyaları, onların selektorlarını və bayt sayğaclarını sadalayır; bu, hansı uşağa baxacağını artıq bilirsənsə, xam xfrm çıxışını oxumaqdan çox vaxt daha sürətlidir.
İkinci addım: bir axının sayğacları hərəkətə gətirdiyini sübut et
Sayğaclar yalnız onları nəyin hərəkətə gətirməli olduğunu bilirsənsə məna daşıyır, ona görə selektorun mütləq əhatə etdiyi mənbə və təyinat seç və bir zərərsiz sorğu göndər. Sonra həmin qeydi yenidən oxu və müqayisə et.
ip -s xfrm state
tcpdump -ni any esp
İki oxunuş fərqli hekayələr danışır. Çıxan tərəfdə artan, amma heç vaxt daxil olan tərəfdə artmayan paketlər açar probleminə deyil, yönləndirmə və ya qayıdış yolu probleminə işarə edir, çünki paket inkapsulyasiya olunub getdi. Heç bir sayğacın hərəkət etməməsi trafikin siyasətə heç uyğun gəlmədiyini bildirir, və baxılacaq yer selektordur.
Eyni addımdaki tutma naqildəki inkapsulyasiyanı təsdiqləyir, o cümlədən xarici paketlərin ESP yoxsa UDP ilə inkapsulyasiya olunmuş ESP olduğunu. O, həmçinin axını həqiqətən daşıyan ünvanları göstərir; bunlar bəzən oxuduğun konfiqurasiyadakılardan fərqlənir.
Üçüncü addım: bir şeyi dəyiş və geri qaytarma saxla
Hər nəyisə redaktə etməzdən əvvəl assosiasiyanın mənbəyini, təyinatını, rejimini, selektorlarını və sayğaclarını qeyd et. Dəyişiklik işləri pisləşdirsə, məhz o qeyd əvvəlki vəziyyəti bərpa etməyə imkan verir, işlək konfiqurasiyanı təxmindən yenidən qurmağa yox. O qeyd yazmaq üçün bir dəqiqə çəkir və sonra bir saat qazandırır. O, həm də dəyişikliyi edən şəxsdən sonra qalan yeganə artefaktdır.
Bir selektoru və ya bir parametri dəyiş, onu yenidən yüklə və ikinci addımı eyni axına qarşı təkrarla. Assosiasiyanı silmək ondan istifadə edən hər axını dağıdır, ona görə məqsədli redaktə və uşağın yenidən yüklənməsi nə baş verdiyini görmək üçün vəziyyəti təmizləməkdən demək olar ki, həmişə daha yaxşıdır.
Selektor redaktəsi üçün geri qaytarma əvvəlki siyasəti bərpa edib yenidən yükləməkdir; bir şərtlə ki, selektor yerli deyil, razılaşdırılan olsa, qarşı tərəf uyğun dəyişiklik tələb edə bilər. Bu asılılığı hələ təzə ikən yaz, çünki yarım bərpa olunmuş cüt iki son vəziyyətdən hər hansı birindən daha çətin düşünüləndir.
Nəhayət, əhatə dairəsini dürüst saxla. Axan ESP assosiasiyası iki şlüuzun seqmenti qoruduğunu və çatdırdığını sübut edir və üstdəki tətbiqin istifadəçilərini doğruladığını və ya saxladığını şifrələdiyini demir. Bunlar ayrı sübutlu ayrı nəzarətlərdir və runbook yalnız növbəti şəxs onu qeydlərdən təkrarlaya bildikdə bitmiş sayılır.