आजकल, VPN प्रविधि धेरै लोकप्रिय हुँदै गइरहेको छ। साधारण प्रयोगकर्ताहरूले सुरक्षित रूपमा इन्टरनेट पहुँच गर्न VPN प्रयोग गर्छन्। यसले स्थानीय रूपमा अवरुद्ध वेबसाइटहरू र सेवाहरू वरिपरि जान र सम्भावित बाह्य दुर्भावनापूर्ण व्यवहारबाट जोगाउन पनि मद्दत गर्दछ। जब तपाईं VPN सर्भरमा जडान गर्दै हुनुहुन्छ, तपाईंको कम्प्युटर र सर्भर बीच एक सुरक्षित सुरुङ हुन्छ जुन बाहिरबाट पहुँच गर्न सकिँदैन, त्यसैले VPN सर्भर तपाईंको इन्टरनेट पहुँच बिन्दु बन्छ। त्यहाँ धेरै VPN सेवाहरू छन्, नि:शुल्क र सशुल्क दुवै, तर यदि तिनीहरूले कुनै कारणले तपाईंको लागि काम गर्दैनन् भने, तपाईं सधैं आफ्नो VPN सर्भर कन्फिगर गर्न सक्नुहुन्छ।
आफ्नो oun VPN चलाउनको लागि, तपाईंले VPS सर्भर भाडामा लिनुहोस्। VPN जडान सिर्जना गर्न दिने विभिन्न सफ्टवेयरहरू छन्। यो समर्थित अपरेटिङ सिस्टम र प्रयोग गरिएका एल्गोरिदमहरूद्वारा एकअर्काबाट फरक छ। हामी VPN सर्भर सेटअप गर्न दुई स्वतन्त्र दृष्टिकोणहरू हेर्नेछौं। पहिलो PPTP प्रोटोकलमा आधारित छ जुन पहिले नै अप्रचलित मानिन्छ र सुरक्षित छैन तर कन्फिगर गर्न साँच्चै सजिलो छ। अर्कोले आधुनिक र सुरक्षित सफ्टवेयर OpenVPN प्रयोग गर्दछ तर तेस्रो-पक्ष क्लाइन्ट अनुप्रयोग स्थापना गर्न र थप विस्तृत सेटअप प्रक्रिया आवश्यक पर्दछ।
हाम्रो परीक्षण वातावरणमा, हामी Ubuntu Server 18.04 द्वारा संचालित भर्चुअल सर्भर प्रयोग गर्नेछौं। सर्भरमा फायरवाल बन्द हुने भएकोले यसको कन्फिगरेसन छुट्टै लेखको योग्य छ। हामी Windows 10 मा सेटअप प्रक्रियाको वर्णन गर्नेछौं।
तयारी
तपाईंले कुन VPN सर्भर छनौट गर्नुभयो भन्ने कुराले फरक पार्दैन, इन्टरनेट पहुँच अपरेटिङ सिस्टमको एकीकृत माध्यमद्वारा सेटअप गरिनेछ। बाह्य सेवा इन्टरफेस मार्फत इन्टरनेट पहुँच खोल्नको लागि तपाईंले इन्टरफेसहरू बीच प्याकेट फर्वार्डिङलाई अनुमति दिनुपर्छ र नेटवर्क ठेगाना अनुवाद कन्फिगर गर्नुपर्छ।
प्याकेट फर्वार्डिङ अन गर्न फाइल खोल्नुहोस् "/आदि/sysctl.conf" र परिवर्तन गर्नुहोस् "नेट.आईपीभी४.आईपी_फर्वार्ड" प्यारामिटर मान मा 1.
कम्प्युटर रिबुट नगरी परिवर्तनहरू लागू गर्न, आदेश चलाउनुहोस्
sudo sysctl -p /etc/sysctl.conf
नेटवर्क ठेगाना अनुवाद निम्न माध्यमद्वारा कन्फिगर गरिएको छ: iptables। पहिले, आदेश चलाउँदै तपाईंको बाह्य नेटवर्क इन्टरफेसको नाम जाँच गर्नुहोस्। "आईपी लिङ्क शो" - अर्को चरणमा तपाईंलाई यसको आवश्यकता पर्नेछ। हाम्रो नाम हो "ens3".
सबै स्थानीय नेटवर्क नोडहरूको लागि तपाईंको बाह्य इन्टरफेसमा नेटवर्क ठेगाना अनुवाद सक्षम गर्नुहोस्।
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
ध्यान दिनुहोस् कि तपाईंले आफ्नो सर्भरको इन्टरफेसको वास्तविक नाम निर्दिष्ट गर्न आवश्यक छ, यो हाम्रो भन्दा फरक हुन सक्छ।
पूर्वनिर्धारित रूपमा, iptables द्वारा सिर्जना गरिएका सबै नियमहरू सर्भर पुन: सुरु भएपछि रिसेट हुन्छन्। त्यसलाई रोक्नको लागि, प्रयोग गर्नुहोस् "iptables-persistent" उपयोगिता। निम्न प्याकेट स्थापना गर्नुहोस्:
sudo apt install iptables-persistent
स्थापना प्रक्रियाको क्रममा कुनै समयमा, तपाईंले एउटा कन्फिगरेसन विन्डो देख्नुहुनेछ जसले तपाईंलाई हालको iptables नियमहरू बचत गर्न सुझाव दिनेछ। नियमहरू पहिले नै परिभाषित गरिएको हुनाले, पुष्टि गर्नुहोस् र क्लिक गर्नुहोस् "हो" दुई पटक। अबदेखि सर्भर रिस्टार्ट भएपछि नियमहरू स्वतः लागू हुनेछन्।
पीपीटीपी सर्वर
सर्भर कन्फिगरेसन
प्याकेट स्थापना गर्नुहोस्:
sudo apt install pptpd
स्थापना समाप्त भएपछि, फाइल खोल्नुहोस् "/etc/pptpd.conf" कुनै पनि टेक्स्ट एडिटरमा र यसलाई यसरी सम्पादन गर्नुहोस्:
option /etc/ppp/pptpd-options #path to the settings file
logwtmp #client connections logging mechanism
connections 100 #number of simultaneous connections
localip 172.16.0.1 #the address that will serve as a client gateway
remoteip 172.16.0.2-200 #range of addresses
त्यस पछि, फाइल सम्पादन गर्नुहोस् "/etc/ppp/pptpd-विकल्पहरू"धेरैजसो प्यारामिटरहरू पूर्वनिर्धारित रूपमा सेट अप गरिएका हुन्छन्।
#name of the service for new client records
name pptpd
#restrict obsolete authentication methods
refuse-pap
refuse-chap
refuse-mschap
#allow a more secure authentication method
require-mschap-v2
#enable encryption
require-mppe-128
#specify dns servers for clients (use any available servers)
ms-dns 8.8.8.8
ms-dns 8.8.4.4
proxyarp
nodefaultroute
lock
nobsdcomp
novj
novjccomp
nologfd
अर्को चरणमा, तपाईंले क्लाइन्ट जडानहरूको लागि रेकर्ड सिर्जना गर्नुपर्नेछ। मानौं तपाईं प्रयोगकर्ता थप्न चाहनुहुन्छ। "vpnuser" पासवर्डको साथ "1" र उसको लागि गतिशील ठेगाना अनुमति दिनुहोस्। फाइल खोल्नुहोस् "/etc/ppp/chap-secrets" र फाइलको अन्त्यमा प्रयोगकर्ताको प्यारामिटरहरूसँग निम्न लाइन थप्नुहोस्:
vpnuser pptpd 1 *
"पीपीटीपीडी" value भनेको हामीले फाइलमा निर्दिष्ट गरेको सेवाको नाम हो "pptpd-विकल्पहरू"। सट्टामा "*" तपाईं एक निश्चित IP ठेगाना निर्दिष्ट गर्न सक्नुहुन्छ। परिणामस्वरूप, फाइल "अध्याय-रहस्य" यस्तो देखिनु पर्छ:
सेटिङहरू रिसेट लागू गर्न pptpd service र यसलाई अटोलोडिङमा थप्नुहोस्।
sudo systemctl restart pptpd
sudo systemctl enable pptpd
सर्भर कन्फिगरेसन समाप्त भयो।
ग्राहक कन्फिगरेसन
खुला "सुरू" - "सेटिंग्स" - नेटवर्क र इन्टरनेट - "VPN" र क्लिक गर्नुहोस् "VPN जडान थप्नुहोस्"
खोलिएको विन्डोमा जडान प्यारामिटरहरू प्रविष्ट गर्नुहोस् र क्लिक गर्नुहोस् "बचत गर्नुहोस्"
- VPN प्रदायक: “विन्डोज (बिल्ट-इन)”
- जडान नाम: “vpn_connect” (तपाईं कुनै पनि नाम रोज्न सक्नुहुन्छ)
- सर्भरको नाम वा ठेगाना: (सर्भरको बाह्य IP ठेगाना निर्दिष्ट गर्नुहोस्)
- VPN प्रकार: "स्वचालित"
- साइन-इन जानकारीको प्रकार: "प्रयोगकर्ता नाम र पासवर्ड"
- प्रयोगकर्ता नाम: vpnuser ले (सर्भरमा रहेको "chap-secrets" फाइलमा निर्दिष्ट गरिएको नाम)
- पासवर्ड: 1 ("अध्याय-गोप्य" फाइलमा जस्तै)
प्यारामिटरहरू बचत गरेपछि, तपाईंले विन्डोमा नयाँ VPN जडान देख्नुहुनेछ। जडानमा बायाँ क्लिक गर्नुहोस् र चयन गर्नुहोस् "जडान"। सफल जडानको अवस्थामा, तपाईंले देख्नुहुनेछ "जडित" स्थिति।
विकल्पहरूमा, तपाईंले क्लाइन्ट र सर्भरको आन्तरिक ठेगानाहरू फेला पार्नुहुनेछ। फिल्ड "गन्तव्य ठेगाना" बाह्य सर्भर ठेगाना प्रदर्शन गर्दछ।
जडान हुँदा, सर्भरको आन्तरिक IP ठेगाना, 172.16.0.1 हाम्रो अवस्थामा, सबै बाहिर जाने प्याकेटहरूको लागि पूर्वनिर्धारित गेटवे बन्छ।
कुनै पनि अनलाइन सेवा प्रयोग गरेर तपाईंले कम्प्युटरको बाह्य IP ठेगाना अब तपाईंको VPN सर्भरको IP ठेगाना जस्तै छ भनी सुनिश्चित गर्न सक्नुहुन्छ।
OpenVPN सर्भर
सर्भर कन्फिगरेसन
हालको प्रयोगकर्ताको अनुमति स्तरलाई प्रवर्द्धन गरौं किनभने हाम्रो थप कन्फिगरेसनको लागि हामीलाई रूट पहुँच चाहिन्छ।
sudo -s
सबै आवश्यक प्याकेटहरू स्थापना गर्नुहोस्। हामीलाई आवश्यक पर्नेछ "सजिलो-आरएसए" एन्क्रिप्शन कुञ्जीहरू व्यवस्थापन गर्न प्याकेट।
apt install openvpn easy-rsa iptables-persistent
UDP प्रोटोकल मार्फत पोर्ट ११९४ मा आगमन जडानहरूलाई अनुमति दिनुहोस् र iptables नियमहरू लागू गर्नुहोस्।
sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT
sudo netfilter-persistent save
"Easy-RSA" प्याकेजबाट प्रतिलिपि गरिएका फाइलहरू सहितको निर्देशिका सिर्जना गर्नुहोस् र त्यसमा नेभिगेट गर्नुहोस्।
make-cadir ~/openvpn
cd ~/openvpn
सार्वजनिक कुञ्जी पूर्वाधार (PKI) उत्पन्न गर्नुहोस्।
./easyrsa init-pki
प्रमाणपत्र प्राधिकरण (CA) मूल प्रमाणपत्र उत्पन्न गर्नुहोस्।
./easyrsa build-ca
सिर्जना प्रक्रियाको क्रममा, तपाईंलाई पासवर्ड सेट गर्न र सम्झन प्रेरित गरिनेछ। तपाईंले प्रश्नहरूको जवाफ दिनु पर्नेछ र कुञ्जी मालिकको बारेमा जानकारी प्रविष्ट गर्नुपर्नेछ। तपाईंले वर्ग कोष्ठकमा प्रदान गरिएका पूर्वनिर्धारित मानहरू छोड्न सक्नुहुन्छ। इनपुटलाई अन्तिम रूप दिन "इन्टर" थिच्नुहोस्।
एउटा निजी कुञ्जी र प्रमाणपत्र अनुरोध उत्पन्न गर्नुहोस्। तर्कको रूपमा, एउटा मनमानी नाम निर्दिष्ट गर्नुहोस्; हाम्रो अवस्थामा, यो "vpn-server" हो।
./easyrsa gen-req vpn-server nopass
सामान्य नाम मानलाई पूर्वनिर्धारित रूपमा छोड्नुहोस्।
उत्पन्न गरिएको सर्भर प्रमाणपत्र अनुरोधमा हस्ताक्षर गर्नुहोस्।
./easyrsa sign-req server vpn-server
यस चरणमा, हस्ताक्षर पुष्टि गर्न "हो" उत्तर दिनुहोस्, त्यसपछि रूट प्रमाणपत्र उत्पादनको क्रममा सिर्जना गरिएको पासवर्ड प्रविष्ट गर्नुहोस्।
डिफी-हेलम्यान प्यारामिटरहरू उत्पन्न गर्नुहोस्। यी प्यारामिटरहरू सर्भर र क्लाइन्ट बीच सुरक्षित कुञ्जी आदानप्रदानको लागि प्रयोग गरिन्छ।
./easyrsa gen-dh
सबै आवश्यक फाइलहरू उत्पन्न भइसकेका छन्। कुञ्जीहरू भण्डारण गर्न र त्यहाँ सिर्जना गरिएका फाइलहरू प्रतिलिपि गर्न OpenVPN कार्य निर्देशिकामा "कुञ्जीहरू" फोल्डर सिर्जना गरौं।
mkdir /etc/openvpn/keys
sudo cp pki/ca.crt pki/issued/vpn-server.crt pki/private/vpn-server.key pki/dh.pem /etc/openvpn/keys
प्रयोग गरेर NAT कन्फिगर गर्नुहोस् iptables नियमहरू। नामको फाइल सिर्जना गर्नुहोस् nat र यसलाई सम्पादनको लागि खोल्नुहोस् /etc/openvpn/ निर्देशिका।
#!/bin/sh
# Reset firewall settings
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
# (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
# Allow OpenVPN connections (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -p udp --dport 1194 -j ACCEPT
iptables -A INPUT -i tun0 -j ACCEPT
# (eth0 in our case, may vary):
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
# (eth0 in our case, may vary)
iptables -A FORWARD -i eth0 -o tun0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Enable masquerading for the local network (eth0 in our case, may vary)
iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.0/24 -j MASQUERADE
# Deny incoming connections from outside
iptables -A INPUT -i eth0 -j DROP
# Deny transit traffic from outside (eth0 in our case, may vary)
iptables -A FORWARD -i eth0 -o tun0 -j DROP
sudo netfilter-persistent save
फाइल बचत गर्नुहोस् र यसलाई कार्यान्वयनयोग्य बनाउनुहोस्।
sudo chmod 755 /etc/openvpn/nat
सर्भर कन्फिगरेसन टेम्प्लेट प्रतिलिपि गर्नुहोस्।
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/
फाईल खोल्नुहोस् "/etc/openvpn/server.conf" सम्पादनको लागि, यसमा निम्न लाइनहरू छन् भनी सुनिश्चित गर्नुहोस्, र आवश्यक परेमा तिनीहरूलाई सम्पादन गर्नुहोस्:
#Port, protocol, and interface
port 1194
proto udp
dev tun
#Path to the encryption keys
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/vpn-server.crt
key /etc/openvpn/keys/vpn-server.key
dh /etc/openvpn/keys/dh.pem
#SHA256 Hashing Algorithm
auth SHA256
#Switching off additional encryption
#tls-auth ta.key 0
#Network parameters
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
#Ping every 10 seconds to check the connection.
keepalive 10 120
#Set up AES-256 encryption for the tunnel.
cipher AES-256-GCM
#Demoting the service OpenVPN after launch
user nobody
group nogroup
#Switching on parameters saving after reboot
persist-key
persist-tun
#Set log verbosity
verb 3
#Redirecting logs
log-append /var/log/openvpn/openvpn.log
#Script the rule installation launch.
up /etc/openvpn/nat
सर्भरमा ट्राफिक फर्वार्डिङ सक्षम गर्नुहोस्।
sudo sysctl -w net.ipv4.ip_forward=1
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
कन्फिगरेसन लागू गर्न OpenVPN सुरु गर्नुहोस्।
systemctl restart openvpn@server
सर्भर कन्फिगरेसन समाप्त भयो!
ग्राहक कन्फिगरेसन
OpenVPN को आधिकारिक वेबसाइटमा जानुहोस् "https://openvpn.net", मा जानुहोस् "समुदाय" खण्ड।
तल स्क्रोल गर्नुहोस् र आफ्नो अपरेटिङ सिस्टम संस्करणको लागि स्थापनाकर्ता डाउनलोड गर्नुहोस्। हाम्रो अवस्थामा, यो Windows 11 ARM64 हो।
पूर्वनिर्धारित रूपमा सबै प्यारामिटरहरू छोडेर अनुप्रयोग स्थापना गर्नुहोस्।
अर्को चरणमा तपाईंले सर्भरमा निम्न फाइल तयार गर्नुपर्नेछ र क्लाइन्ट कम्प्युटरमा स्थानान्तरण गर्नुपर्नेछ:
- सार्वजनिक र निजी कुञ्जीहरू;
- प्रमाणीकरण केन्द्र साँचोको प्रतिलिपि;
- कन्फिग फाइल टेम्प्लेट।
सर्भरमा जडान गर्नुहोस्, विशेषाधिकारहरू बढाउनुहोस्, र हाम्रो सिर्जना गरिएको निर्देशिकामा नेभिगेट गर्नुहोस्। "~/openvpn".
sudo -s
cd ~/openvpn
क्लाइन्टको लागि एउटा निजी कुञ्जी र प्रमाणपत्र अनुरोध उत्पन्न गर्नुहोस्। तर्कको रूपमा, एउटा मनमानी नाम निर्दिष्ट गर्नुहोस्; हाम्रो अवस्थामा, यो "client1" हो।
./easyrsa gen-req client1 nopass
रूट सर्टिफिकेट सिर्जना गर्दा हामीले सेट गरेको पासवर्ड प्रविष्ट गर्नुहोस् र Common Name मानलाई पूर्वनिर्धारित रूपमा छोड्नुहोस्।
उत्पन्न गरिएको क्लाइन्ट प्रमाणपत्र अनुरोधमा हस्ताक्षर गर्नुहोस्।
./easyrsa sign-req client client1
यस चरणमा, हस्ताक्षर पुष्टि गर्न "हो" उत्तर दिनुहोस्, त्यसपछि रूट प्रमाणपत्र उत्पादनको क्रममा सिर्जना गरिएको पासवर्ड प्रविष्ट गर्नुहोस्।
सुविधाको लागि, गृह निर्देशिकामा 'client1' नामक फोल्डर सिर्जना गरौं र क्लाइन्ट कम्प्युटरमा स्थानान्तरण गर्न चाहिने सबै फाइलहरू त्यसमा प्रतिलिपि गरौं।
mkdir ~/client1
cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt ~/client1/
क्लाइन्ट कन्फिग फाइल टेम्प्लेटलाई उही डाइरेक्टरीमा प्रतिलिपि गर्नुहोस्। फाइल एक्सटेन्सनलाई यसमा परिवर्तन गर्नुहोस् “.ovpn” प्रतिलिपि गर्दा।
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn
डाइरेक्टरी र सबै फाइलहरूको मालिक परिवर्तन गर्नुहोस् “~/क्लाइन्ट१/” ग्राहकलाई वितरण गर्न सक्षम हुन। बनाऔं "मिहेल" हाम्रो मामलामा मालिक।
chown -R mihail:mihail ~/client1
क्लाइन्ट कम्प्युटरमा जानुहोस् र सामग्री प्रतिलिपि गर्नुहोस् “~/क्लाइन्ट१/” फोल्डर। तपाईं यसको मद्दतले त्यो गर्न सक्नुहुन्छ "पीएससीपी" उपयोगिता, जुन पुट्टीसँग जान्छ।
PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1
तपाईं प्रमुख फाइलहरू भण्डारण गर्न सक्नुहुन्छ "ca.crt", “client1.crt”, “client1.key” जहाँ तपाईं चाहनुहुन्छ। हाम्रो मामलामा, तिनीहरू यस फोल्डरमा छन् "c:\Program Files\OpenVPN\keys", र हामी कन्फिग फाइल मोड गर्छौं "client.ovpn" मा "c:\Program Files\OpenVPN\config" निर्देशिका।
अब क्लाइन्ट कन्फिगर गर्ने काममा लागौं। फाइल खोल्नुहोस्। "c:\Program Files\OpenVPN\config\client.ovpn" पाठ सम्पादकमा र निम्न लाइनहरू सम्पादन गर्नुहोस्:
#announce that this is the client
client
#interface and protocol just like on the server
dev tun
proto udp
#IP address of the server and port
remote ip_address 1194
#saving parameters after reload
persist-key
persist-tun
#key paths
ca “c:\\Program Files\\OpenVPN\\keys\\ca.cert”
cert “c:\\Program Files\\OpenVPN\\keys\\client1.crt”
key “c:\\Program Files\\OpenVPN\\keys\\client1.key”
#enable server verification
remote-cert-tls server
#disable extra encryption
#tls-auth ta.key 1
cipher AES-256-CBC
auth-nocache
verb 3
बाँकीलाई अछुतो छोड्नुहोस्।
फाइल बचत गर्नुहोस् र क्लाइन्ट अनुप्रयोग सुरु गर्नुहोस्। "ओपनभीपीएन जीयूआई".
टास्कबारमा रहेको एप आइकनमा दायाँ क्लिक गर्नुहोस् र छान्नुहोस् "जडान"। यदि जडान सफल भयो भने आइकन हरियो हुनेछ।
तपाईंको सार्वजनिक IP ठेगाना परिवर्तन भएको छ र अब सर्भरको IP ठेगाना जस्तै छ भनी सुनिश्चित गर्न कुनै पनि अनलाइन सेवा प्रयोग गर्नुहोस्।