Marşrut əsaslı IPsec XFRM interfeysi ilə necə işləyir
XFRM interfeysi marşrut əsaslı IPsec-ə yönləndirmə üçün cihaz verir. if_id, onun arxasındakı təhlükəsizlik assosiasiyaları və xarici marşrut hamısı uyğun olmalıdır.
Marşrut əsaslı IPsec yönləndirmə cədvəlinə əvvəllər siyasət seçicilərinin verdiyi qərarı verir. Linux-da bunu mümkün edən hissə XFRM interfeysidir: trafiki seçici ilə deyil, interfeys identifikatoru ilə IPsec vəziyyətinə uyğunlaşdırılan virtual cihaz. Birini yaratmaq bir əmrdir və tunelin mövcud olub-olmadığını sübut etmir. Cihaz yönləndirmə ilə təhlükəsizlik siyasəti arasında qarmaqdır və hər hansı bir şey qorunmazdan əvvəl bu qarmağın hər iki tərəfi konfiqurasiya edilməlidir.
Cihaz nədir və nə deyil
XFRM interfeysi yönləndirmə dəstəyidir. Ona yönləndirilən paketlər eyni interfeys identifikatoruna istinad edən XFRM siyasətləri ilə uyğunlaşdırılır və həm siyasət, həm vəziyyət varsa, onlar inkapsulyasiya olunur. Bunlar olmadan interfeys mövcuddur, sayğaclar durğun qalır və trafik faydalı heç bir yerə getmir.
Bu, ilk diaqnostik ayrımdır. Cihaza gedən marşrut yönləndirmə faktıdır, quraşdırılmış vəziyyət təhlükəsizlik faktıdır və cihazda artan sayğac heç biri deyil. İnsanlar tunelin işlədiyini deyəndə, interfeysin UP göstərdiyinə görə, özünün peer-i olmayan virtual cihazın link bayraqlarını təsvir edirlər. Bayraq cihazın yaradıldığını və aktivləşdirildiyini bildirir, başqa heç nəyi yox.
Daha bir sərhəd: interfeys identifikatoru ad deyil. Oxşar adları və fərqli identifikatorları olan iki cihaz vəziyyəti paylaşmır və səhv identifikatorla konfiqurasiya edilmiş bağlantı heç bir marşrutun istifadə etməyəcəyi vəziyyət quraşdırır.
Birisini düzgün sıra ilə qur
Xarici cihazdan və daemon konfiqurasiyasına da yazacağın bir rəqəmdən başla. Nümunə eth0-i xarici interfeys və 42-ni identifikator kimi istifadə edir; bunlar öz ünvanlarınla əvəz etməli olduğun ünvanlardır.
Cihazı qaldır, sonra VPN konfiqurasiyasına toxunmazdan əvvəl kernelin qeyd etdiyi identifikatoru təsdiqlə:
sudo ip link add xfrm0 type xfrm dev eth0 if_id 42
sudo ip link set xfrm0 up
ip -d link show xfrm0 | grep -o 'if_id [0-9]*'İndi strongSwan-da bağlantını eyni identifikatorla konfiqurasiya et, çünki daemon ona istinad edən siyasətləri və vəziyyətləri quraşdırmalıdır. Yerli və uzaq trafik seçicilərini yönləndirmək istədiyin aralığa qoy, sonra həmin aralığı cihaza yönləndir. Daemon konfiqurasiyası və marşrut cədvəli həm identifikator, həm də təyinatlar barədə razılaşmalıdır və heç biri digərini təmin etmir.
IKE və ESP-ni tunel marşrutundan kənar saxla
XFRM cihazına yönələn defolt marşrut inkapsulyasiya olunmuş paketləri və onların daşıdığı trafiki tutur. Nəticə dövrədir: şlüz öz ESP-sini ESP-nin qurmalı olduğu tuneldən göndərməyə çalışır.
Düzəliş peer-in xarici ünvanı üçün daha dəqiq marşrut fiziki interfeys vasitəsilədir və daha çox bit uyğunlaşdırdığı üçün defoltdan üstün gəlir. Bir neçə tunel eyni cədvəli paylaşdıqda işarə əsaslı yönləndirmə eyni işi görür və strongSwan marşrut əsaslı yerləşdirmələr üçün hər iki yanaşmanı sənədləşdirir.
Nə seçsən də, xarici paketin inkapsulyasiya olunmadan çıxdığını yoxla. Sürətli yoxlama tunel qalxdıqdan sonra peer-in xarici ünvanına ping göndərməkdir; bu, interfeys işləyərkən uğursuz olarsa, əlçatanlıqdan çox tutulmanı güman et. Eyni məntiq IKE portuna aiddir, çünki daemonun öz UDP trafiki qurmağa çalışdığı cihaza yönləndirilməməlidir.
Şifrələməni günahlandırmazdan əvvəl sayğacları iki yerdə yoxla
Interfeys sayğacları və vəziyyət sayğacları fərqli mərhələləri ölçür. Cihaza yönləndirilən paketlər heç bir vəziyyət uyğunlaşmasa da cihazı artırır, vəziyyət sayğacları isə yalnız həqiqətən inkapsulyasiya olunmuş trafik üçün hərəkət edir.
İkisini də oxu, sonra daemonun uşaq assosiasiyasına baxışını oxu:
ip -s link show xfrm0
sudo ip xfrm state list | grep -E 'src|proto|mode'
sudo swanctl --list-sasVəziyyət çıxışı boş ikən cihaz sayğaclarının artması yönləndirmənin işlədiyini və siyasətin uyğunlaşmadığını bildirir; bu, adətən identifikator və ya seçici səhvidir. Uzaq tərəf heç nə bildirmədiyi halda vəziyyət sayğaclarının artması paketlərin çıxdığını, lakin çatmadığını və ya autentifikasiyadan keçmədiyini bildirir; bu da yola və ya peer konfiqurasiyasına işarə edir. Sıfır trafikli siyahıda görünən uşaq bir tərəfdə seçici problemidir, pozulmuş şifr deyil.
Marşrutları kimin quraşdırdığına qərar ver
Bir marşrut cədvəli üçün iki sahib dalğalanmanın adi mənbəyidir. Daemon marşrutları avtomatik quraşdırırsa, şəbəkə menecerin də eyni cihazdan defolt marşrut quraşdırmamalıdır və başlanğıc skriptinin əlavə etdiyi əl ilə marşrut daemon növbəti dəfə yenidən konfiqurasiya etdikdə silinəcək.
Bir sahib seç və onu yaz. Marşrutlar daemona aiddirsə, başlanğıc skriptini cədvəldən kənar saxla və bağlantı tərifinin trafik seçicilərini təsvir etməsinə icazə ver. Onlar şəbəkə menecerinə aiddirsə, avtomatik quraşdırmanı söndür və daemonun yenidən qoşulmada itkin marşrutu bərpa etməyəcəyini qəbul et.
Yönləndirmə və firewall qaydaları bunun üzərinə ayrı qərardır, çünki başqa hostların trafikini ötürən şlüz hər ikisinə ehtiyac duyur. Marşrut əsaslı IPsec bu trafiki adi yönləndirmə alətləri ilə ifadə etməyi asanlaşdırır; siyasət qatını isteğe bağlı etmir.