Ubuntu 22.04
Sponsored Link

OpenVPN : VPN सर्वर कॉन्फ़िगर करें2023/09/22

 
वर्चुअल प्राइवेट नेटवर्क को कॉन्फ़िगर करने के लिए OpenVPN इंस्टॉल करें।
यह उदाहरण निम्न प्रकार से पर्यावरण पर आधारित है।
OpenVPN सर्वर/क्लाइंट की सेटिंग्स द्वारा, [tun] इंटरफ़ेस स्वचालित रूप से कॉन्फ़िगर किया जाएगा और क्लाइंट से सर्वर पर VPN से कनेक्ट होने पर, क्लाइंट सर्वर के स्थानीय नेटवर्क तक पहुंच सकता है।
इस उदाहरण पर, इसे राउटर पर भी आईपी मास्करेडिंग सेट करने की आवश्यकता है।
  +----------------------+
  | [  OpenVPN Server  ] |192.168.100.1
  |    dlp.srv.world     +--------+
  |                      |tun     |
  +-----------+----------+        |
        enp1s0|10.0.0.29          |
              |                   |
              |  Local Network    |
      10.0.0.1|                   |
       +------+-----+             |
-------|   Router   |-------------|-----
       +------+-----+             |
              |                   |
              |  Internet         |
--------------+-------------------|-----
              |                   |
              |  Local Network    |
 192.168.0.100|                   |
  +-----------+----------+        |
  |                      |tun     |
  |      VPN Client      +--------+
  |                      |192.168.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


init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /usr/share/easy-rsa/pki

# सीए बनाएं

root@dlp:/usr/share/easy-rsa#
./easyrsa build-ca

Using SSL: openssl OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)

# कोई भी पास-फ़्रेज़ सेट करें
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

CA creation complete and you may now import and sign cert requests.
Your new CA certificate file for publishing is at:
/usr/share/easy-rsa/pki/ca.crt

# सर्वर प्रमाणपत्र बनाएं
# [server1] नाम के लिए कोई भी नाम ठीक है
# (यह सेर्ट्स या commonName के फ़ाइल नाम के लिए सेट है)

root@dlp:/usr/share/easy-rsa#
./easyrsa build-server-full server1 nopass

Using SSL: openssl OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
-----
Using configuration from /usr/share/easy-rsa/pki/easy-rsa-13326.kydt6J/tmp.eOEtJh
# सीए पर पास-फ़्रेज़ सेट के साथ उत्तर दें
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 Dec 17 01:08:30 2024 GMT (825 days)

Write out database with 1 new entries
Data Base Updated

# ग्राहक प्रमाणपत्र बनाएं
# [client1] नाम के लिए कोई भी नाम ठीक है
# (यह सेर्ट्स या commonName के फ़ाइल नाम के लिए सेट है)

root@dlp:/usr/share/easy-rsa#
./easyrsa build-client-full client1 nopass

Using SSL: openssl OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
-----
Using configuration from /usr/share/easy-rsa/pki/easy-rsa-13401.AiWFf5/tmp.PDf2HE
# सीए पर पास-फ़्रेज़ सेट के साथ उत्तर दें
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 Dec 26 05:18:02 2023 GMT (825 days)

Write out database with 1 new entries
Data Base Updated

# Diffie Hellman (DH) पैरामीटर उत्पन्न करें

root@dlp:/usr/share/easy-rsa#
./easyrsa gen-dh

Using SSL: openssl OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
Generating DH parameters, 2048 bit long safe prime

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
192.168.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

root@dlp:~#
chmod 700 /etc/openvpn/server/{add-bridge.sh,remove-bridge.sh}

root@dlp:~#
vi /lib/systemd/system/openvpn-server@.service
# [Service] अनुभाग में जोड़ें

[Service]
.....
.....
ExecStartPost=/etc/openvpn/server/add-bridge.sh
ExecStopPost=/etc/openvpn/server/remove-bridge.sh

root@dlp:~#
systemctl daemon-reload

root@dlp:~#
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
मिलान सामग्री