Anonim

यह 2017 है, और वीपीएन का उपयोग करना एक बिना दिमाग वाला हो गया है। बाहरी गोपनीयता चिंताओं और आपके खुद के आईएसपी को आपके ब्राउज़िंग इतिहास को बेचने में सक्षम होने के भार के बीच, वास्तव में एक का उपयोग नहीं करने का कोई औचित्य नहीं है।

ज़रूर, आप सैकड़ों वीपीएन सेवाओं में से एक का भुगतान कर सकते हैं, लेकिन एक बार फिर, आप अपने डेटा के साथ किसी और पर भरोसा कर रहे हैं। अधिकांश महान हैं, वास्तव में, लेकिन यदि आप पूर्ण नियंत्रण चाहते हैं, तो आप वी वीर्टुअल पी रिनेट एस वीवर (वीपीएस) पर अपना वीपीएन बना सकते हैं या अपने निजी सर्वर को किराए पर ले सकते हैं, अगर आपको ऐसा लगता है कि वास्तव में इसके साथ कट्टर हैं।

वीपीएन बनाने के लिए आपको जो कुछ चाहिए वह है ओपन सोर्स ओपन वीपीएन सॉफ्टवेयर और लिनक्स (या बीएसडी)। कॉन्फ़िगरेशन को शामिल किया जा सकता है, लेकिन उबंटू जैसे वितरण पर खींचने के लिए बुनियादी लिनक्स कौशल वाले किसी व्यक्ति के साथ यह असंभव नहीं है।

इस गाइड के लिए, आपको उबंटू चलाने वाले वीपीएस की आवश्यकता होगी। आप DigitalOcean या Linode जैसे किसी व्यक्ति से बहुत आसानी से चुन सकते हैं। स्थापित करने के लिए उनके बुनियादी सुरक्षा गाइड का पालन करें। सुनिश्चित करें कि आप SSH पर रूट एक्सेस की अनुमति देने जैसी बुनियादी गलतियाँ नहीं करते हैं।

इसके अलावा, ध्यान रखें कि आप SSH के ऊपर कमांड लाइन में इस पूरे सेटअप को अपने VPS में करने जा रहे हैं। लिनक्स ज्ञान पर एक पागल राशि की आवश्यकता नहीं है, लेकिन क्लिक करने के बजाय टाइप करने के लिए तैयार रहें।

आपको क्या चाहिए

त्वरित सम्पक

  • आपको क्या चाहिए
  • फ़ायरवॉल सेट करें
    • इंटरफ़ेस खोजें
    • Iptables मूल बातें
    • अपने नियम निर्धारित करें
      • लूपबैक
      • पिंग
      • SSH
      • OpenVPN
      • डीएनएस
      • HTTP / एस
      • एनटीपी
      • TUN
      • लॉगिंग
      • सब कुछ अस्वीकार
      • नट मश्केडिंग
    • आगे IPv4 ट्रैफ़िक
    • सभी IPv6 कनेक्शन बंद करें
    • आयात और Iptables के लिए सहेजें

उबंटू संकुल और OpenVPN को अपनी रिपॉजिटरी में वितरित करता है। इसे स्थापित करने के लिए आपको केवल apt का उपयोग करना होगा। आपको एन्क्रिप्शन कुंजी बनाने के लिए भी उपकरण की आवश्यकता होगी। उन दोनों को स्थापित करें।

$ sudo apt स्थापित ओपनवीपीएन आसान-आरसा

फ़ायरवॉल सेट करें

इसके बाद, आपको फ़ायरवॉल की देखभाल करने की आवश्यकता है। यह आपके वीपीएन को सुरक्षित रखने और डेटा रिसाव और अवांछित पहुंच दोनों को रोकने में एक महत्वपूर्ण हिस्सा है।

Iptables Linux के लिए मुख्य फ़ायरवॉल है, और यह Ubuntu के बंदरगाहों तक पहुंच को नियंत्रित करने के लिए आपका सबसे अच्छा विकल्प है। आपने पहले ही इसे स्थापित कर लिया है, इसलिए आप अपने फ़ायरवॉल नियमों को स्थापित करना शुरू कर सकते हैं।

