VPN брандмауэр ілгегі неліктен бір ережені екі рет қосады
Қайта қосылу ілгегіңізді қайта іске қосуы мүмкін, сондықтан қажетті күйге жобалаңыз: меншікті тізбектер, кірістіру алдында тест, бір реттілікке келтірілген өзгеріс және тар бөлшектеу.
Ілгек бірінші рет жұмыс істейді, ал үш қайта қосылудан кейін тізбекте бір ереженің үш көшірмесі қалады. Ештеңе қатты сәтсіздікке ұшырамады; скрипт әр жүгірген сайын өзіне айтылғанды ғана жасады. VPN ілгегі бірнеше рет жүруі мүмкін конфигурация операциясы, сондықтан оған ие, қажетті күй және реттелген өзгеріс керек. Осы ретпен жүріңіз, көшірмелер тоқтайды.
Ереже жазбас бұрын оларға иесін беріңіз
Бір ереже жазбас бұрын бұл интеграция қай тізбекке немесе кестеге ие екенін шешіңіз. Ілгек жасайтын және тазалайтын жеке тізбек иеліктің ең айқын түрі, өйткені тазалау кейін сол тізбекті басқа біреудің саясатын қозғамай жоя алады. Ережелерді ортақ тізбекке қосуға тура келсе, оларды түсініктемемен белгілеңіз, кейінгі іздеу дәл сіздікін тапсын. Иелік бөлшектеуді қауіпсіз етеді, ал бөлшектеу — тыныш сәтсіздікке ұшырайтын бөлік.
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
Бұл жерде түсініктеме әшекей емес. Ол сіздің ережеңізді жою мен кездейсоқ ұқсас ережені жоюдың айырмашылығы, және ол сақталған ережелер жиынында қалады. Түсініктемені бір рет айнымалыға жазыңыз және қосатын, тексеретін немесе жоятын әрбір командада сол жолды пайдаланыңыз.
Қайта қосудың орнына қажетті күйді тексеріңіз
Туннель көтерілген кезде не болуы керегін жазыңыз: қандай интерфейстер, қандай көз және меже, қандай хаттама және қандай порт. Содан кейін әр ережені тест және одан кейінгі кірістіру түрінде өрнектеңіз, екінші жүгіру ережені тауып, ештеңе істемесін. Ереже бар кезде тексеру командасы нөлмен шығады, және бұл скриптке керек дәл сол сигнал. iptables анықтамасы осында қолданылатын тексеру, қосу және кірістіру нысандарын құжаттайды.
iptables -C VPN_HOOK -i tun0 -p tcp --dport 443 -j ACCEPT ||
iptables -A VPN_HOOK -i tun0 -p tcp --dport 443 -j ACCEPT
Орынға абай болыңыз. Ережені тексеріп, басына кірістіру бұрын бірінші келген әдейі қабылдамаудың алдына рұқсатты жылжытуы мүмкін, сондықтан екінші жүгіру ештеңе қоспаса да мінез-құлықты өзгертеді. Өз тізбегіңіздің ішінде соңына қосыңыз және ретті сол тізбекке секірудің орнымен басқарыңыз. Тізбектің ішінде рет маңызды болса, ереже-ереже жамаудың орнына белгілі тізімнен тізбекті қайта құрыңыз.
Қажет ережені тұрақты тест ретінде өрнектеу мүмкін болмаса, тоқтаңыз. Бұл әдетте қажетті күй әлі бұлыңғыр екенін білдіреді.
Ұстап тұрады деп үміттенудің орнына өзгерісті реттеңіз
Ілгектің екі шақыруы қабаттасуы мүмкін, және екеуі де біреуі қоспас бұрын ереженің жоқтығын көре алады. xtables күту опциясы команданы құлыпты күтуге мәжбүрлейді, бірақ екі команда бойынша тексеру-содан-қосу тізбегін атомды етпейді. Бүкіл операцияны өз құлыпыңызбен реттеңіз немесе жарияланған партияны бір транзакция ретінде қолданатын менеджерді пайдаланыңыз. nftables соңғысын жасай алады, және бұл ол қолжетімді хосттарда оны қалауға бір себеп.
flock /run/vpn-hook.lock /usr/local/sbin/vpn-firewall-apply
nft -f /etc/nftables/vpn-hook.nft
Қандай механизм таңдасаңыз да, маңызды бөлімді қысқа ұстаңыз және оны қайта кіруге болатындай етіңіз: жарты жолда сәтсіздікке ұшыраған ілгекті қайта жүргізу қауіпсіз болуы керек. Нәтижені журналға жазыңыз, қайталап жүргізу ережелер санынан болжалмай, журналда көрінсін. Егер екі түрлі қадағалаушы ілгекті шақыра алса, әуелі соны түзетіңіз; ешбір құлып екі иені түзетпейді.
Тек өзіңіздікін бөлшектеңіз
Бөлшектеу ауыстырушы қосылысты ол зейнетке шығарған қосылыстан ажыратуы керек және ешқашан ұқыпты тазарту алмайтын оқиғаға төзуі керек. Қосу үшін пайдаланған сол идентификаторлармен жойыңыз және тазартуды жеңілдету үшін ортақ тізбекті ешқашан босатпаңыз. Қатты тоқтағаннан кейін төменгі ілгек жүрді деп болжаудың орнына келесі іске қосуда сәйкестендіру өтуін жүргізіңіз.
iptables -D VPN_HOOK -i tun0 -p tcp --dport 443 -j ACCEPT
iptables -F VPN_HOOK
ip -brief link show type tun
Интерфейстің өмірлік циклі де жобаға жатады. Қайта қосылу басқа атаулы құрылғы жасауы мүмкін, сондықтан екінші туннель атауын қатаң бекіткен ереже әлі жарамды болып көрінсе де ескіреді. Қосылыстың өзі ашатын сәйкестікті таңдаңыз және әр жүгіруде оны қайта оқыңыз. Үш оқиғаны бөлек тексеріңіз: қайталанатын қосылыс, ауыстырушы қосылыс және өшіру. Рұқсат етілген трафик үшеуінен де көшірмесіз өтуі керек, ал байланыссыз қызметтер тиіспеген күйде қалуы керек.
Ілгектің иесі, қосатын әр ереже үшін тесті, бір реттелген жолы және тек өз күйін жоятын бөлшектеуі болғанда бұл жүріс аяқталады. Екі рет қауіпсіз жүретін ілгек бір рет ақылды ілгектен қымбат.