इस समस्या को हल करने के लिए आपको iptables और रूटिंग दोनों नियम सेट करने होंगे । आपके द्वारा सामना की जा रही विशिष्ट समस्या यह है कि आउटगोइंग एसएसएच पैकेट आपके ईथरनेट इंटरफेस के बजाय आपके अनाम वीपीएन टनल इंटरफेस के माध्यम से रूट किए जा रहे हैं। ऐसा इसलिए हो रहा है क्योंकि आपके वीपीएन सॉफ़्टवेयर ने सुरंग इंटरफ़ेस के माध्यम से किसी भी और सभी अखंडित ट्रैफ़िक भेजने के लिए एक रूटिंग नियम स्थापित किया है। अपने नेटवर्क ट्रैफ़िक को अज्ञात करने के लिए अच्छा है; आपके कंप्यूटर पर SSH कनेक्शन स्थापित करने के लिए बुरा है।
इस समस्या को ठीक करने के कुछ तरीके हैं, लेकिन मैं आपके साथ एक समान स्थिति में काम करने वाले को साझा करूंगा। यहाँ हमें क्या करना है:
- गैर-वीपीएन ट्रैफ़िक को संभालने के लिए एक नया आईपी नियम तालिका बनाएं
- एक विशिष्ट नेटफिल्टर मास्क के साथ चिह्नित किसी भी पैकेट के लिए हमारी नो-वीपीएन तालिका देखने के लिए एक आईपी नियम जोड़ें
- एक आईपी मार्ग जोड़ें जो सुरंग के बजाय आपके ईथरनेट इंटरफेस का उपयोग करने के लिए हमारे नो-वीपीएन तालिका में सभी ट्रैफ़िक को निर्देशित करता है
- एक iptables हमारे नामित नेटफिल्टर मुखौटा के साथ सब SSH यातायात चिह्नित करने के लिए शासन जोड़े
नोट: मैं निम्नलिखित करते हुए रास्पियन के साथ काम कर रहा था, इसलिए आपको अपने डिस्ट्रो को फिट करने के लिए कमांड को थोड़ा समायोजित करने की आवश्यकता हो सकती है।
एक नया आईपी नियम तालिका बनाना
Iproute2 की तालिका परिभाषा फ़ाइल का निरीक्षण करके शुरू करें। हम यह सुनिश्चित करना चाहते हैं कि हम किसी भी मौजूदा नियम तालिकाओं के नाम या संख्या का उपयोग न करें।
cat /etc/iproute2/rt_tables
आप इन पंक्तियों के साथ कुछ देखेंगे:
# reserved values
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
अपनी नई नियम तालिका के लिए एक मनमाना संख्या और नाम चुनें - ऊपर उपयोग की गई कोई भी चीज़। मैं novpn
इस उत्तर के शेष के लिए संख्या 201 और नाम का उपयोग करूंगा ।
एक परिभाषा को सीधे परिभाषा फ़ाइल में जोड़ें या अपनी पसंद के पाठ संपादक में संपादित करें:
echo "201 novpn" >> /etc/iproute2/rt_tables
एक नया आईपी नियम नहीं वीपीएन तालिका देखने के लिए जोड़े
किसी भी मौजूदा आईपी नियम की जाँच करें जो नेटफिल्टर मास्क से निपटते हैं:
ip rule show | grep fwmark
अगर grep कुछ भी नहीं बदलता है, तो आप स्पष्ट हैं। यदि यह कुछ पंक्तियों को प्रिंट करता है, तो fwmark
प्रत्येक पंक्ति में शब्द के दाईं ओर हेक्साडेसिमल संख्या पर ध्यान दें । आपको एक संख्या चुनने की आवश्यकता होगी जो वर्तमान में उपयोग में नहीं है। चूंकि मेरे पास कोई मौजूदा नियम नहीं थे, इसलिए मैंने 65 नंबर चुना।
ip rule add fwmark 65 table novpn
यह क्या करता है नेटफिल्टर मास्क 65 के साथ किसी भी पैकेट के कारण पैकेट के novpn
रूट के निर्देशों के लिए हमारी नई तालिका देखने के लिए।
ईथरनेट इंटरफ़ेस का उपयोग करने के लिए हमारी नई तालिका में सभी ट्रैफ़िक को निर्देशित करें
ip route add default via YOUR.GATEWAY.IP.HERE dev eth0 table novpn
यहां ध्यान देने योग्य बात है dev eth0
। यह सभी ट्रैफ़िक को मजबूर करता है जो novpn
टेबल के माध्यम से केवल हार्डवेयर ईथरनेट इंटरफ़ेस का उपयोग करता है, इसके बजाय वर्चुअल वीपीएन इंटरफ़ेस जो आपके वीपीएन बनाता है।
अब अपने आईपीआर कैश को फ्लश करने का एक अच्छा समय होगा, यह सुनिश्चित करने के लिए कि आपके नए नियम और मार्ग तत्काल प्रभाव लेते हैं:
ip route flush cache
निर्दिष्ट नेटफिल्टर मास्क के साथ सभी एसएसएच ट्रैफिक को चिह्नित करने के लिए फ़ायरवॉल नियम को निर्देश दें
iptables -t mangle -A OUTPUT -p tcp --sport 22 -j MARK --set-mark 65
किसी भी महान गहराई में समझाने के लिए मेरे लिए यहां बहुत सारे विकल्प हैं। मैं आपको दृढ़ता से प्रोत्साहित करता हूं कि iptables के लिए मैनुअल पेज को पढ़ने के लिए यहां क्या हो रहा है, इसकी भावना प्राप्त करें:
man iptables
संक्षेप में: हम फ़ायरवॉल के मेंटल टेबल (विशेष पैकेट हैंडलिंग के लिए) के लिए एक आउटपुट नियम जोड़ रहे हैं, जो हमारे निर्दिष्ट नेटफिल्टर मास्क 65 के साथ स्रोत पोर्ट 22 से उत्पन्न किसी भी टीसीपी पैकेट को चिह्नित करने का निर्देश देता है।
आगे क्या?
इस बिंदु पर, आपको एसएसएच का परीक्षण करने के लिए तैयार होना चाहिए। यदि सब ठीक हो जाता है, तो आपको "प्रांप्ट" के रूप में खुश "लॉगिन" के साथ मिलना चाहिए।
सुरक्षा के लिए, मेरा सुझाव है कि आप अपने फ़ायरवॉल को सुरंग इंटरफ़ेस से आने वाले किसी भी SSH अनुरोध को छोड़ने का निर्देश दें:
iptables -A INPUT -i tun0 -p tcp -m tcp --dport 22 -j DROP
ध्यान दें कि ऊपर दिए गए सभी निर्देश क्षणिक हैं (नियम तालिका आईडी के निर्माण को छोड़कर) - वे अगली बार जब आप अपने कंप्यूटर को पुनः आरंभ करेंगे, तो वे साफ़ हो जाएंगे। उन्हें स्थायी बनाना एक व्यायाम है जिसे मैं आपके पास छोड़ता हूं।