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.

FieldWhere it appearsWhat it decides
Security parameter indexESP header, and the receiving state entryWhich association and keys the receiver applies
Sequence numberESP headerReplay detection for that association
Next headerESP trailerWhat the decapsulated payload contains
Inner IP headerInside tunnel-mode payload onlyThe original source and destination the endpoints act on
Traffic selectorsPolicy, not the packetWhich 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.

Əlaqəli məqalələr