इंटरफ़ेस खोजें

इससे पहले कि आप iptables में नियम लिखना शुरू करें, यह पता करें कि आपका सर्वर इंटरनेट से किस इंटरफेस से जुड़ा है। अपने नेटवर्क इंटरफेस को प्रदर्शित करने के लिए ifconfig चलाएं। एक जिसमें इनएट एड्रैस है: आप जिस आईपी पते से जुड़े हैं, उसका मिलान सही इंटरफेस है।

Iptables मूल बातें

यह आमतौर पर इंटरनेट से चीजों को बेतरतीब ढंग से कॉपी और पेस्ट करने के लिए एक अच्छा विचार नहीं है। यह विशेष रूप से सच है जब आप सुरक्षा विषयों के साथ काम कर रहे हैं। इसलिए, कुछ समय के लिए iptables नियमों के बारे में जानने के लिए यहां कुछ समय निकाल लें।

Iptables नियम के इस उदाहरण पर एक नज़र डालें।

-एक INPUT -i eth0 -p tcp -m स्टेट -स्टेट इस्टैब्लिशड -sport 443 -j ACCEPT

ठीक है, इसलिए- इसका मतलब है कि आप एक नया नियम लागू करने जा रहे हैं। तब INPUT का अर्थ है कि यह आपके सर्वर पर इनपुट की चिंता करेगा। एक OUTPUT भी है। -I ध्वज iptables बताता है कि यह नियम किस इंटरफ़ेस के लिए है। आप निर्दिष्ट कर सकते हैं कि कौन सा प्रोटोकॉल नियम -p के साथ है। यह नियम tcp को संभालता है। -म एक शर्त निर्दिष्ट करता है कि एक कनेक्शन को पूरा करना होगा। इस मामले में यह उस राज्य से मेल खाना चाहिए जो निर्दिष्ट है। बेशक, तब-स्टेट एक राज्य निर्दिष्ट करता है, इस मामले में एक स्थापित कनेक्शन। अगला भाग iptables बताता है कि यह नियम किस पोर्ट के लिए है। यह पोर्ट 443, HTTPS पोर्ट है, यहाँ। आखिरी झंडा है -जे। यह "कूद" के लिए खड़ा है, और यह iptables बताता है कि कनेक्शन के साथ क्या करना है। यदि यह कनेक्शन नियम में सभी आवश्यकताओं को पूरा करता है, तो iptables इसे स्वीकार करेगा।

अपने नियम निर्धारित करें

तो, आपके पास एक सामान्य विचार होना चाहिए कि iptables नियम अब कैसे काम करते हैं। इस खंड के बाकी हिस्से आपको बताएंगे कि कैसे अपने नियम को टुकड़ा द्वारा निर्धारित किया जाए।

Iptables नियमों का एक सेट बनाने का सबसे अच्छा तरीका उन सभी के साथ एक फ़ाइल बनाना है। फिर, आप इसे एक साथ iptables में आयात कर सकते हैं। एक-एक करके नियमों को सेट करना भ्रमित हो सकता है, खासकर यदि आप स्क्रैच से नियमों का एक नया सेट शुरू कर रहे हैं।

अपने नियम बनाने के लिए / tmp निर्देशिका में एक फ़ाइल बनाएँ।

$ vim / tmp / ipv4

उस फ़ाइल को * फ़िल्टर के साथ शुरू करें। यह iptables को बताता है कि पैकेट फ़िल्टरिंग के लिए कौन से नियम हैं।

लूपबैक

नियमों का पहला खंड लूपबैक इंटरफ़ेस को बंद कर देता है। वे iptables को बताते हैं कि सर्वर को लूपबैक इंटरफेस पर खुद से ट्रैफिक स्वीकार करना चाहिए। यह स्वयं से आने वाले ट्रैफ़िक को भी अस्वीकार कर देना चाहिए जो लूपबैक से नहीं आता है।

