OpenVPN qoşulur, amma heç nə axmır: paketin itdiyi qatı tapın
Trafiksiz qoşulmuş tunelin ən azı beş səbəbi var. Dinləyicini sübuta yetirin, xarici paketi tutun, sonra qaydanı sayğaclar və ya iz adlandırsın.
OpenVPN qoşulduğunu bildirir və heç bir trafik hərəkət etmir, bu cümlə ən azı beş əlaqəsiz nasazlığı əhatə edir. Hansı qatın uğursuz olduğunu bilməzdən əvvəl firewall qaydalarını redaktə etmək bilinməyənləri çoxaldır və növbəti mühəndisə qarışıqlıq qoyur. Bunun əvəzinə prosesdən bayıra doğru işləyin, çünki aşağıdakı hər addım ya bir mərhələni təmizləyir, ya da paketin öldüyü yeri daraldır. Sıra burada vacibdir: hansı ünvanın bağlandığını bilməzdən əvvəl götürülən tutma nəyisə sübut edəcək, sadəcə sizə lazım olan şeyi yox.
Soket ya bağlanıb, ya yox
Aktiv olduğunu bildirən xidmət hələ də heç vaxt nəzərdə tutmadığınız ünvana və ya nəqliyyata bağlı ola bilər. Soketin özünü sorğulayın: ss -lunp UDP dinləyicilərini, ss -ltnp isə TCP dinləyicilərini göstərir və oxumağa dəyər sütun vəziyyət deyil, yerli ünvandır.
Boş cavab adətən üç şeydən birini ifadə edir: proses başladıqdan sonra çıxıb, o, başqa konfiqurasiya faylı yükləyib, və ya əlaqə qurulan ünvandan fərqli bir ünvanda dinləyir.
ss -lunp | grep 1194
ss -ltnp | grep 1194
local təlimatı dinləyicini tək ünvana bərkidir, buna görə eyni hostda başqa yerə yönəlmiş müştəri rədd edilir, halbuki xidmət xaricdən hələ də sağlam görünür. Nüsxə adı da heç vaxt redaktə etmədiyiniz fayla işarə edə bilər, bu, iki profili yanaşı işlədən hostlarda olur.
Xarici paketi tutun, tuneli yox
Fiziki interfeys və real port üzrə filtr edin, öz interfeysinizi yerinə qoyun: tcpdump -ni eth0 udp port 1194. Heç nə qayıtmayan gedən paketlər yuxarıda durana işarə edir: provayder filtri, NAT cihazı və ya düşündüyünüzdən fərqli uzaq ünvan. Hər iki istiqamətdə sükut müştəri marşrutlaşdırmasına və ya yerli firewall-a işarə edir. Tuneldə irəliləyiş olmadan gələn cavablar idarə kanalına, yəni açar və ya şifr uyğunsuzluğuna işarə edir, filtrə yox.
Hər iki istiqaməti tutun və faylı qısa saxlayın. Uzun tutma maraqlı üç saniyəni basdırır və cavab demək olar ki, həmişə ilk mübadilədə olur.
Əvvəlcə sayğaclar, iz yalnız onlar yalan danışanda
Sayğaclarla başlayın, çünki heç bir xərci yoxdur. Ya nft list ruleset, ya da iptables -L -n -v burada vacib olan yeganə suala cavab verir: qayda uyğun gəldimi? Sıra nəticəni həll edir, çünki ilk uyğunluq qazanır, buna görə sonrakı ACCEPT-dən əvvəl geniş DROP həmin ACCEPT-i ölü qoyur və buna görə qayda əlavə etmək çox nadir hallarda nəyisə düzəldir.
Sahiblik də insanları çaşdırır. Kernel yerli yaradılan paketləri soketi açan prosesə aid edir və OpenVPN adətən root kimi işləyir, buna görə adi istifadəçi ID-sinə bağlanmış qayda tunelin öz trafikini heç vaxt görmür. Qaydanın səhv olduğuna qərar verməzdən əvvəl sahib UID-ni yoxlayın.
Yalnız sayğaclar qeyri-müəyyən qaldıqda log səs-küyə dəyər, o zaman da yalnız dar bir dilim üçün: sürəti məhdudlaşdıran və log sətirlərinə prefiks əlavə edən iptables qaydası, ya da meta nftrace set 1 daşıyan nftables qaydası ilə birlikdə işləyən nft monitor trace. İz paketi qəbul edən və ya atan zənciri və qaydanı adlandırır. Sonra hər ikisini silin və yük loglamasını kənarda saxlayın.
Nəqliyyatı da yoxlayın. TCP-yə yönəlmiş firewall xidməti o nömrədəki UDP dinləyicisi haqqında heç nə demir, buna görə düzgün görünən qayda hələ də hər paketi ata bilər.
Marşrutlaşdırma və geri yol
Qəbul edilən, amma yenə də yox olan paketin təyinat yolunu araşdırmaq lazımdır. ip route get bir ünvan üçün seçilən marşrutu bildirir və tərs yol filtri əsas cədvəlin heç vaxt seçməyəcəyi interfeysdən gələn cavabı ata bilər. Simptom tam olaraq firewall atmasına bənzəyir, buna görə bu yoxlama başqa NAT qaydasından əvvəl gəlir.
Şlüzda input zəncirindən çox forward zəncirini və yönləndirməni yoxlayın. Sonra uzaq tərəfin mənbə ünvanına necə çatacağını bildiyini təsdiqləyin, çünki işləyən gedən yol heç nə qaytarmırsa, hər iki halda sükutdur.
Qeydin nə deməli olduğu
Hər dəyişiklik üçün yoxladığınız mərhələni, oxuduğunuz sübutu və onun hər iki tərəfindəki sayğac dəyərini qeyd edin. Məhz bu qeyd "indi işləyir" ifadəsini növbəti baxışda davamlı edir.
İki qısayol qeydi dürüst saxlayır. Hostdan heç vaxt çıxmayan paketi başqa yerdəki qayda ata bilməzdi, uzaq tərəfin konfiqurasiyası nə qədər inandırıcı görünsə də. Çıxıb qayıdan paket sualı şəbəkə qatının üstünə aparır, orada firewall sayğaclarının sizə deyəcək heç nəyi qalmır.