VPN firewall qarmağı eyni qaydanı niyə iki dəfə əlavə edir
Yenidən qoşulma qarmağınızı yenidən işlədə bilər, ona görə istənilən vəziyyət üçün dizayn edin: sahibi olan zəncirlər, əlavədən əvvəl sınaq, bir ardıcıl dəyişiklik və dar sökülmə.
Qarmaq ilk dəfə işləyir, üç yenidən qoşulmadan sonra isə zəncirdə eyni qaydanın üç nüsxəsi olur. Heç nə ucadan uğursuz olmadı; skript hər işə düşəndə sadəcə ona deyiləni etdi. VPN qarmağı birdən çox işləyə bilən konfiqurasiya əməliyyatıdır, ona görə ona sahib, istənilən vəziyyət və ardıcıllaşdırılmış dəyişiklik lazımdır. Bu sıra ilə getsəniz, təkrarlar dayanır.
Qaydaları yazmazdan əvvəl onlara sahib təyin edin
Bir qayda yazmazdan əvvəl bu inteqrasiyanın hansı zəncirə və ya cədvələ sahib olduğunu müəyyən edin. Qarmağın yaratdığı və təmizlədiyi ayrıca zəncir sahibliyin ən aydın formasıdır, çünki təmizlik sonra başqasının siyasətinə toxunmadan həmin zənciri silə bilər. Qaydaları ortaq zəncirə əlavə etmək məcburiyyətindəsinizsə, onları şərh ilə işarələyin ki, sonrakı axtarış məhz sizinkini tapsın. Sahiblik sökülməni təhlükəsiz edir, sökülmə isə səssizcə uğursuz olan hissədir.
iptables -N VPN_HOOK 2>/dev/null || true
iptables -C INPUT -j VPN_HOOK 2>/dev/null || iptables -I INPUT -j VPN_HOOK
iptables -S VPN_HOOK
Şərh burada bəzək deyil. O, öz qaydanızı silməklə təsadüfən oxşar görünən qaydanı silmək arasındakı fərqdir və saxlanılan qaydalar dəstində qalır. Şərhi bir dəfə dəyişəndə yazın və əlavə edən, sınayan və ya silən hər əmrdə eyni sətri istifadə edin.
Yenidən əlavə etmək əvəzinə istənilən vəziyyəti sınayın
Tunel qalxanda nəyin mövcud olmalı olduğunu yazın: hansı interfeyslər, hansı mənbə və təyinat, hansı protokol və hansı port. Sonra hər qaydanı sınaqdan və ardınca əlavədən ibarət kimi ifadə edin ki, ikinci işə düşmə qaydanı tapsın və heç nə etməsin. Yoxlama əmri qayda mövcud olduqda sıfırla çıxır və bu, skriptin ehtiyac duyduğu siqnaldır. iptables istinadı burada istifadə olunan yoxlama, əlavə etmə və daxiletmə formalarını sənədləşdirir.
iptables -C VPN_HOOK -i tun0 -p tcp --dport 443 -j ACCEPT ||
iptables -A VPN_HOOK -i tun0 -p tcp --dport 443 -j ACCEPT
Mövqeyə diqqət edin. Bir qaydanı yoxlayıb başa daxil etmək əvvəl gələn qəsdən imtinadan əvvələ bir icazəni keçirə bilər, buna görə ikinci işə düşmə heç nə əlavə etməsə də davranışı dəyişir. Öz zəncirinizin içində əlavə edin və sıralamanı həmin zəncirə keçidin yerinə görə idarə edin. Sıralama zəncirin içində vacibdirsə, zənciri qayda-qayda yamaq əvəzinə məlum siyahıdan yenidən qurun.
Lazım olan qayda sabit sınaq kimi ifadə edilə bilmirsə, dayanın. Bu, adətən istənilən vəziyyətin hələ qeyri-müəyyən olduğunu bildirir.
Dözəcəyini ümid etmək əvəzinə dəyişikliyi ardıcıllaşdırın
İki qarmaq çağırışı üst-üstə düşə bilər və hər ikisi qayda hələ əlavə olunmamışdan əvvəl onun olmadığını görə bilər. xtables-in gözləmə seçimi əmri kilid üçün gözlədir, lakin sınaq-sonra-əlavə ardıcıllığını iki əmr boyunca atomik etmir. Bütün əməliyyatı öz kilidinizlə ardıcıllaşdırın və ya elan edilmiş dəsti bir tranzaksiya kimi tətbiq edən idarəedicidən istifadə edin. nftables sonuncunu bacarır və bu, onu mövcud olduğu hostlarda üstün tutmağın bir səbəbidir.
flock /run/vpn-hook.lock /usr/local/sbin/vpn-firewall-apply
nft -f /etc/nftables/vpn-hook.nft
Hansı mexanizmi seçsəniz də, kritik bölməni qısa saxlayın və onu təkrar daxil edilə bilən edin: yarı yolda uğursuz olan qarmaq yenidən işə salına bilməlidir. Nəticəni qeydə alın ki, təkrar işə düşmə qayda sayından çıxarılmadan jurnalda görünsün. İki fərqli nəzarətçi qarmağı çağıra bilirsə, əvvəlcə bunu düzəldin; heç bir kilid iki sahibi təmir etmir.
Yalnız sizə məxsus olanı sökün
Sökülmə əvəzedici bağlantını əvəz etdiyi bağlantıdan ayırmalı və heç vaxt səliqəli təmizlik almayan hadisəyə dözməlidir. Əlavə etmək üçün istifadə etdiyiniz eyni identifikatorlarla silin və təmizliyi sadələşdirmək üçün heç vaxt ortaq zənciri təmizləməyin. Sərt dayanmadan sonra, aşağı qarmağının işlədiyini fərz etmək əvəzinə növbəti başlanğıcda uzlaşma keçidi işlədin.
iptables -D VPN_HOOK -i tun0 -p tcp --dport 443 -j ACCEPT
iptables -F VPN_HOOK
ip -brief link show type tun
İnterfeysin ömrü də dizayna aiddir. Yenidən qoşulma fərqli adlı cihaz yarada bilər, ona görə ikinci tunelin adını bərkidən qayda hələ də etibarlı görünərkən köhnəlir. Bağlantının özünün açdığı kimliyə üstünlük verin və hər işə düşmədə onu yenidən oxuyun. Üç hadisəni ayrı-ayrılıqda sınayın: təkrar qoşulma, əvəzedici qoşulma və söndürmə. İcazə verilən trafik üçünü də təkrarsız keçməli, əlaqəsiz xidmətlər isə toxunulmaz qalmalıdır.
Gəzinti qarmağın sahibi, əlavə etdiyi hər qayda üçün sınağı, bir ardıcıl yol və yalnız öz vəziyyətini silən sökülməsi olduqda bitir. İki dəfə təhlükəsiz işləyən qarmaq bir dəfə ağıllı olan qarmaqdan daha dəyərlidir.