-एक INPUT -i लो -j ACCEPT -एक INPUT! -आई लो -s 127.0.0.0/8 -j REJECT -A OUTPUT -o lo -j ACCEPT

पिंग

अगला, पिंग की अनुमति दें। आपको यह सुनिश्चित करने के लिए अपने सर्वर को पिंग करने में सक्षम होना चाहिए कि यह अन्यथा अप्राप्य है या नहीं। इस मामले में, केवल इको अनुरोधों की अनुमति है, और सर्वर खुद को आईसीएमपी आउटपुट भेजने की अनुमति देगा।

-एक INPUT -p icmp -m स्थिति - नया -icmp-type 8 -j ACCEPT -एक INPUT -p icmp -m राज्य --state स्थापित, संबंधित -j ACCEPT-एक OUTPUT -p icmp -j ACCEPT

SSH

आपको SSH की आवश्यकता है। यही एकमात्र तरीका है कि आप अपने सर्वर तक पहुंच सकते हैं। SSH नियम आपके इंटरनेट इंटरफ़ेस के लिए विशिष्ट हैं, इसलिए सुनिश्चित करें कि आप अपने सर्वर को वास्तव में उपयोग कर रहे इंटरफ़ेस के लिए eth0 को स्थानापन्न करते हैं।

पोर्ट 22 से अपने SSH कनेक्शन को बदलना भी एक अच्छा विचार हो सकता है, क्योंकि यह डिफ़ॉल्ट है कि संभावित हमलावर कोशिश करेंगे। यदि आप ऐसा करते हैं, तो इसे अपने iptables नियमों में भी बदलना सुनिश्चित करें।

-एक INPUT -i eth0 -p tcp -m राज्य --state NEW, ESTABLISHED --dport 22 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m राज्य --state स्थापित -sport 22 -j ACCEPT

OpenVPN

यह अगला टुकड़ा UDP पर OpenVPN सर्वर से ट्रैफ़िक की अनुमति देता है।

-एक INPUT -i eth0 -p udp -m राज्य --state NEW, ESTABLISHED --dport 1194 -j ACCEPT -A OUTPUT -o eth0 -p udp -m राज्य --store स्थापित -9411 -j ACCEPT

डीएनएस

अब, UDP और TCP पर DNS कनेक्शन की अनुमति दें। आप चाहते हैं कि आपका वीपीएन DNS को संभाल सके, न कि आपका आईएसपी। इस कारण से आप पहले स्थान पर एक वीपीएन स्थापित कर रहे हैं।

-एक INPUT -i eth0 -p udp -m राज्य --state ESTABLISHED --sport 53 -j ACCEPT -एक OUTPUT -o eth0 -p udp -m राज्य --state NEW, ESTUTLISHED --dport 53 -j ACCEPT -A INPUT -i eth0 -p tcp -m राज्य --state ESTABLISHED --sport 53 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m अवस्था - नया, ESTABISHED --dport 53 -j ACCEPT

HTTP / एस

उबंटू खुद को अपडेट करने में सक्षम होने के लिए, आपको HTTP और HTTPS के आउटगोइंग कनेक्शन की अनुमति देने के लिए नियमों का एक सेट जोड़ने की आवश्यकता है। ध्यान दें कि ये नियम केवल सर्वर को HTTP कनेक्शन शुरू करने की अनुमति देते हैं, इसलिए आप इसे वेब सर्वर के रूप में उपयोग नहीं कर सकते हैं या इसे पोर्ट 80 या पोर्ट 443 पर कनेक्ट कर सकते हैं

-एक INPUT -i eth0 -p tcp -m राज्य --state ESTABLISHED --sport 80 -j ACCEPT -एक INPUT -i eth0 -p tcp -m राज्य --state ESTABLISHED -sport 443 -j ACCEPT -A-OUTPUT - o eth0 -p tcp -m अवस्था - नया, ESTABLISHED --dport 80 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m राज्य - मंच नया, ESTABLISHED -dport 443 -j ACCEPT

