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
इन्टरफेसको आयु पनि डिजाइनको भाग हो। पुनः जडानले फरक नामको यन्त्र बनाउन सक्छ, त्यसैले दोस्रो सुरुङको नाम कडा रूपमा कोड गर्ने नियम वैध देखिँदै पुरानो हुन्छ। जडान आफैंले देखाउने पहिचानलाई प्राथमिकता दिनुहोस्, र हरेक पटक चल्दा त्यो फेरि पढ्नुहोस्। तीन घटनाहरू अलग-अलग परीक्षण गर्नुहोस्: दोहोरिएको जडान, प्रतिस्थापन जडान र बन्द हुने। अनुमत ट्राफिकले तीनवटै प्रतिलिपिबिना पार गर्नुपर्छ, र असम्बन्धित सेवाहरू अछुत रहनुपर्छ।
हुकसँग मालिक, यसले थप्ने हरेक नियमका लागि परीक्षण, एउटा क्रमबद्ध बाटो र आफ्नो अवस्था मात्र हटाउने टियरडाउन हुँदा यो यात्रा सकिन्छ। दुई पटक चलाउन सुरक्षित हुक एक पटक चतुर हुकभन्दा बढी मूल्यवान हुन्छ।