दुई OpenVPN प्याकेट मार्गका लागि Shorewall जोनहरू
इन्क्रिप्ट गरिएको OpenVPN यातायातलाई डिक्रिप्ट गरिएको क्लाइन्ट ट्राफिकबाट अलग गर्नुहोस्, टनेललाई आफ्नै जोन दिनुहोस् र क्लाइन्टलाई आवश्यक पर्ने एउटै सेवालाई मात्र अनुमति दिनुहोस्।
दुई प्याकेट प्रवाहहरू OpenVPN अन्त्य गर्ने Shorewall गेटवेबाट जान्छन्, र तीमध्ये एउटा मात्र इन्क्रिप्ट गरिएको छ। पहिलो इन्टरनेटतर्फको इन्टरफेसमा रहेको VPN श्रोतातर्फ क्लाइन्टको यातायात हो। दोस्रो टनेल इन्टरफेस छोड्ने डिक्रिप्ट गरिएको अनुरोध हो, जुन अफिस सर्भर वा गेटवेमा रहेको सेवातर्फ जान्छ। नीति सम्पादन गर्नुअघि दुवैलाई नक्सामा राख्नुहोस्, किनकि पहिलोलाई सन्तुष्ट पार्ने नियमले दोस्रोका लागि केही गर्दैन।
नीति सम्पादन गर्नुअघि दुवै प्रवाह कोर्नुहोस्
प्रवाहहरूलाई स्रोत, गन्तव्य, प्रोटोकल र पोर्टसहित पङ्क्तिका रूपमा लेख्नुहोस्। बाहिरी मार्गमा स्रोत क्लाइन्टको सार्वजनिक ठेगाना हो र गन्तव्य गेटवेको सुन्ने पोर्ट हो; Shorewall यसलाई इन्टरनेटबाट फायरवालतर्फ जाने ट्राफिक मान्छ। भित्री मार्गमा स्रोत टनेल ठेगाना दायरा हो र गन्तव्य स्वीकृत सेवा हो। एउटै प्रशासकले दुवै हेरे पनि दुई पङ्क्तिका मालिक फरक हुन्छन्।
| Flow | Zone relationship | What to constrain |
|---|---|---|
| Encrypted OpenVPN transport | Internet to the firewall host | The listener's actual protocol and port |
| Decrypted request to a LAN service | VPN clients to the LAN zone | One approved server and service |
| Decrypted request to the gateway | VPN clients to the firewall host | Only the local services required |
| Request to another VPN client | VPN clients to VPN clients | Denied unless deliberately required |
अनुरोध गेटवेमै सकिन्छ भने मात्र पङ्क्ति थप्नुहोस्, जस्तै रिजोल्भर वा व्यवस्थापन पहुँच। होस्टमा रहेको सेवाले फर्वार्ड गरिएको मार्ग होइन, होस्ट-इनपुट नीति पालना गर्छ। यी दुई मिसाउँदा नै साँघुरो टनेल नियमले व्यवस्थापन इन्टरफेस खुला गर्छ।
टनेल जोन र इन्टरफेसको दायरा तोक्नुहोस्
यात्रु जोन /etc/shorewall/zones मा घोषणा गरिन्छ, टनेल इन्टरफेस /etc/shorewall/interfaces मा जोडिन्छ, र बाहिरी जडान /etc/shorewall/tunnels मा वर्णन गरिन्छ। स्थापित संस्करणको सिन्ट्याक्ससँग मिलाउनुहोस्, किनकि स्तम्भ क्रम र विकल्पका नाम प्रमुख संस्करणहरूबीच बदलिएका छन्। मार्गदर्शिकाको उदाहरण पोर्ट डेमनले वास्तवमै सुन्ने पोर्टभन्दा फरक पोर्टलाई अनुमति दिने कारण होइन। संख्याहरू मिल्नुले मात्र TCP र UDP अदलबदलयोग्य हुँदैनन्।
मार्गदर्शिकाले इन्टरफेसहरूलाई tun+ ले समूहबद्ध गर्छ। एकभन्दा बढी टनेल भएको होस्टमा त्यो वाइल्डकार्डले फरक विश्वास स्तरको दोस्रो VPN त्यही जोनमा राख्न सक्छ। दायरालाई वास्तवमै रहेका इन्टरफेससँग तुलना गरी समीक्षा गर्नुहोस्, र इन्टरफेसका नाम हातले सम्पादन गर्नुको सट्टा नामकरणलाई जडान व्यवस्थापकको जीवनचक्रअन्तर्गत राख्नुहोस्।
ऐतिहासिक मार्गदर्शिकामा धेरै पुराना OpenVPN कन्फिगरेसन नमुनाहरू छन्, र यसको क्रिप्टो सल्लाह वर्तमान तैनाथीमा प्रतिलिपि गर्नु हुँदैन। यसको सट्टा जोन र प्रवाहको मोडेल सापटी लिनुहोस्। क्रिप्टोग्राफिक आधार गेटवेको मर्मत गरिएको OpenVPN नीतिबाट लिनुहोस्।
तपाईंले वर्गीकरण गरेको मार्गलाई मात्र अनुमति दिनुहोस्
VPN जोनबाट LAN सम्मको फराकिलो स्वीकृति सुरुवाती रेखाचित्र हो, पूर्ण नीति होइन। अनुमति दिइएको क्लाइन्ट स्रोत, सेवाको वास्तविक ठेगाना, प्रोटोकल र पोर्ट लेख्नुहोस्। त्यसपछि त्यसको माथिका नियमहरू र जोनको पूर्वनिर्धारित पढ्नुहोस्, किनकि साँघुरो थपाइले पहिले नै मिल्ने फराकिलो अनुमति रद्द गर्दैन। गेटवे होस्टतर्फको ट्राफिक त्यसबाट फर्वार्ड हुने ट्राफिकभन्दा छुट्टै सम्बन्ध हो।
क्लाइन्ट-देखि-क्लाइन्ट ट्राफिकलाई आफ्नै निर्णय चाहिन्छ। OpenVPN को client-to-client र Shorewall को routeback दुवैले क्लाइन्टहरू एकअर्कासम्म पुग्न सक्ने कुरामा असर गर्छन्, र एउटा LAN अनुप्रयोग चल्नका लागि मात्र कुनै पनि सक्षम गर्नु हुँदैन। परीक्षण गर्नुअघि अलगाव कहाँ लागू हुन्छ निर्णय गर्नुहोस्।
जवाफको मार्गलाई त्यही योजनामा राख्नुहोस्। सेवा वा यसको राउटरले ट्राफिक टनेल दायरामा कसरी फर्काउने भन्ने जान्नुपर्छ, वा डिजाइनले स्रोतलाई जानाजान र इच्छित दायराभित्र अनुवाद गर्नुपर्छ।
प्रमाणित गर्नुहोस्, त्यसपछि दुवै मार्ग प्रमाणित गर्नुहोस्
केही पनि पुनः सुरु गर्नुअघि कन्फिगरेसन प्रमाणित गर्नुहोस्, र नयाँ नीति गलत भएमा भनेर स्वतन्त्र प्रशासनिक सत्र खुला राख्नुहोस्।
shorewall check
सफा जाँचपछि कन्फिगरेसन लागू गर्नुहोस् र Shorewall ले के लोड गर्यो पढ्नुहोस्। यी पढाइहरूले फाइलले भनेजस्तो देखिने कुरा होइन, चलिरहेको नीति वर्णन गर्छन्।
shorewall show zones
ip route get 192.168.10.20
एउटै क्लाइन्टबाट एउटा नयाँ अनुमति दिइएको अनुरोध र एउटा जानाजान अस्वीकार गरिएको अनुरोध परीक्षण गर्नुहोस्। सफल OpenVPN ह्यान्डशेकले बाहिरी आदानप्रदान मात्र प्रमाणित गर्छ; अनुमति दिइएको सेवा र अस्वीकार गरिएको स्रोतले तपाईंले चाहेको भित्री नीति प्रमाणित गर्छन्। त्यसपछि क्लाइन्ट पुनः जोड्नुहोस् र दोहोर्याउनुहोस्, किनकि टनेल इन्टरफेसको नाम र ठेगाना सत्रहरूबीच बदलिन सक्छ। नतिजा फरक भए नियम फराकिलो पार्नुको सट्टा जोनको दायरा सुधार्नुहोस्।