एनटीपी

अपने सर्वर की घड़ी को ठीक से चलाने के लिए, आपको NTP की आवश्यकता होगी। NTP आपके सर्वर को दुनिया भर के टाइमवेर्स के साथ सिंक्रनाइज़ करने की अनुमति देता है। आपके सर्वर पर गलत घड़ी होने से कनेक्शन समस्याएँ हो सकती हैं, इसलिए NTP चलाना एक अच्छा विचार है। एक बार फिर, आपको केवल आउटगोइंग और पहले से स्थापित कनेक्शन को स्वीकार करना चाहिए।

-एक INPUT -i eth0 -p udp -m राज्य --state ESTABLISHED --sport 123 -j ACCEPT -एक OUTPUT -o eth0 -p udp -m राज्य --state NEW, ESTUTLISHED --dport 123 -j ACCEPT

TUN

TUN इंटरफ़ेस को खोलें जो टनल ट्रैफ़िक के लिए OpenVPN का उपयोग करता है।

-एक INPUT- आई tun0 -j ACCEPT -एक FORWARD -i tun0 -j ACCEPT -A OUTPUT -o tun0 -j ACCEPT

आपको वीपीएन के लिए अपने नियमित इंटरफ़ेस पर TUN को ट्रैफ़िक अग्रेषित करने की अनुमति देने की आवश्यकता है। आपको OpenVPN कॉन्फ़िगरेशन में वह IP पता मिलेगा। यदि आप इसे कॉन्फ़िगरेशन में बदलते हैं, तो इसे अपने नियमों में भी बदल दें।

-एक FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -j ACCEPT -एक FORWARD -m राज्य --स्टेट इस्टैब्लिश्ड, संबंधित -j ACCEPT

लॉगिंग

यह सब कुछ है कि iptables द्वारा खारिज कर दिया जाता है के लॉग रखने के लिए एक अच्छा विचार है। इस मामले में, इसका मतलब है कि इनमें से कोई भी नियम फिट नहीं है। लॉग्स आपको देखते हैं कि क्या कोई दुर्भावनापूर्ण गतिविधि है या आपके सर्वर के खिलाफ कुछ भी करने की कोई भी कोशिश है।

-एक INPUT -m सीमा - 3 / मिनट -j लॉग-प्री-उपसर्ग "iptables_INPUT_denied:" -log-स्तर 4
एक फॉरवर्ड -m सीमा - 3 / मिनट -j लॉग-प्री-उपसर्ग "iptables_FORWARD_denied:" -log-स्तर 4
-आउट-मी-सीमा-3 / मिनट -j लॉग-लॉग-उपसर्ग "iptables_OUTPUT_denied:" -log-स्तर 4

सब कुछ अस्वीकार

अंत में, आपको कुछ भी ब्लॉक करने की आवश्यकता है जो आपके नियमों में फिट नहीं है। यह वास्तव में पहली जगह में एक फ़ायरवॉल होने का उद्देश्य है।

-एक INPUT -J REJECT -A FORWARD -j REJECT -A OUTPUT -j REJECT

सभी नियमों को लागू करने के लिए iptables बताने के लिए COMMIT वाली फ़ाइल को बंद करें।

नट मश्केडिंग

आपको वीपीएन से कनेक्शन की आवश्यकता है जैसे कि वे सर्वर से ही आ रहे हैं। इस टुकड़े को नियमित iptables फ़ाइल में शामिल नहीं किया जा सकता क्योंकि यह एक अलग तालिका का उपयोग करता है। यह ठीक है, हालांकि, यह सिर्फ एक पंक्ति है।

$ sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASERERADE

आगे IPv4 ट्रैफ़िक

आपको IPv4 ट्रैफ़िक को अग्रेषित करने में सक्षम करने की आवश्यकता है, इसलिए यह वीपीएन और आपके सर्वर के वास्तविक नेटवर्क इंटरफ़ेस के बीच से गुजर सकता है। /Etc/sysctl.d/99-sysctl.conf सूडो के साथ खोलें।

