OpenVPN : VPN सर्वर कॉन्फ़िगर करें2024/07/19 |
वर्चुअल प्राइवेट नेटवर्क को कॉन्फ़िगर करने के लिए OpenVPN इंस्टॉल करें।
यह उदाहरण निम्न प्रकार से पर्यावरण पर आधारित है।
OpenVPN सर्वर/क्लाइंट की सेटिंग्स द्वारा, [tun] इंटरफ़ेस स्वचालित रूप से कॉन्फ़िगर किया जाएगा और क्लाइंट से सर्वर पर VPN से कनेक्ट होने पर, क्लाइंट सर्वर के स्थानीय नेटवर्क तक पहुंच सकता है।
इस उदाहरण पर, इसे राउटर पर भी आईपी मास्करेडिंग सेट करने की आवश्यकता है।
+----------------------+ | [ OpenVPN Server ] |172.16.100.1 | dlp.srv.world +--------+ | |tun | +-----------+----------+ | enp1s0|10.0.0.30 | | | | Local Network | 10.0.0.1| | +------+-----+ | -------| Router |-------------|----- +------+-----+ | | | | Internet | --------------+-------------------|----- | | | Local Network | 192.168.0.30| | +-----------+----------+ | | |tun | | VPN Client +--------+ | |172.16.100.x +----------------------+ |
[1] | OpenVPN इंस्टॉल करें। |
root@dlp:~# apt -y install openvpn easy-rsa iptables
|
[2] | सीए और सर्टिफिकेट बनाएं। |
root@dlp:~#
cd /usr/share/easy-rsa
# इनिशियलाइज़ root@dlp:/usr/share/easy-rsa# ./easyrsa init-pki Notice ------ 'init-pki' complete; you may now create a CA or requests. Your newly created PKI dir is: * /usr/share/easy-rsa/pki Using Easy-RSA configuration: * undefined # सीए बनाएं root@dlp:/usr/share/easy-rsa# ./easyrsa build-ca No Easy-RSA 'vars' configuration file exists! Using SSL: * openssl OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024) # कोई भी पास-फ़्रेज़ सेट करें Enter New CA Key Passphrase: Re-Enter New CA Key Passphrase: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- # कोई भी नाम सेट करें Common Name (eg: your user, host, or server name) [Easy-RSA CA]:Server-CA Notice ------ CA creation complete. Your new CA certificate is at: * /usr/share/easy-rsa/pki/ca.crt # सर्वर प्रमाणपत्र बनाएं # [server1] नाम के लिए कोई भी नाम ठीक है # (यह सेर्ट्स या commonName के फ़ाइल नाम के लिए सेट है) root@dlp:/usr/share/easy-rsa# ./easyrsa build-server-full server1 nopass No Easy-RSA 'vars' configuration file exists! Using SSL: * openssl OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024) Notice ------ Private-Key and Public-Certificate-Request files created. Your files are: * req: /usr/share/easy-rsa/pki/reqs/server1.req * key: /usr/share/easy-rsa/pki/private/server1.key You are about to sign the following certificate: Request subject, to be signed as a server certificate for '825' days: subject= commonName = server1 Type the word 'yes' to continue, or any other input to abort. Confirm request details: yes Using configuration from /usr/share/easy-rsa/pki/openssl-easyrsa.cnf # सीए पर पास-फ़्रेज़ सेट के साथ उत्तर दें Enter pass phrase for /usr/share/easy-rsa/pki/private/ca.key: Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows commonName :ASN.1 12:'server1' Certificate is to be certified until Oct 22 03:49:15 2026 GMT (825 days) Write out database with 1 new entries Database updated Notice ------ Certificate created at: * /usr/share/easy-rsa/pki/issued/server1.crt Notice ------ Inline file created: * /usr/share/easy-rsa/pki/inline/server1.inline # ग्राहक प्रमाणपत्र बनाएं # [client1] नाम के लिए कोई भी नाम ठीक है # (यह सेर्ट्स या commonName के फ़ाइल नाम के लिए सेट है) root@dlp:/usr/share/easy-rsa# ./easyrsa build-client-full client1 nopass No Easy-RSA 'vars' configuration file exists! Using SSL: * openssl OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024) Notice ------ Private-Key and Public-Certificate-Request files created. Your files are: * req: /usr/share/easy-rsa/pki/reqs/client1.req * key: /usr/share/easy-rsa/pki/private/client1.key You are about to sign the following certificate: Request subject, to be signed as a client certificate for '825' days: subject= commonName = client1 Type the word 'yes' to continue, or any other input to abort. Confirm request details: yes Using configuration from /usr/share/easy-rsa/pki/openssl-easyrsa.cnf # सीए पर पास-फ़्रेज़ सेट के साथ उत्तर दें Enter pass phrase for /usr/share/easy-rsa/pki/private/ca.key: Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows commonName :ASN.1 12:'client1' Certificate is to be certified until Oct 22 03:52:33 2026 GMT (825 days) Write out database with 1 new entries Database updated Notice ------ Certificate created at: * /usr/share/easy-rsa/pki/issued/client1.crt Notice ------ Inline file created: * /usr/share/easy-rsa/pki/inline/client1.inline # Diffie Hellman (DH) पैरामीटर उत्पन्न करें root@dlp:/usr/share/easy-rsa# ./easyrsa gen-dh No Easy-RSA 'vars' configuration file exists! Using SSL: * openssl OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024) Generating DH parameters, 2048 bit long safe prime DH parameters appear to be ok. Notice ------ DH parameters of size 2048 created at: * /usr/share/easy-rsa/pki/dh.pem # TLS-Auth कुंजी बनाएं root@dlp:/usr/share/easy-rsa# openvpn --genkey secret ./pki/ta.key
# उत्पन्न प्रमाणपत्रों की प्रतिलिपि बनाएँ root@dlp:/usr/share/easy-rsa# cp -pR /usr/share/easy-rsa/pki/{issued,private,ca.crt,dh.pem,ta.key} /etc/openvpn/server/ |
[3] | OpenVPN कॉन्फ़िगर करें. यह पर्यावरण पर आधारित Firewalld राउटिंग नियमों का उपयोग करने के कारण चल रहा है। |
# नमूना कॉन्फ़िगरेशन की प्रतिलिपि बनाएँ root@dlp:~# cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/server/
root@dlp:~#
vi /etc/openvpn/server/server.conf # पंक्ति 32 : यदि आवश्यकता हो तो बदलें (OpenVPN का श्रवण पोर्ट) port 1194 # पंक्ति 35 : यदि आवश्यकता हो तो बदलें (इस उदाहरण पर udp का उपयोग करें) ;proto tcp proto udp # पंक्ति 53 : यदि आवश्यकता हो तो बदलें (इस उदाहरण पर tun का उपयोग करें) ;dev tap dev tun # पंक्ति 78 : प्रमाणपत्र निर्दिष्ट करें ca ca.crt cert issued/server1.crt key private/server1.key
# पंक्ति 85 : DH फ़ाइल निर्दिष्ट करें dh dh.pem
# पंक्ति 101 : VPN पर उपयोग किए जाने वाले नेटवर्क को निर्दिष्ट करें # आपके स्थानीय नेटवर्क को छोड़कर कोई भी नेटवर्क ठीक है server 172.16.100.0 255.255.255.0
# पंक्ति 142 : टिप्पणी हटाएँ और अपने स्थानीय नेटवर्क में बदलें push "route 10.0.0.0 255.255.255.0 "
# पंक्ति 231 : रख-रखाव सेटिंग्स keepalive 10 120 # पंक्ति 244 : TLS-Auth कुंजी निर्दिष्ट करें tls-auth ta.key 0
# पंक्ति 281 : persist विकल्प सक्षम करें persist-key persist-tun # पंक्ति 306 : लॉग स्तर निर्दिष्ट करें (0 - 9, 9 का अर्थ है डिबग स्तर) verb 3
root@dlp:~#
vi /etc/openvpn/server/add-bridge.sh # नया निर्माण #!/bin/bash # नेटवर्क इंटरफ़ेस जो स्थानीय नेटवर्क से जुड़ सकता है IF=enp1s0 # इंटरफ़ेस VPN सुरंग का उपयोग करता है # इस उदाहरण के मामले में जैसे कॉन्फ़िगरेशन पर [tun] निर्दिष्ट करना, आम तौर पर यह पैरामीटर [tun0] है VPNIF=tun0 echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A FORWARD -i ${VPNIF} -j ACCEPT iptables -t nat -A POSTROUTING -o ${IF} -j MASQUERADE
root@dlp:~#
vi /etc/openvpn/server/remove-bridge.sh # नया निर्माण #!/bin/bash # नेटवर्क इंटरफ़ेस जो स्थानीय नेटवर्क से जुड़ सकता है IF=enp1s0 # इंटरफ़ेस VPN सुरंग का उपयोग करता है # इस उदाहरण के मामले में जैसे कॉन्फ़िगरेशन पर [tun] निर्दिष्ट करना, आम तौर पर यह पैरामीटर [tun0] है VPNIF=tun0 echo 0 > /proc/sys/net/ipv4/ip_forward iptables -D FORWARD -i ${VPNIF} -j ACCEPT iptables -t nat -D POSTROUTING -o ${IF} -j MASQUERADE chmod 700 /etc/openvpn/server/{add-bridge.sh,remove-bridge.sh}
root@dlp:~#
systemctl edit openvpn-server@server
# निम्नलिखित पंक्तियां जोड़ें
[Service]
ExecStartPost=/etc/openvpn/server/add-bridge.sh
ExecStopPost=/etc/openvpn/server/remove-bridge.sh
systemctl enable --now openvpn-server@server |
[4] |
आपके द्वारा जेनरेट किए गए क्लाइंट होस्ट के लिए स्थानांतरण प्रमाणपत्र आपके द्वारा VPN से जुड़ना चाहते हैं।
VPN सर्वर सेटिंग्स के लिए यह सब ठीक है।
* /etc/openvpn/server/ca.crt
* /etc/openvpn/server/ta.key * /etc/openvpn/server/issued/client1.crt * /etc/openvpn/server/private/client1.key |
Sponsored Link |
|