इस लेख में हम एक OpenVPN . की स्थापना और कॉन्फ़िगरेशन पर विचार करेंगे सर्वर Linux CentOS/RHEL (7/8) चला रहा है और दिखाता है कि कॉन्फ़िगर किए गए OpenVPN सर्वर का उपयोग करके NAT के पीछे दो दूरस्थ कंप्यूटर (या कार्यालय) को एक नेटवर्क में कैसे जोड़ा जाए। VPN क्लाइंट को प्रमाणपत्रों का उपयोग करके प्रमाणित किया जाएगा।
वीपीएन प्रौद्योगिकियों का एक समूह है जो सार्वजनिक नेटवर्क या इंटरनेट पर एक सुरक्षित नेटवर्क बनाने की अनुमति देता है। एक वीपीएन का उपयोग करके, आप विभिन्न उपकरणों या नेटवर्क को इंटरनेट पर एक ही सुरक्षित स्थानीय नेटवर्क से जोड़ सकते हैं।
ओपनवीपीएन ओपनएसएसएल पर आधारित वीपीएन तकनीक के ओपन सोर्स एसएसएल/टीएलएस-आधारित कार्यान्वयन में से एक है। OpenVPN का उपयोग करके, आप NAT डिवाइस के पीछे दूरस्थ कार्यालयों और व्यक्तिगत कंप्यूटर दोनों को एक ही नेटवर्क में जोड़ सकते हैं।
OpenVPN और Easy-RSA इंस्टॉल करें
पहले चरण में, आपको EPEL रिपॉजिटरी को कनेक्ट करना होगा और अपने होस्ट को अपडेट करना होगा:
# yum install epel-release -y
# yum update -y
सिस्टम के अपडेट होने के बाद, OpenVPN स्थापित करें और आसान-आरएसए यम पैकेज मैनेजर का उपयोग करना (वीपीएन सर्वर पर पीकेआई कुंजी बुनियादी ढांचे को लागू करने के लिए हमें इसकी आवश्यकता होगी)।
# yum install openvpn easy-rsa -y
आसान-आरएसए कैसे कॉन्फ़िगर करें और X.509 प्रमाणपत्र कैसे बनाएं?
सभी आसान-rsa को कॉपी करें /etc/openvpn/ . के लिए स्क्रिप्ट :
# cp -r /usr/share/easy-rsa /etc/openvpn/
/etc/openvpn/easy-rsa/3/ . पर जाएं और vars . बनाएं वहाँ फ़ाइल करें:
# cd /etc/openvpn/easy-rsa/3/
# nano vars
फ़ाइल सामग्री जोड़ें (आप अपनी आवश्यकताओं के अनुसार कॉन्फ़िगरेशन को संशोधित कर सकते हैं):
set_var EASYRSA "$ पीडब्ल्यूडी" EASYRSA_PKI set_var "$ EASYRSA / PKI" EASYRSA_DN set_var "cn_only" set_var EASYRSA_REQ_COUNTRY "डे" set_var EASYRSA_REQ_PROVINCE "MUN" set_var EASYRSA_REQ_CITY "द्वारा" set_var EASYRSA_REQ_ORG EASYRSA_REQ_EMAIL set_var "WOSHUB" "[email protected] "set_var EASYRSA_REQ_OU" आईटी विभाग "set_var EASYRSA_KEY_SIZE 4096set_var EASYRSA_ALGO rsaset_var EASYRSA_CA_EXPIRE 7500set_var EASYRSA_CERT_EXPIRE 3650set_var EASYRSA_NS_SUPPORT" नहीं "set_var EASYRSA_NS_COMMENT" प्रमाणपत्र प्राधिकारी "EASYRSA_EXT_DIR set_var" $ EASYRSA / X509-प्रकार "set_var EASYRSA_SSL_CONF" $ EASYRSA / openssl-1.0.cnf "set_var EASYRSA_DIGEST "sha512"
आप फ़ाइल में कोई भी डेटा निर्दिष्ट कर सकते हैं, यह सर्वर के कॉन्फ़िगरेशन और आगे के संचालन को प्रभावित नहीं करेगा।
फ़ाइल निष्पादन योग्य होनी चाहिए, इसलिए चलाएँ:
# chmod +x vars
OpenVPN प्रमाणपत्र और कुंजी जेनरेट करें
कुंजी बनाने से पहले, PKI . को इनिशियलाइज़ करें निर्देशिका बनाएं और एक CA . बनाएं key.# cd /etc/openvpn/easy-rsa/3/
# ./easyrsa init-pki
नोट:ईज़ी-आरएसए कॉन्फ़िगरेशन का उपयोग करके:./varsinit-pki पूर्ण; अब आप एक सीए या अनुरोध बना सकते हैं। आपका नया बनाया गया पीकेआई डीआईआर है:/etc/openvpn/easy-rsa/3/pki
एक CA बनाएं कुंजी:
# ./easyrsa build-ca
कमांड चलाने के बाद, आपको कुंजी और प्रमाणपत्र बनाने के लिए पासवर्ड दर्ज करना होगा। प्रमाणपत्रों पर हस्ताक्षर करने के लिए आपको बाद में पासवर्ड की आवश्यकता होगी।
सर्वर कुंजी बनाएं (सर्वर का नाम vpn.woshub.com . है ):
नोपास विकल्प पासवर्ड अक्षम करता है
# ./easyrsa gen-req vpn.woshub.com nopass
नोट:से आसान-आरएसए कॉन्फ़िगरेशन का उपयोग करना:./varsएसएसएल का उपयोग करना:ओपनएसएसएल ओपनएसएसएल 1.0.2k-fips 26 जनवरी 2017एक 4096 बिट आरएसए निजी कुंजी उत्पन्न करना ................. ........++ '/etc/openvpn/easy-rsa/3/pki/private/vpn.woshub.com.key.R4IYCbD1zP' में नई निजी कुंजी लिखना ----- आप करने वाले हैं जानकारी दर्ज करने के लिए कहा जा सकता है जिसे आपके प्रमाणपत्र अनुरोध में शामिल किया जाएगा। आप जो दर्ज करने जा रहे हैं उसे एक विशिष्ट नाम या डीएन कहा जाता है। काफी कुछ फ़ील्ड हैं लेकिन आप कुछ खाली छोड़ सकते हैं कुछ फ़ील्ड के लिए एक डिफ़ॉल्ट मान होगा ,यदि आप '.' दर्ज करते हैं, तो फ़ील्ड खाली छोड़ दी जाएगी.----- सामान्य नाम (जैसे:आपका उपयोगकर्ता, होस्ट, या सर्वर नाम) [vpn.woshub.com]:कीपेयर और प्रमाणपत्र अनुरोध पूरा हो गया है। आपकी फ़ाइलें हैं:req:/etc/openvpn/easy-rsa/3/pki/reqs/vpn.woshub.com.reqkey:/etc/openvpn/easy-rsa/3/pki/private/vpn.woshub.com। कुंजी
प्रमाणपत्र जारी करते समय, दर्ज करें press दबाएं सामान्य नाम कॉलम में.
हमारे CA प्रमाणपत्र का उपयोग करके vpn.woshub.com कुंजी पर हस्ताक्षर करें:
# ./easyrsa sign-req server vpn.woshub.com
प्रमाणपत्र पर हस्ताक्षर करने के लिए, हमें CA . जारी करते समय हमारे द्वारा सेट किए गए पासवर्ड की आवश्यकता होगी प्रमाणपत्र:
जैसा कि स्क्रीनशॉट में दिखाया गया है, आपको हां . दर्ज करना होगा और सीए पासवर्ड प्रक्रिया में है।
यह सुनिश्चित करने के लिए कि प्रमाण पत्र बिना किसी त्रुटि के उत्पन्न हुए हैं, यह कमांड चलाएँ:
# openssl verify -CAfile pki/ca.crt pki/issued/vpn.woshub.com.crt
pki/issued/vpn.woshub.com.crt:ठीक है
सभी OpenVPN सर्वर प्रमाणपत्र बना दिए गए हैं।
- रूट प्रमाणपत्र
pki/ca.crt
- निजी सर्वर कुंजी
pki/private/vpn.woshub.com.key
- सर्वर प्रमाणपत्र
pki/issued/vpn.woshub.com.crt
क्लाइंट कुंजी उत्पन्न करने के लिए, निम्न आदेश चलाएँ:
# ./easyrsa gen-req client_name nopass
आइए admin1 . उत्पन्न करें क्लाइंट कुंजी:# ./easyrsa gen-req admin1 nopass
नोट:ईज़ी-आरएसए कॉन्फ़िगरेशन का उपयोग करके:./varsSSL का उपयोग करना:ओपनएसएसएल ओपनएसएसएल 1.0.2k-fips 26 जनवरी 2017एक 4096 बिट आरएसए निजी कुंजी उत्पन्न करना .....++ नई निजी कुंजी लिखना '/etc/openvpn/easy-rsa/3/pki/private/admin1.key.R5OY6reT2e'----- आपसे वह जानकारी दर्ज करने के लिए कहा जाएगा जिसे आपके प्रमाणपत्र अनुरोध में शामिल किया जाएगा। आप क्या दर्ज करने जा रहे हैं जिसे विशिष्ट नाम या डीएन कहा जाता है। काफी कुछ फ़ील्ड हैं लेकिन आप कुछ खाली छोड़ सकते हैं कुछ फ़ील्ड के लिए एक डिफ़ॉल्ट मान होगा, यदि आप '.' दर्ज करते हैं, तो फ़ील्ड खाली छोड़ दी जाएगी।---- -सामान्य नाम (जैसे:आपका उपयोगकर्ता, होस्ट, या सर्वर का नाम) [admin1]:कीपेयर और प्रमाणपत्र अनुरोध पूरा हुआ। आपकी फ़ाइलें हैं:req:/etc/openvpn/easy-rsa/3/pki/reqs/admin1.reqkey:/etc/openvpn/easy-rsa/3/pki/private/admin1.key
आपको सर्वर कुंजी की तरह CA प्रमाणपत्र का उपयोग करके इस पर हस्ताक्षर करना होगा:
# ./easyrsa sign-req client admin1
उपयोगकर्ता के लिए प्रमाणपत्र बना दिया गया है।
इसके अतिरिक्त, आपको कुंजी विनिमय के लिए उपयोग करने के लिए एक डिफी-हेलमैन कुंजी उत्पन्न करनी होगी:
# ./easyrsa gen-dh
उत्पन्न होने में कुछ समय लगता है:
फिर एक TSL प्रमाणपत्र जेनरेट करें:
# openvpn --genkey --secret ta.key
यदि बाद में हम क्लाइंट प्रमाणपत्रों को निरस्त करने जा रहे हैं, तो हमें एक CRL कुंजी जेनरेट करनी होगी:
# ./easyrsa gen-crl
नोट:ईज़ी-आरएसए कॉन्फ़िगरेशन का उपयोग करके:./varsएसएसएल का उपयोग करना:ओपनएसएसएल ओपनएसएसएल 1.0.2k-fips 26 जनवरी 2017 /etc/openvpn/easy-rsa/3/pki/safessl-easyrsa.cnf से कॉन्फ़िगरेशन का उपयोग करना /etc/openvpn/easy-rsa/3/pki/private/ca.key:एक अद्यतन CRL बनाया गया है।CRL फ़ाइल:/etc/openvpn/easy-rsa/3/pki/crl.pem
किसी प्रमाणपत्र को निरस्त करने के लिए, यह आदेश चलाएँ:
./easyrsa revoke admin1
— जहां admin1 प्रमाणपत्र का नाम है
आवश्यक प्रमाण पत्र बनाए गए हैं। अब उन्हें कार्य निर्देशिका में कॉपी करें।
यहाँ सर्वर प्रमाणपत्र हैं:
# cp pki/ca.crt /etc/openvpn/server/
# cp pki/issued/vpn.woshub.com.crt /etc/openvpn/server/
# cp pki/private/vpn.woshub.com.key /etc/openvpn/server/
# cp pki/private/dh.pem /etc/openvpn/server/
# cp pki/private/ta.key /etc/openvpn/server/
# cp pki/crl.pem /etc/openvpn/server/
यहां क्लाइंट प्रमाणपत्र दिए गए हैं:
# cp pki/issued/admin1.crt /etc/openvpn/client/
# cp pki/private/admin1.key /etc/openvpn/client/
OpenVPN सर्वर कॉन्फ़िगरेशन फ़ाइल, फ़ायरवॉल नियम
आइए OpenVPN कॉन्फ़िगरेशन फ़ाइल की सेटिंग पर चलते हैं। सबसे पहले, अपनी OpenVPN कॉन्फ़िगरेशन फ़ाइल बनाएं server.conf :
# cd /etc/openvpn/ && nano server.conf
फ़ाइल की सामग्री को इस प्रकार बदलें:
# पोर्ट, प्रोटोकॉल और डिवाइसपोर्ट निर्दिष्ट करें 1194proto udpdev tun# सर्वर सर्टिफिकेट के लिए पथ निर्दिष्ट करेंca /etc/openvpn/server/ca.crtcert /etc/openvpn/server/vpn.woshub.com.crtkey /etc/openvpn /server/vpn.woshub.com.key# कुंजी CRL और DHdh के लिए पथ /etc/openvpn/server/dh.pemcrl-verify /etc/openvpn/server/crl.pem# नेटवर्क की IP सेटिंग्स निर्दिष्ट करें VPN क्लाइंट सर्वर से पते प्राप्त करें 10.1.2.0 255.255.255.0push "redirect-gateway def1"# असाइन किए गए DNS सर्वर को निर्दिष्ट करें "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" # एक ही के साथ विभिन्न क्लाइंट को कनेक्शन की अनुमति दें keyduplicate-cn# TLS सुरक्षाtls-auth /etc/openvpn/server/ta.key 0cipher AES-256-CBCtls-version-min 1.2tls-cipher TLS-DHE-RSA-with-AES-256-GCM-SHA384:TLS- DHE-RSA-with-AES-256-CBC-SHA256:TLS-DHE-RSA-with-AES-128-GCM-SHA256:TLS-DHE-RSA-with-AES-128-CBC-SHA256auth SHA512auth-nocache# अन्य कॉन्फ़िगरेशन विवरणरखें 20 60persist-keypersist-tuncomp-lzo yesdaemonuser कोई भी समूह कोई नहीं# करने के लिए पथ log filelog-append /var/log/openvpn.logverb 3
फिर फाइल को सेव करें। मैंने अपने वीपीएन सर्वर के लिए डिफ़ॉल्ट यूडीपी पोर्ट 1194 निर्दिष्ट किया है, लेकिन आप अपने ओपनवीपीएन के लिए अपने सर्वर पर कोई भी मुफ्त पोर्ट निर्दिष्ट कर सकते हैं।
अब आपको खंडों के बीच कनेक्शन और रूटिंग की अनुमति देने के लिए केवल फ़ायरवॉल नियम सेट करने होंगे।
यदि आप फायरवॉल का उपयोग कर रहे हैं, तो अग्रेषण को सक्रिय करें कर्नेल मॉड्यूल पहले:
# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
# sysctl -p
net.ipv4.ip_forward =1
openvpn सेवा को फ़ायरवॉल . में जोड़ें , और tun0 विश्वसनीय क्षेत्र के लिए इंटरफ़ेस:
# firewall-cmd --permanent --add-service=openvpn
# firewall-cmd --permanent --zone=trusted --add-interface=tun0
फ़ायरवॉल विश्वसनीय क्षेत्र के लिए 'MASQUERADE' सक्रिय करें:# firewall-cmd --permanent --zone=trusted --add-masquerade
NAT सक्रिय करें:
# firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.1.2.0/24 -o Server_IP -j MASQUERADE
# firewall-cmd –reload
# iptables -t nat -A POSTROUTING -s 10.1.2.0/24 -o eth0 -j MASQUERADE
# iptables -A INPUT -p udp –dport 1194 -j ACCEPT
# service iptables save
OpenVPN सेवा चलाएँ और इसे स्टार्टअप में जोड़ें:
# systemctl start openvpn@server
# systemctl enable openvpn@server
सुनिश्चित करें कि udp\1194 पोर्ट openvpn सेवा द्वारा सुन रहा है:
# lsof -i:1194
कमांड पीआईडी यूजर एफडी प्रकार डिवाइस आकार/बंद नोड नाम ओपनवीपीएन 12327 कोई नहीं 5u आईपीवी4 45122 0t0 यूडीपी *:ओपनवीपीएन
नेटवर्क इंटरफ़ेस की IP सेटिंग जांचें:
# ip a
जैसा कि आप देख सकते हैं, कॉन्फ़िगरेशन के दौरान निर्दिष्ट नेटवर्क को tun0 . में जोड़ा जाता है डिवाइस।
आपके OpenVPN को काम करने के लिए ये न्यूनतम सेटिंग्स हैं।
OpenVPN का उपयोग करके एकाधिक कार्यालयों (कंप्यूटर) को कैसे कनेक्ट करें?
आइए देखें कि NAT के माध्यम से इंटरनेट एक्सेस करने वाले दो दूरस्थ कंप्यूटरों से OpenVPN सर्वर से कैसे कनेक्ट करें और उन्हें एक ही नेटवर्क में शामिल करें। विंडोज़ चलाने वाले कंप्यूटर से ओपनवीपीएन सर्वर से कनेक्ट करने के लिए, मैं एक आधिकारिक क्लाइंट का उपयोग कर रहा हूं। आप इसे आधिकारिक वेबसाइट पर डाउनलोड कर सकते हैं, लेकिन हम इसका विस्तार से वर्णन नहीं करेंगे, और सीधे इसके कॉन्फ़िगरेशन पर जाएँगे।
क्लाइंट स्थापित करने के बाद, यहां कॉन्फ़िगरेशन फ़ाइल बनाने के लिए आगे बढ़ें:
C:\Program Files\OpenVPN\config\
मैंने क्लाइंट नाम से एक फ़ाइल बनाई है और उसमें निम्नलिखित सामग्री जोड़ी है:
क्लाइंटदेव ट्यूनप्रोटो udpremote 112.113.114.15 1194रिसोल्व-रीट्री इनफिनिटनोबाइंडब्लॉक-आउट-डीएनएसपर्सिस्ट-कीपर्सिस्ट-टुनम्यूट-रीप्ले-चेतावनीरिमोट-सर्टिफिकेट-टीएलएस सर्वरटीएलएस-क्लाइंटौथ SHA512tls-auth "C:\\Program Files\\OpenVPN\\OpenVPN\ ta.key" 1remote-cert-eku "TLS वेब सर्वर प्रमाणीकरण"ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"cert "C:\\Program Files\\OpenVPN\\config\ \admin1.crt"key "C:\\Program Files\\OpenVPN\\config\\admin1.key" सिफर AES-256-CBCcomp-lzoverb 3
इसे कॉन्फ़िगर करने के लिए, हमें पहले बनाए गए क्लाइंट, सुरक्षा और सर्वर प्रमाणपत्र की आवश्यकता होगी। आपको उन्हें अपने सर्वर से डाउनलोड करना होगा और स्थानीय फ़ोल्डर में रखना होगा। फिर OpenVPN क्लाइंट कॉन्फ़िगरेशन फ़ाइल में उनके लिए पथ निर्दिष्ट करें।
फिर आप ट्रे में OpenVPN आइकन पर क्लिक करके सर्वर से जुड़ सकते हैं:
मैंने कनेक्ट किया है और अपने डिवाइस के लिए निम्न IP पता प्राप्त किया है:
<पूर्व>आईपीवी4 पता। . . . . . . . . . . . :10.1.2.14 सबनेट मास्क। . . . . . . . . . :255.255.255.0NAT के पीछे दूसरे कंप्यूटर पर, मैंने वही क्रियाएँ कीं और दूसरे उपयोगकर्ता के लिए पहले से एक प्रमाणपत्र बनाया। कनेक्ट करने के बाद, दूसरे पीसी को भी वीपीएन नेटवर्क से एक आईपी एड्रेस मिला:
<पूर्व>आईपीवी4 पता। . . . . . . . . . . . :10.1.2.16 सबनेट मास्क। . . . . . . . . . :255.255.255.0कनेक्ट होने के बाद दोनों कंप्यूटर एक ही नेटवर्क में होते हैं और एक दूसरे को देखते हैं।
दूसरा पीसी पिंग करें:
10.1.2.16 को 32 बाइट्स डेटा के साथ पिंग करना:10.1.2.16 से उत्तर दें:बाइट्स=32 समय=73ms TTL=127
पहले पीसी पर पिंग करें:
32 बाइट्स डेटा के साथ 10.1.2.14 पिंग करना:10.1.2.14 से उत्तर दें:बाइट्स=32 समय=79ms TTL=127
दोनों कनेक्टेड वीपीएन क्लाइंट पैकेट भेज सकते हैं और सीधे एक दूसरे को फाइल ट्रांसफर कर सकते हैं। इस प्रकार, हम देश के विभिन्न स्थानों में भौतिक रूप से स्थित दो उपकरणों को एक ही स्थानीय नेटवर्क में जोड़ सकते हैं।
आप अपने OpenVPN सर्वर पर उपयोगकर्ताओं के लिए कितनी भी कुंजियाँ या प्रमाणपत्र बना सकते हैं। यदि आपको नए प्रमाणपत्र की आवश्यकता है, तो इन आदेशों को /etc/openvpn/easy-rsa/3:
. के लिए चलाएँ
# ./easyrsa gen-req clientname nopass
# ./easyrsa sign-req client clientname
यदि क्लाइंट प्रमाणपत्रों का उपयोग आपके नेटवर्क को सुरक्षित रखने के लिए नहीं किया जाता है, तो उन्हें निरस्त करना न भूलें।