नीचे दी गई लाइन का पता लगाएं और # को हटाकर इसे अनलाइक करें।

net.ipv4.ip_forward = 1

सभी IPv6 कनेक्शन बंद करें

क्षमा करें, आप अभी तक iptables के साथ नहीं किए गए हैं। आपको सभी IPv6 ट्रैफ़िक को ब्लॉक करना होगा। यह OpenVPN सर्वर केवल IPv4 का समर्थन करेगा, जो ठीक है, क्योंकि आप ऐसी स्थिति में नहीं जा रहे हैं, जहाँ आपको IPv6 की आवश्यकता है। नतीजतन, कोई भी आईपीवी 6 कनेक्शन संभावित रूप से जानकारी को लीक कर सकता है, जो कि वीपीएन का उपयोग करते समय आप क्या चाहते हैं, इसके विपरीत है।

Iptables के लिए नियम निर्धारित करने से पहले, आपको सिस्टम पर हर जगह IPv6 को अक्षम करना होगा।

निम्नलिखित पंक्तियों को /etc/sysctl.d/99-sysctl.conf में जोड़ें। यदि आपने इसे पिछले अनुभाग से बंद कर दिया है, तो इसे सूडो के साथ फिर से खोलें।

net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 net.ipv6.conf.eth0.disable_ipv6 = 1

अपने परिवर्तनों को सक्रिय करें।

$ सुडो sysctl -p

IPv6 लाइनों के सभी को / etc / मेजबान में टिप्पणी करें। आप यहाँ भी sudo की जरूरत जा रहे हैं

# :: 1 IP6-लोकलहोस्ट ip6-loopback # fe00 :: 0 ip6-localnet # ff00 :: 0 ip6-mcastprefix # ff02 :: 1 ip6-allnodes # ff02 :: 2% 6-allrouters

अंत में, आप IPv6 iptables नियम लिख सकते हैं। / Tmp / ipv6 पर उनके लिए एक फ़ाइल बनाएँ।

* फ़िल्टर करें- INJUT -J REJECT-FOR FORARD -j REJECT -A OUTPUT -j REJECT COMMIT

देखो, वे सरल हैं। सब कुछ अस्वीकार।

आयात और Iptables के लिए सहेजें

आपको कुछ भी करने के लिए उन नियमों को आयात करने की आवश्यकता है। तो, अब ऐसा करने का समय आ गया है।

बाकी सब कुछ साफ करके शुरू करें। आप किसी भी पुराने नियमों को नहीं चाहते हैं।

$ sudo iptables -F && sudo iptables -X

अपने IPv4 और IPv6 दोनों नियमों को आयात करें।

$ sudo iptables-Restore </ tmp / ipv4 $ sudo ip6tables-Restore </ tmp / ipv6

आप शायद फिर कभी ऐसा नहीं करना चाहेंगे। इसलिए, आपको अपने नियमों को स्थायी रूप से सहेजने के लिए एक नए पैकेज की आवश्यकता होगी।

$ sudo उपयुक्त स्थापित iptables- लगातार

स्थापना के दौरान, पैकेज आपको अपने मौजूदा नियमों को बचाने के लिए कहेगा। उत्तर "हाँ।"

यदि आप बाद में परिवर्तन करते हैं, तो आप अपने सहेजे गए कॉन्फ़िगरेशन भी अपडेट कर सकते हैं।

$ सुडो सेवा नेटफिल्टर-लगातार बचत

इसमें कुछ समय लगा, लेकिन आपका फ़ायरवॉल जाने के लिए तैयार है। अगले पृष्ठ पर, हम आवश्यक एन्क्रिप्शन कुंजी बनाने से निपटने जा रहे हैं।

यहां क्लिक करें: अगला पेज

सभी vpns के बारे में: कैसे अपने vpn को ओपनवीपीएन (भाग 3) के साथ सेटअप करें