OpenVPN şlüzünü UFW qaydaları ilə bir LAN ilə məhdudlaşdırın
Tunel müştəriləri yalnız bir alt şəbəkəyə çatsın, başqa heç yerə yox. UFW-nin erkən qəbullarından əvvəl qoruma zəncirləri, marşrut icazəsi və sərhədi sübut edən testlər.
Fayrvol faylını açmazdan əvvəl icazəni qərarlaşdırın: autentifikasiya olunmuş müştərilər bir konkret alt şəbəkəyə bağlantı aça bilər, şlüz isə müştəri əlavə marşrutlar quraşdırsa belə hər hansı digər tranzit yolu rədd etməlidir. Bu cümlə dizayndır və aşağıdakı hər qayda onu tətbiq etmək üçün mövcuddur. Daha geniş bir şey, məsələn bütün özəl ünvan məkanı, tunel vasitəsilə internetə çıxış və ya bərabər-bərabərə trafik, öz qərarını tələb edən başqa dizayndır. Qaydalar da qəsdən darıxdırıcıdır, çünki ağıllı fayrvol sonradan heç kimin audit edə bilmədiyi bir şeydir.
Əvvəlcə topologiyanı və icazəni yazın
Nümunə istifadəçi məkanında TUN cihazı olan Community OpenVPN serverindən istifadə edir, cihazın adı tun0, müştəri hovuzu 10.77.0.0/24, və bir qoşulmuş alt şəbəkə 192.168.60.0/24 lan0 üzərindədir. IPv4 yönləndirmə artıq işləyir və LAN-ın hovuza qayıtma marşrutu var, buna görə burada heç nə onlar arasında tərcümədən asılı deyil.
Bu hostda fayrvol UFW-yə məxsusdur və heç bir konteyner qaydalar dəsti və ya ayrı nftables cədvəli daha erkən qəbul yolu quraşdıra bilməz. Filtrdən keçən axın-offload qısayolu qoruma zəncirlərini bəzək edərdi, ona görə heç birinin aktiv olmadığını təsdiqləyin. OpenVPN-in öz client-to-client yönləndirməsini deaktiv vəziyyətdə buraxın, çünki əməliyyat sistemi filtrindən heç vaxt keçməyən bərabər-bərabərə trafik bununla məhdudlaşdırıla bilməz. Xarici dinləyici və idarəetmə qaydaları olduğu kimi qalır, çünki bu dəyişiklik fayrvolu əvəz etmək əvəzinə deşifrə olunmuş tunel trafikini idarə edir.
Qorumaları UFW-nin erkən qəbullarından əvvəl yerləşdirin
Marşruta icazə verib sonra rədd etmək sərt sərhəd üçün kifayət deyil. Standart before qaydaları hər hansı istifadəçi qaydasına baxılmazdan əvvəl qurulmuş trafiki və seçilmiş ICMP-ni qəbul edir, buna görə keçən həftə icazə verilmiş axın yeni təyinat məhdudiyyətindən kənarda qala bilər, sadəcə hələ də vəziyyəti olduğu üçün. Redaktə etməzdən əvvəl UFW fayllarının ehtiyat nüsxəsini çıxarın və kənar konsolu açıq saxlayın.
*filter bölməsində /etc/ufw/before.rules, mövcud bəyannamələrin yanında və hər hansı qayda sətirindən əvvəl iki zəncir elan edin.
:vpn-src-guard - [0:0]
:vpn-reply-guard - [0:0]Bəyannamələrdən dərhal sonra və giriş və yönləndirmə icazələrindən əvvəl onların içinə atlayın və nəyə icazə verdiklərini müəyyən edin.
-A ufw-before-input -i tun0 -j DROP
-A ufw-before-forward -i tun0 -j vpn-src-guard
-A ufw-before-forward -o tun0 -j vpn-reply-guard
-A vpn-src-guard -o lan0 -d 192.168.60.0/24 -s 10.77.0.0/24 -m conntrack --ctdir ORIGINAL -j RETURN
-A vpn-src-guard -j DROP
-A vpn-reply-guard -i lan0 -d 10.77.0.0/24 -s 192.168.60.0/24 -m conntrack --ctstate RELATED,ESTABLISHED --ctdir REPLY -j RETURN
-A vpn-reply-guard -j DROPBölmənin qalan hissəsini və onun COMMIT sətrini saxlayın. İkinci filtr cədvəlini yapışdırmaq və ya əlaqəsiz qaydaları silmək fayrvol dəyişikliyinin kəsintiyə çevrilmə yoludur, fayl isə əhəmiyyətli yeganə nüsxə olmaqdan bir yenidən başlatma uzaqdır.
Hər qorumanın nəyi qəbul edib nəyi rədd etdiyini oxuyun
Birinci zəncir yalnız mənbə hovuzun içində, təyinat həmin alt şəbəkə, çıxış interfeysi LAN və paket axının orijinal istiqamətində olduqda emalı davam etdirir. Tuneldən gələn hər şey digəri atılır, o cümlədən hovuzdan kənar mənbə və icazə verilən alt şəbəkədən kənar hər hansı təyinat.
Bərabər-bərabərə paket tun0-ə girir və ondan çıxır, buna görə təyinat yoxlamasına çatmadan LAN interfeys testindən keçmir. LAN-dan müştərilərə yeni bağlantılar da cavab istiqaməti testindən keçmir, bu da əks geri çağırış yolunu standart olaraq bağlayır.
RETURN hədəfi adi UFW siyasətini oyunda saxlayır. Bu zəncirlər filtrləyir, sonra əlavə etdiyiniz marşrut icazəsi sağ qalan paketin qəbul edilib-edilməyəcəyinə qərar verir. Bu ayrılıq sonradan icazə verilən alt şəbəkəni bir yerdə dəyişməyə imkan verir. Əgər qorumalar paketləri birbaşa qəbul etsəydi, hər gələcək qayda iki dəfə əlavə edilməli olardı.
Alt şəbəkəyə icazə verin və yan qapıları bağlayın
Əvvəlcə marşrut icazəsinə baxış keçirin, sonra tətbiq etmək üçün önizləmə bayrağını atın: sudo ufw --dry-run route allow in on tun0 out on lan0 from 10.77.0.0/24 to 192.168.60.0/24. Sonra istifadəçi qaydalarının sırasını nəzərdən keçirin, çünki daha erkən rədd daha sonrakı icazədən üstün qalır. Bütün alt şəbəkəyə icazə də yanlış formadır, o zaman ki yalnız bir hostun HTTPS portu əlçatan olmalıdır.
Giriş atma əməliyyatının nə etdiyinə diqqət yetirin: tunel müştəriləri şlüzün özündə heç bir xidmətə çata bilməz, o cümlədən onun LAN ünvanına bağlanmış DNS dinləyicisinə. Orada DNS yerləşdirmək atma əməliyyatından əvvəl qəsdən edilmiş istisna və yenidən işlənmiş icazə müqaviləsi tələb edir. Əgər UFW IPv6-nı idarə edirsə, tun0 üçün before6.rules faylında da uyğun atma qaydaları əlavə edin, çünki IPv4 təyinat siyahısı IPv6 paketləri barədə heç nə demir.
Önizləməni deyil, yüklənmiş siyasəti yoxlayın
Yenidən yükləməyə baxış keçirin, onu texniki xidmət pəncərəsində tətbiq edin və canlı qaydalar dəstini oxuyun.
sudo ufw --dry-run reload
sudo ufw show rawTunel qorumalarının standart vəziyyət və ICMP icazələrindən əvvəl görünməsini təsdiqləyin. Adi ufw status əl ilə redaktə edilmiş before qaydalarını göstərmir, buna görə operatorlar qaydanın çatışmadığı qənaətinə gəlir, halbuki o, əslində yüklənmişdir. Kobud siyahını fraqment axtarmaq əvəzinə yuxarıdan aşağı oxuyun. Əgər qorumalar vəziyyət icazəsindən sonra görünürsə, sərhəd faylın təklif etdiyini etmir.
Sonra mətni deyil, davranışı sınayın. İcazə verilmiş hosta yeni bağlantı açın və cavabı izləyin, zərərsiz bir sorğunu alt şəbəkədən kənar təyinataya yönəldin və öldüyünü təsdiqləyin, bərabər-bərabərə bağlantı yoxlayın, şlüzdə lokal xidmət yoxlayın və tələb olunmamış LAN-dan müştəriyə bağlantı yoxlayın. Dəyişiklikdən əvvəl mövcud olan bir əhatə xaricində axını daxil edin və maşının bütün izləmə cədvəlini boşaltmaq əvəzinə yalnız o axını təmizləyin.
Məhdudiyyətləri qaydaların yanında qeyd edin: bu tranziti məhdudlaşdırır, başqa heç nəyi yox. Müştərinin öz internet bağlantısını istifadə etməsinin qarşısını almır, icazə verilmiş LAN hostunun trafiki irəli ötürməsinin qarşısını almır və icazə verilmiş xidmətlər daxilində autentifikasiyanı əvəz etmir.