Eyni port yoxlamasını ofis xəttindən və VPN çıxışından işlədin və iki cavab heç kimin dəyişmədiyi ünvan barədə fərqlənə bilər. Bu fərq marşrutdan və hansı hostun cavab verdiyindən gəlir, xidmətin işlək və ya söndürülməsindən deyil. Üç sual bu izahları ayırır: zond əslində nə soruşdu, hansı host cavab verdi və öz serveriniz nə qeyd etdi. Onları bu sıra ilə işləyin və hər cavabı növbətiyə keçməzdən əvvəl yazın.

İki keçidi müqayisə etməzdən əvvəl zondu düzəldin

Vəziyyət sözü yalnız eyni təcrübədən çıxmış başqa vəziyyət sözü ilə müqayisə oluna bilər. Beş sahə bunu sabitləşdirir: uzaq tərəfin gördüyü mənbə ünvanı, həll olunmuş təyinat, port, skan növü və vaxt. Bunlardan hər hansı birini dəyişin və birincini iki dəfə ölçmək əvəzinə ikinci təcrübə keçirmiş olursunuz.

Mənbəni hər şeydən əvvəl yoxlayın, çünki VPN klienti işlək ola bilər, amma trafik hələ də fiziki interfeysdən çıxır. Uzaq tərəfdən nə gördüyünü soruşun, sonra kerneldən hansı interfeysi seçdiyini soruşun:

curl -s https://ifconfig.me
ip route get 203.0.113.20

Fərqli şəbəkələrdə iki ünvan izahın artıq əldə olduğunu bildirir və qalan yoxlamalar yalnız bunu təsdiqləyəcək. Onlar uyğun gələndə zondu səbəb bayrağı açıq halda çəkin ki, vəziyyət tək bir söz kimi dayanmaq əvəzinə izahla bağlı qayıtsın. Skan növü də həmin qeydə aiddir, çünki o, geri qayıdanı deyil, soruşulanı təsvir edir. Mənbəsi, üsulu və vaxt damğası olmayan vəziyyəti heç nə ilə müqayisə etmək olmaz:

nmap -sT -p 443,8443 --reason 203.0.113.20

Bu çıxışı növbəti şəxsin görə bilməyəcəyi yuvarlanma buferində deyil, qeydin yanında saxlayın. Uyğun gəlməyən iki vicdanlı skan yalnız şərtlər yazılmadıqda mübahisədir. Şərtlər sabitləndikdə ya nəticələr uyğun gəlir və məsələ bağlanır, ya da fərqlənirlər və fərq yol haqqında bir faktdır.

Handshake-i hansı hostun bitirdiyini öyrənin

Tamamlanmış handshake onu hansısa hostun tamamladığını sübut edir və bu host ağlınızdakı proses olmaya bilər. Yük balanslayıcı, tərs proxy və ya SYN proxy həqiqi server iştirak etməzdən əvvəl cavab verə bilər ki, bu da simptom deyil, adi dizayndır. Gözlənilən ad üçün etibarlı sertifikat da bunu daraltmır, çünki sertifikat xidmət münasibətini təsvir edir və hansı maşının bağlantını bitirdiyi barədə heç nə demir.

Nmap port vəziyyəti arayışı bunu əsas sayır: vəziyyət zondun göndərildiyi yerdən müşahidə edə bildiyini qeyd edir, portun xassəsini deyil. Vəziyyət sözünü belə oxuyun və fərqlənən iki keçid ziddiyyətli deyil, ardıcıl görünməyə başlayır, sual isə portun açıq olub-olmamasından onun qarşısında kimin dayandığına keçir.

İkinci suala xaricdən deyil, backend-də cavab verin. Bağlantıları qəbul edib sonra upstream-ə çata bilməyən frontend, yavaş tətbiqi olan sağlam xidmətin xarici mənzərəsini tam olaraq yaradır. İki halı yalnız upstream-in öz qeydi ayırır:

tail -n 5 /var/log/nginx/access.log
ss -ltnp 'sport = :443'

