pfSense VPN serveri və müştərisi kimi: iki yol, bir router
Gələn xidmət və çıxış tuneli bir cihazı paylaşa bilər. Marşrutlarının, tərcümənin və nasazlıqların ayrı qalıb-qalmadığını üç şərt həll edir.
Bir cihaz eyni anda iki istiqamətə baxa bilər: gəzən istifadəçilər içəri qoşulur, eyni qutu isə seçilmiş trafikin başqa şəbəkədən çıxması üçün çıxış provayderinə xaricə qoşulur. Hər iki xidməti işə salmaq dəqiqələr çəkir; onları birgə yaşatmaq isə dizayn tələb edir, çünki ikinci rol birincinin asılı olduğu marşrut cədvəlini yenidən yazır. Üç şərt bu quruluşun işləyib-işləmədiyini həll edir: gələn xidmət öz qayıdış yolunu saxlayırmı, çıxış tuneli hələ də öz həmyaşıdına çata bilirmi və yönləndirmək istədiyiniz trafik çıxış üçün seçilirmi. Birini səhv etsəniz, hər ikisi qoşulduğunu bildirən, amma aralarında faydalı heç nə keçməyən iki tunel alırsınız. Aşağıdakı yoxlamalar hər şərti nasazlıqların adətən göründüyü sıra ilə müəyyən edir.
Hər hansı ayara toxunmadan əvvəl iki rolu adlandırın
Hər nüsxə üçün dörd faktı yazın: uzaq həmyaşıdı, autentifikasiya materialı, verdiyi ünvan hovuzu və arxasındakı şəbəkələr. İki nüsxə cihazda ayrı obyektlərdir və qeydlərinizdə də ayrı qalmalıdır. Sonradan gələn demək olar ki, hər çaşdırıcı simptom onların dəyərlərinin qarışmasından yaranır və iki nüsxənin bir qeyd dəstini paylaşması səhv hovuzun səhv sahəyə düşməsinin yoludur.
Gələn xidmətə çıxış tunelinin ünvanları ilə və ya cihazın yönləndirdiyi hər hansı özəl şəbəkə ilə üst-üstə düşməyən tunel şəbəkəsi lazımdır. Üst-üstə düşmə hər iki rolda eyni vaxtda simptom yaradan yeganə səhvdir və onu kağız üzərində tutmaq qat-qat ucuzdur. Hər iki xidməti konfiqurasiya etməzdən əvvəl hər iki hovuzu və hər yönləndirilən özəl şəbəkəni bir yerdə müqayisə edin.
Paylaşılan aparat paylaşılan etimadnamə demək deyil və uzaq giriş hovuzundan olan müştəri sertifikatı çıxış provayderinə qarşı istifadə oluna bilməməlidir. Ayrı material ləğvi də donanma miqyaslı hadisə əvəzinə yerli qərara çevirir.
Serverin cavablarını WAN yolunda saxlayın
Cihazın özünün yaratdığı cavablar səhlənkar standart marşrutun ilk qurbanıdır. Gəzən istifadəçinin qablaşdırılmış paketi gələndə cavab yerli mənşəli trafikdir və həmin istifadəçinin gəldiyi interfeysdən çıxmalıdır. Əgər çıxış müştərisi onu tutan standart marşrut qurubsa, cavab səhv tunelə daxil olur və xidmət hələ də sağlam görünərkən sessiya dayanır.
Bunu həll edən tək bir işarələmə qutusu yoxdur, çünki qərar çıxış müştərisinin hansı trafiki tuta biləcəyi ilə bağlıdır. Ya heç bir marşrut çəkməyin və yalnız seçdiyinizi yönləndirin, ya da marşrutları çəkib cihazın öz xidmətlərini işlək saxlayan istisnaları əlavə edin. Seçimi nüsxənin yanında yazın, yoxsa növbəti adam digərini fərz edəcək.
netstat -rn | head -20
pfctl -sr | grep -i vpn
ifconfig | grep -A3 ovpn
Marşrut cədvəlini hər hansı şeyi konfiqurasiya etdiyiniz sıra ilə deyil, ən uzun uyğunluqla oxuyun. Sual çıxış həmyaşıdının ünvanı üçün hansı yazının, gələn xidmətin cavabı üçün hansı yazının qalib gəlməsidir və bu iki cavab fərqli ola bilər.
Çıxış tunelinin öz son nöqtəsini yeməsinə imkan verməyin
Çıxış müştərisi tuneli ümumiyyətlə qurmaq üçün həmyaşıdının ictimai ünvanına çatmalıdır. Əgər həmin ünvan özü tunelə yönləndirilirsə, müştəri öz quyruğunu qovur: nəql heç vaxt qalxmır, ya da qalxır və marşrut quraşdırılan anda düşür. Jurnal marşrut nasazlığından çox autentifikasiya fasiləsi kimi görünür, buna görə marşrut əvvəlcə yoxlanılmağa dəyər.
Marşrutu etimadnamələrdən əvvəl və tunel qalxdıqdan sonra yenidən yoxlayın, çünki yazı açılışda düzgün, bir dəqiqə sonra səhv ola bilər. Həmyaşıdın ünvanı adi WAN yoluna işarə etməlidir, heç vaxt tunel qurğusuna yox. Nəql sabitləşdikdən sonra maraqlı sual ötürülən trafikə keçir, bu da növbəti qərardır.
netstat -rn | grep -F '198.51.100.10'
traceroute -n 198.51.100.10
Çıxışı hansı istifadəçilərin alacağını seçin
Mənbə siyasəti trafikin cihaza daxil olduğu girişə aiddir, ona görə uzaq giriş hovuzunu və ya onun içindəki daha dar kimlikləri seçin. Heç vaxt çıxışa göndərilməməli olan özəl təyinatları və idarəetmə istisnalarını qoruyun və bu qaydaları geniş qaydadan əvvəl yerləşdirin. Sonra çıxış yolu öz tərcüməsinə və ya yönləndirilmiş qayıdış quruluşuna ehtiyac duyur ki, bu da əksər dizaynlarda hovuzu əhatə edən çıxış interfeysində gedən NAT deməkdir. Tərcümə çıxış seçmir; o, yalnız artıq çıxmış olanı yenidən yazır, ona görə əlaqəsiz WAN üzərindəki NAT qaydası seçimə heç nə etmir.
Uzaq tərəfin bu dizayndan ötürülən trafikə icazə verdiyini təsdiqləyin, çünki bəzi provayderlər verir, bəziləri vermir. Fərq qoşulan və heç nə daşımayan tunel kimi görünür, bunu da yerli nasazlıq kimi oxumaq asandır. Üç axını ayrıca yoxlayın, çünki onlar müstəqil sıradan çıxır və üçdən ikisi yarımçıq dizayndır.
openvpn --config user07.ovpn
curl -sS https://ifconfig.me
curl --interface 10.10.10.1 -sS https://intranet.corp.example/health
Birinci əmr gəzən istifadəçinin xarici bağlantısıdır və müştəri işəsalma ardıcıllığının tamamlandığını bildirəndə işləyir. İkincisi, həmin qoşulmuş noutbukdan işlədilir və sizin WAN ünvanınızı deyil, çıxış provayderinin ünvanını bildirməlidir. Üçüncüsü cihazda hovuz ünvanına bağlanaraq işləyir və heç bir uzaq istifadəçi cəlb etmədən ötürülən trafik üçün mənbə siyasətini yoxlayır. Əgər bunun yerinə WAN-dan cavab verirsə, siyasət uyğun gəlməyib və NAT-ı nə qədər redaktə etsəniz də seçim problemini həll etmir.
Çıxış sıradan çıxanda nə olacağını qərarlaşdırın
Nasazlıq davranışını baş verməzdən əvvəl yazın: çıxış tuneli düşəndə istifadəçilər adi WAN-a qayıdır, yoxsa çıxış qayıdana qədər bloklanır? Hər iki cavab müdafiə oluna bilər və cihaz sizin üçün seçməyəcək. Silinmiş marşrut və ya ölü şlüzə işarə edən siyasət avtomatik olaraq bağlı-qalma nəticəsi yaratmır. Bloklama istəyirsinizsə, siyasət bunu açıq deməlidir və çıxışı ələ alaraq sınanmalıdır, onun haqqında düşünməklə yox. Geri qayıtma istəyirsinizsə, bunu istifadəçilərə elan edin, çünki səssizcə adi yolu tutan trafik kimsənin əhatə olunduğuna inandığı trafikin elə özüdür.
Müştəri nüsxəsini söndürün, qoşulmuş istifadəçinin hələ nəyə çata bildiyinə baxın, sonra yenidən işə salın. Vaxtı bitən sorğu sizin istədiyiniz bağlı-qalma nəticəsidir; WAN ünvanı ilə cavab verən sorğu isə sənədləşdirmədiyiniz geri qayıtmadır. Yoxlamanı IPv6 və DNS üçün təkrarlayın, çünki IPv4 üçün yazılmış siyasət AAAA trafiki haqqında heç nə demir və hər hansı tuneldən itələnən həlledici sorğunun həqiqətən çıxdığı yerdən cavab verir.
pfSsh.php playback svc stop openvpn client 2
curl --max-time 6 -sS https://ifconfig.me
pfSsh.php playback svc start openvpn client 2
Netgate-in yönləndirilmiş OpenVPN resepti mənbə siyasətinin, interfeys təyinatının və gedən tərcümənin necə bir-birinə uyduğunu göstərir və onun saytlararası əhatəsi olduğu kimi köçürülməməli olan hissədir. Sizə deməyəcəyi şey, yuxarıdakı üç şərtdən hansını öz dizaynınızın artıq pozduğudur.