मेरे पास कुछ महीने पहले सटीक सवाल है, लेकिन इसके अलावा, अगर संभव हो तो मैं एक आईपीवी 6 कनेक्शन लेना चाहता था। आपको सर्वरफॉल्ट पर मेरे सवालों में दिलचस्पी हो सकती है:
उपयोग के लिए मेरे सर्वर पर मेरे पास केवल एक एनआईसी ("नेटवर्क इंटरफ़ेस") था। मेरे सेटअप में, NetworkManager पर्याप्त नहीं था क्योंकि मुझे IPv6 का समर्थन करने के लिए एक कस्टम स्क्रिप्ट चलाने की आवश्यकता है। हालाँकि सादगी के लिए, मैं यहाँ NetworkManager का उपयोग करूंगा और IPv6 समर्थन को छोड़ दूंगा।
सबसे पहले, प्रमाणीकरण विधि पर निर्णय लें। मैं सुरक्षित प्रमाणपत्र विधि का उपयोग करूंगा जो एसएसएल की तरह काम करता है: हैंडशेक के दौरान एक सामान्य रहस्य चुना जाता है जिसका उपयोग सत्र के लिए किया जाएगा। अन्य विधियाँ एक साझा कुंजी हैं; एक उपयोगकर्ता नाम और पासवर्ड।
सर्वर
1. तैयारी
सबसे पहले, Openvpn सर्वर स्थापित करें। यह जितना आसान है sudo apt-get install openvpn
। मुश्किल हिस्सा इसे कॉन्फ़िगर कर रहा है। कॉन्फ़िगरेशन में मौजूद है /etc/openvpn
।
2. प्रमाणन कॉन्फ़िगर करें
सर्वर को स्वयं और उसके ग्राहकों की पहचान के लिए प्रमाणपत्र की आवश्यकता होती है। ये प्रमाणपत्र एक सीए (सामान्य प्राधिकरण) से प्राप्त किए जाते हैं। प्रमाण पत्र और संबंधित निजी कुंजी का निर्माण किसी भी मशीन पर किया जा सकता है, इसे सर्वर पर करने की आवश्यकता नहीं है। यदि आप वास्तव में पागल हैं, तो आपको इसे एक मशीन पर करना चाहिए जो नेटवर्क से कनेक्ट नहीं है, और प्रमाणपत्रों को स्थानांतरित करने के लिए मेमोरी स्टिक का उपयोग करें।
सर्वर के लिए एक CA और प्रमाण पत्र बनाएँ
यह कदम एक बार करना होगा जब तक कि आपके सीए की निजी कुंजी से समझौता न हो जाए। उस स्थिति में, वैध प्रमाण पत्र बनाए जा सकते हैं जो सर्वर द्वारा स्वीकार किए जाएंगे, जिसके परिणामस्वरूप सुरक्षा भंग होगी।
आधिकारिक दस्तावेज में प्रशासन ऐसा करने के लिए सुझाव देते हैं /etc/openvpn
। मैं सब कुछ रूट के रूप में चलाने का बहुत बड़ा प्रशंसक नहीं हूं, इसलिए मैं इसे एक अलग निर्देशिका में रखूंगा।
प्रशासन निर्देशिका बनाएं और इसमें फ़ाइलों को चलाकर कॉपी करें:
mkdir ~/openvpn-admin
cd ~/openvpn-admin
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/ ./easy-rsa
cd easy-rsa
- डिफॉल्ट
vars
को आवश्यकतानुसार संपादित करें , उदाहरण के लिए सेटिंग KEY_SIZE=2048
क्योंकि आप पागल हैं।
चरों को लोड करें और चलाकर मुख्य निर्देशिका बनाएं:
. vars
यदि आपको कोई त्रुटि मिलती है , तो No ... openssl.cnf file could be found
Further invocations will fail
चलाएं ln -s openssl-1.0.0.cnf openssl.cnf
, फिर . vars
से।
यदि यह आपका पहली बार CA का उपयोग कर रहा है, तो कुंजियों का वातावरण तैयार करें। है न यह आदेश चला अगर आप अपने पूर्व में बने सीए बनाए रखना चाहते हैं ऐसा करने के लिए आपको एक नया तैनात करना होगा ca.crt
।
./clean-all
- निष्पादित करके CA बनाएँ
./build-ca
। आप अपनी इच्छानुसार कोई भी विवरण भर सकते हैं, लेकिन ध्यान दें कि क्लाइंट के सर्वर से कनेक्ट होने पर यह जानकारी लॉग फाइलों में दिखाई देगी। यह फ़ाइलें ca.key
और ca.crt
सबफ़ोल्डर में बनाएगा keys
। ca.key
फ़ाइल को सभी परिस्थितियों में गुप्त रखें । ऐसा करने में विफलता किसी भी व्यक्ति को आपके सर्वर से कनेक्ट करने की अनुमति देगी।
- यदि आपके पास एक पिछला प्रमाण पत्र है जो खो गया है या समाप्त हो गया है, तो आपको पहले वाले पुराने को रद्द करना होगा
./revoke-full server
। अन्यथा आपको डेटाबेस त्रुटि मिलती है।
सर्वर के लिए सर्टिफिकेट बनाकर चलाएं:
./build-key-server server
जब आपसे पासवर्ड मांगा जाता है, तो इसे तब तक खाली छोड़ दें जब तक कि आप हर बार सर्वर शुरू होने (अनुशंसित नहीं) पासवर्ड दर्ज करने को तैयार न हों। प्रमाण पत्र पर हस्ताक्षर करने और इसे करने की पुष्टि करें। दो नई फाइलें निर्देशिका में दिखाई देंगी keys
: server.key
और server.crt
।
DH और उपयोग tls- कोर के लिए तैयार करते हैं
उपयोग करके डिफी-हेलमैन पैरामीटर उत्पन्न करें :
./build-dh
प्रति सख्त युक्तियाँ , उपयोग करें tls-auth
। उसके लिए, साझा-गुप्त कुंजी का उपयोग करके उत्पन्न करें:
openvpn --genkey --secret ta.key
परिणामी फ़ाइल ( ta.key
) ग्राहकों को भी वितरित की जानी चाहिए, लेकिन आपको इसे सार्वजनिक रूप से नहीं रखना चाहिए।
ग्राहकों के लिए प्रमाण पत्र बनाएँ
प्रत्येक ग्राहक के लिए, इन चरणों को दोहराया जाना चाहिए:
वह निर्देशिका दर्ज करें जिसमें आपने अपना CA और सर्वर प्रमाणपत्र बनाया है:
cd ~/openvpn-admin/easy-rsa
यदि आपने CA निर्माण कदम को छोड़ दिया है क्योंकि आप पहले से ही एक हैं, तो आपको पहले चर लोड करने की आवश्यकता है:
. vars
- यदि आप नए प्रमाण पत्र बना रहे हैं क्योंकि पुराने खो गए हैं या समाप्त हो गए हैं , तो आपको पहले वाले पुराने को फिर से शुरू करना होगा
./revoke-full you
। अन्यथा आपको डेटाबेस त्रुटि मिलती है।
क्लाइंट सर्टिफिकेट you.key
और उसके संबंधित सर्टिफिकेट बनाएं you.crt
:
./build-key you
CommonName
अद्वितीय होना चाहिए। यदि आप KDE का उपयोग कर रहे हैं तो पासवर्ड को खाली छोड़ दें क्योंकि यह 10.10 तक समर्थित नहीं है। सर्वर सर्टिफिकेशन जेनरेशन की तरह, सर्टिफिकेट पर हस्ताक्षर करने और बदलाव करने की पुष्टि करें।
3. OpenVPN सेवा सेटअप करें
डिफ़ॉल्ट रूप से, OpenVPN कनेक्शन स्वीकार करते समय रूट के रूप में चलता है। एक अच्छा विचार नहीं है अगर सेवा दुष्ट इंटरनेट से उपलब्ध है।
OpenVPN के लिए एक समर्पित उपयोगकर्ता बनाएँ, कहते हैं openvpn
:
sudo useradd openvpn
फ़ाइलों की प्रतिलिपि server.key
, server.crt
, ca.crt
और dh1024.pem
(या dh2048.pem
आप कुंजी आकार बदल दिया हो) में कुंजी निर्देशिका से /etc/openvpn
। 400 की अनुमति (केवल मालिक के लिए पढ़ें) ठीक है।
sudo cp ~/openvpn-admin/easy-rsa/keys/{server.key,server.crt,ca.crt,dh*.pem} /etc/openvpn
sudo chmod 400 /etc/openvpn/{server.key,server.crt,ca.crt}
फ़ाइल ta.key
को भी कॉपी करें :
sudo cp ~/openvpn-admin/easy-rsa/ta.key /etc/openvpn
sudo chmod 400 /etc/openvpn/ta.key
फ़ाइल बनाएं /etc/openvpn/server.conf
और अगली पंक्तियाँ इसमें डालें:
proto udp
dev tap
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
ifconfig-pool-persist ipp.txt
keepalive 10 120
tls-auth ta.key 0
# Compress data to save bandwidth
comp-lzo
user openvpn
group openvpn
persist-key
persist-tun
# Logs are useful for debugging
log-append openvpn-log
verb 3
mute 10
उस पर उपयुक्त अनुमतियाँ सेट करें, इसे गुप्त रखने की आवश्यकता नहीं है, लेकिन मुझे कॉन्फ़िगरेशन विवरण लीक नहीं करना पसंद है:
sudo chmod 640 /etc/openvpn/server.conf
4. सर्वर को खत्म करना
यदि आपने सर्वर पर प्रमाण पत्र बनाए हैं, तो इसे एन्क्रिप्ट करना या सर्वर को बंद करना एक अच्छा विचार है। किसी भी मामले में, खोना नहीं है ca.key
और server.key
। पहले मामले में अन्य आपके सर्वर से कनेक्ट करने में सक्षम होंगे। उत्तरार्द्ध में, एक MITM संभव है।
ग्राहक
सर्वर आईपी पते के अलावा, सर्वर व्यवस्थापक को निम्नलिखित फाइलें सौंपनी चाहिए:
ca.crt
: प्रमाण पत्रों के सत्यापन के लिए
server.crt
: सर्वर को सत्यापित करने और इसके साथ संचार करने के लिए
ta.key
: सुरक्षा सख्त करने के लिए
you.crt
: सर्वर से खुद की पहचान करना
you.key
: यह आपके पासवर्ड की तरह है, फ़ाइल अनुमतियाँ 400 होनी चाहिए (केवल स्वामी के लिए पढ़ें)
1. स्थापना
OpenVPN और NetworkManager प्लगइन स्थापित करें (KDE और सूक्ति के लिए उपयुक्त):
sudo apt-get install openvpn network-manager-openvpn
network-manager-openvpn
ब्रह्मांड भंडार में है।
2. विन्यास
नियंत्रण कक्ष में, निम्नलिखित विवरणों का उपयोग करें:
- गेटवे: सर्वर आईपी एड्रेस
- प्रकार: "प्रमाणपत्र (TLS)" (सूक्ति) या "X.509 प्रमाणपत्र" (KDE)
- CA प्रमाणपत्र: पथ को
ca.crt
- उपयोगकर्ता प्रमाणपत्र: पथ को
you.crt
- निजी कुंजी: पथ को
you.key
पर उन्नत :
- गेटवे पोर्ट: स्वचालित (1194) (बदलने की आवश्यकता नहीं है)
- LZO डेटा कम्प्रेशन का उपयोग करें: सक्षम
- टीसीपी कनेक्शन का उपयोग करें: अक्षम
- TAP डिवाइस का उपयोग करें: सक्षम
- सिफर: डिफ़ॉल्ट
- HMAC प्रमाणीकरण: डिफ़ॉल्ट
- टीएलएस-प्रमाणीकरण का उपयोग करें: सक्षम
कुंजी फ़ाइल पथ को निर्दिष्ट करें ta.key
और "कुंजी दिशा" को सेट करें 1
।
- ( टूडू - इसे चेक करना ) सर्वर डिफ़ॉल्ट गेटवे को धक्का देता है ताकि सभी ट्रैफ़िक वीपीएन कनेक्शन पर चला जाए। पिछली बार जब मैंने जाँच की, तो नेटवर्क-मैनेजर-ओपनवैप प्लगइन ने ऐसा नहीं किया।
यदि आप NetworkManager को काम नहीं करवा पा रहे हैं या इसका उपयोग नहीं करना चाहते हैं, तो फ़ाइल ( ca.crt
, ...) डालें /etc/openvpn
और फ़ाइल /etc/openvpn/client.conf
फ़ाइल बनाएँ :
client
dev tap
proto udp
# replace 1.2.3.4 by your server IP
remote 1.2.3.4 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert you.crt
key you.key
ns-cert-type server
tls-auth ta.key 1
comp-lzo
user nobody
group nogroup
verb 3
mute 20
यदि आप बूट समय पर इस वीपीएन को सक्षम नहीं करना चाहते हैं, /etc/default/openvpn
तो अगली पंक्ति को हटाकर संपादित करें और इसे अनकम्प्लीट करें #
:
#AUTOSTART="none"
इस कनेक्शन को शुरू करने के लिए, दौड़ें:
sudo /etc/init.d/openvpn start client
client
यदि आपकी कॉन्फ़िगरेशन फ़ाइल का नाम नहीं है, तो उसका नाम बदला जाना चाहिए client.conf
। उदाहरण: यदि आपने अपनी कॉन्फ़िगरेशन फ़ाइल को नाम दिया है safe.conf
, तो आपको चलाने की आवश्यकता है sudo /etc/init.d/openvpn start safe
।
OpenVPN को रोकने के लिए, आपको दौड़ना होगा:
sudo /etc/init.d/openvpn stop