IPsec hostunda trafiki tutdunuz, ESP paketlərinin çıxdığını gördünüz, heç nəyin qayıtmadığını gördünüz və uzaq tərəfin sıradan çıxdığı qənaətinə gəldiniz. Tutma bu qənaəti dəstəkləmir. ESP söhbətin bir istiqamətini qoruyur və IP qatında heç nəyi təsdiqləmir, buna görə qayıdan ESP-nin olmaması tətbiqin deyəcək bir şeyi olmaması demək ola bildiyi kimi tunelin ölü olması da demək ola bilər. Hər iki tərəfi günahlandırmazdan əvvəl daxili mübadiləni və qəbul tərəfinin vəziyyətini oxuyun.

Mif: hər qorunan paket cavab qazanır

ESP sorğu-cavab protokolu deyil. Siyasətin seçdiyi hər şeyi şifrələyir və autentifikasiya edir, qəbul edən isə həmin daxili paketi öz paketini yaratmadan yoxlayır, şifrəsini açır və çatdırır. Hədəfin nəzərə almadığı UDP sorğusu və ya gələn siyasətin rədd etdiyi ICMP əks-sədası hər iki istiqamətdə sükut yaradır və bu düzgün nəticədir. Bu sükutu nəqliyyat nasazlığı kimi qiymətləndirmək sizi heç vaxt olmamış şəbəkə xətası axtarışına göndərir.

Birtərəfli tutmanın həqiqətən sübut etdiyi odur ki, göndərənin steki həmin müşahidə nöqtəsində nəyisə şifrələyib. Gəliş haqqında heç nə, cavab vermək niyyəti haqqında da heç nə. Faydalı sual "niyə cavab yoxdur" deyil, "daxili söhbət nə yaratmalı idi" sualıdır.

İki SA, iki SPI, bir söhbət

IPsec təhlükəsizlik assosiasiyaları birtərəflidir, buna görə normal qorunan mübadilə ayrı identifikatorları və müstəqil vəziyyəti olan gələn və gedən assosiasiyadan ibarətdir. Gedən paketin SPI-si üçün qayıdış trafikini axtarmaq kateqoriya xətasıdır, çünki hər hansı cavab qarşı tərəfin öz gedən SA-sı altında öz SPI-si ilə gedir. Cütü trafik seçiciləri və qarşı tərəfin ünvanları ilə uyğunlaşdırın.

Açar yenilənməsi vəziyyəti hər dəfə bir neçə saniyə çətinləşdirir, çünki köhnə və əvəzedici vəziyyət üst-üstə düşə bilər. Əgər simptom açar yenilənməsi ətrafında başlayıbsa, yalnız bağlantı adını deyil, assosiasiya identifikatorlarını və zaman damğalarını birlikdə toplayın.

Qəbul edən heç nə cavab verməzdən əvvəl nə etməlidir

StageWhat to look atWrong conclusion if skipped
Sender encryptsoutbound SA packet counter"the tunnel is up"
Peer receivesinbound SA counter and replay window"the peer is down"
Inner deliverytarget host or service logs"routing is broken"
Application repliesthe app's own trace"the reply was dropped"
Protected returnthe peer's outbound SA"ESP only works one way"

Hər sətir müstəqil şəkildə uğursuz olur və hər uğursuzluğun fərqli sahibi var, buna görə tək bir tutma onları ayıra bilmir. Gələn sayğac gəlişin yeganə birbaşa sübutudur, çünki autentifikasiyadan və ya replay yoxlamasından keçməyən paket heç bir cavab olmadan atılır. Gələn sayğacı tərpənməmiş qarşı tərəf sizə siyasəti haqqında heç bir məlumat vermir.

Çatdırılma deşifrələmədən ayrı bir addımdır. Vəziyyət etibarlı ola bilər və paket sonradan gələn siyasət və ya daxili hədəfi əhatə etməyən marşrut tərəfindən atıla bilər, buna görə təmiz sayğacın paketin istədiyiniz yerə getdiyi anlamına gəldiyini fərz etmək əvəzinə hədəf hostun açıq mətn görüb-görmədiyini yoxlayın.

Doğma ESP UDP deyil

Doğma ESP IP protokolu 50-dir, nə TCP, nə də UDP-dir və heç bir portu yoxdur. Buna görə UDP 500 üzərində IKE-ə icazə verən firewall qaydası məlumat yoluna dair heç nə demir və portlar ətrafında yazılmış filtr tunelin razılaşmasına icazə verib içində daşınan hər şeyi ata bilər. Məlumat yolunu ayrıca, həqiqətən müşahidə etdiyiniz rejimdə sınayın.

NAT arxasında forma dəyişir: qorunan yük UDP içində, adətən 4500 portunda gedir, bunu RFC 3948 müəyyən edir. Hər hansı qayda yazmazdan əvvəl aktiv rejimi qeyd edin, çünki yoldakı cihaz doğma ESP ilə UDP-yə bükülmüş ESP-ni tamamilə fərqli idarə edə bilər və bəzi aralıq qurğular birinə icazə verib digərini atır.

Bu insidentə aid sayğacları oxuyun

strongSwan hostunda swanctl --list-sas hər assosiasiya üzrə hər iki istiqamətdə paket və bayt sayğaclarını göstərir ki, bu da "heç vaxt gəlmədi" ilə "gəldi və cavab verilmədi" hallarını ayırmaq üçün kifayətdir. Linux-da /proc/net/xfrm_stat itkin vəziyyət, itkin siyasət və protokol xətaları kimi məcmu uğursuzluqları sayır. Bu cəmlər yüklənmədən bəri toplanır və bir şəbəkə ad fəzasına aiddir, buna görə böyük rəqəm hələ aidiyyət deyil.

İnsident pəncərəsi ətrafında düzgün ad fəzasında iki oxunuş götürün və fərqləri müqayisə edin, əks halda keçən həftənin xətalarını bu axşamın bileti üzərinə yapışdıracaqsınız. Ad fəzasını və hər iki zaman damğasını biletdə yazın ki, növbəti oxuyucu cəmi etibar etmək əvəzinə müqayisəni təkrarlaya bilsin.

Şübhəli yox, mərhələni adlandırın

Faydalı nəticə paketin harada dayandığını deyir: heç vaxt qəbul edilmədi, qəbul edilib atıldı, çatdırıldı amma cavabsız qaldı və ya cavab verildi və qayıdış yolunda itdi. Bunların hər biri fərqli sahibə və fərqli növbəti əmrə işarə edir. "VPN serverindən cavab yoxdur" dörd fərqli nasazlığı tutmanın heç vaxt haqq qazandırmadığı bir cümləyə sıxışdırır.

Tutmaları dar saxlayın və xam kernel vəziyyətini biletlərdən kənarda saxlayın, çünki o, hostdan çıxmağa heç bir haqqı olmayan açar materialı daşıya bilər. Sayğac fərqləri və zaman damğaları növbəti şəxsə verilməyə dəyər hissələrdir.

Əlaqəli məqalələr