Jurnal sətri tətbiqin həqiqətən gördüyü müştəri ünvanını göstərir, ikinci əmr isə 443 portunu saxlayan prosesin tətbiqiniz, yoxsa onun qarşısında duran bir şey olduğunu göstərir. Əgər ikisi hansı ünvanın qoşulduğu barədə fərqlənirsə, siz bir sorğunun iki ayağına baxırsınız və bilet bunu deməlidir.

Tuneli günahlandırmazdan əvvəl öz qaydalarınızı yoxlayın

Qəsdən qoyulmuş siyasət portun bir şəbəkədə cavab verib digərində verməməsinin ən çox yayılmış səbəbidir və mövcud izahların ən az maraqlısıdır. Giriş qaydaları bir mənbəyə icazə verib qalanını atmaq üçün vardır, ona görə də çıxışın dəyişməsi məhz onların yazıldığı hadisədir. Buna görə VPN vasitəsilə fərqli vəziyyət provayderin trafiki yoxladığını göstərmir. O, mənbə ünvanınızın artıq fərqli olduğunu göstərir ki, bu da daha kiçik bir iddiadır.

Bu qaydalar serverdə oxuna bilər, ona görə şəbəkənin ortası barədə fərziyyə yürütmək əvəzinə onları oxuyun. Hər iki ünvan diapazonunu qeyd edən filtr qaydalarını sadalayın, sonra bağlantının ümumiyyətlə daemon-a çatıb-çatmadığını yoxlayın:

nft list ruleset | grep -n -e 203.0.113 -e 198.51.100
journalctl -u sshd -n 50 | grep 203.0.113

Boş ikinci nəticə məlumatvericidir, çünki daemon-a heç nə çatmayıb və sual filtrə, təhlükəsizlik qrupuna və ya yolun özünə aiddir. Uyğunluq xidmətin mənbənizi gördüyünü və cavabını seçdiyini bildirir, bu qərar isə adətən oxuya biləcəyiniz bir qaydada yazılır. Nə bir nəticə provayder haqqında hekayəni dəstəkləyir, nə də digəri; ikisini yoxlamaq paket tutmaqdan ucuzdur.

Nəqliyyatı, sertifikatı və cavabı ayrı-ayrılıqda oxuyun

Üç qat üç müşahidə yaradır və onlardan birini sınaqdan keçirən zond digər ikisi haqqında hesabat verə bilməz. Onları vahid hökmə qatlamaq əvəzinə qeyddə ayrı sətirlər kimi saxlayın, çünki hər sətir öz üsulu ilə uğursuz olur və uğursuzluq rejimi növbəti dəfə hara baxacağınızı deyir.

ObservationWhat it settlesWhat it leaves open
Connection completedA host on the path accepted the handshakeWhich host, and whether its upstream is reachable
Certificate valid for the nameThe endpoint holds a credential for that nameWhether the process behind it is the one you meant
Expected response bodyThe application handled the requestAnything about other ports or other paths
Connection refusedA host replied and nothing was listeningWhether a filter sits ahead of the refused port
TimeoutNo reply arrived before the deadlineDrop, blackhole route or an overloaded host

Bir əmr nəzarət etdiyiniz xidmətə qarşı ilk üç sətri yaradır. Onun çıxışını çat mesajında deyil, skanın yanında qeydə qoyun:

curl -v --resolve office.example:443:203.0.113.20 https://office.example/

Çıxışı sıra ilə oxuyun: handshake nəqliyyat sualına, sertifikat subyekti ad sualına, cavab gövdəsi isə tətbiq sualına cavab verir. Handshake sətri uğur qazanıb cavab sətri qazanmayanda, bloklanmış port deyil, upstream-i sınıq frontend-iniz var. Bu, açdığınız biletdən fərqli bir biletdir və bunu açıq deməyə dəyər.

Bileti dörd fakt yazmaqla bitirin: mənbə ünvanı, skan növü, cavab verən host və vaxt. Sonrakı müqayisənin ehtiyac duyduğu hər şey bu dörddə yaşayır və işi sonra götürən şəxs sizin terminal tarixçənizə sahib olmayacaq. Dördünü də doldura bilmirsinizsə, keçid bitməyib.

Əlaqəli məqalələr