Siku hizi, teknolojia ya VPN inakuwa maarufu zaidi. Watumiaji wa kawaida hutumia VPN kufikia Mtandao kwa usalama. Pia husaidia kuzunguka tovuti na huduma zilizozuiwa ndani ya nchi na kulinda dhidi ya tabia mbaya ya nje inayowezekana. Unapounganisha kwenye seva ya VPN, kuna njia salama kati ya kompyuta yako na seva ambayo haiwezi kufikiwa kutoka nje, kwa hivyo seva ya VPN inakuwa kituo chako cha kufikia Mtandao. Kuna huduma nyingi za VPN huko nje, za bure na za kulipwa, lakini ikiwa hazifanyi kazi kwako kwa sababu fulani, unaweza kusanidi seva yako ya VPN kila wakati.
Ili kuendesha VPN yako ya awali, unapaswa kukodisha seva ya VPS . Kuna programu tofauti zinazokuruhusu kuunda muunganisho wa VPN. Inatofautiana kutoka kwa kila mmoja kwa mifumo endeshi inayoungwa mkono na algoriti zinazotumika. Tutaangalia mbinu mbili huru za kuanzisha seva ya VPN. Ya kwanza inategemea itifaki ya PPTP ambayo tayari inachukuliwa kuwa imepitwa na wakati na si salama lakini ni rahisi sana kusanidi. Nyingine hutumia programu ya kisasa na salama ya OpenVPN lakini inahitaji kusakinisha programu ya mteja wa tatu na mchakato wa usanidi wa kina zaidi.
Katika mazingira yetu ya majaribio, tutatumia seva pepe inayoendeshwa na Ubuntu Server 18.04. Firewall itazimwa kwenye seva kwa sababu usanidi wake unastahili makala tofauti. Tutaelezea mchakato wa usanidi kwenye Windows 10.
Maandalizi
Bila kujali seva ya VPN unayochagua, ufikiaji wa Mtandao utawekwa kwa njia zilizojumuishwa za mfumo wa uendeshaji. Ili kufungua ufikiaji wa Mtandao kupitia kiolesura cha huduma ya nje inabidi uruhusu usambazaji wa pakiti kati ya violesura na usanidi tafsiri ya anwani ya mtandao.
Ili kuwasha usambazaji wa pakiti, fungua faili "/etc/sysctl.conf" na ubadilishe thamani ya kigezo cha "net.ipv4.ip_forward" kuwa 1.
Ili kuomba mabadiliko bila kuanzisha upya kompyuta, endesha amri
sudo sysctl -p /etc/sysctl.conf
Tafsiri ya anwani ya mtandao imeundwa kwa kutumia iptables . Kwanza, angalia jina la kiolesura chako cha nje cha mtandao kinachoendesha amri "ip link show" - utalihitaji katika hatua inayofuata. Jina letu ni "ens3".
Washa tafsiri ya anwani ya mtandao kwenye kiolesura chako cha nje kwa nodi zote za mtandao wa ndani.
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
Kumbuka kwamba unahitaji kutaja jina halisi la kiolesura cha seva yako, inaweza kuwa tofauti na yetu.
Kwa chaguo-msingi, sheria zote zilizoundwa na iptables huwekwa upya baada ya seva kuanza upya. Ili kuzuia hilo, tumia huduma ya "iptables-persistent" . Sakinisha pakiti ifuatayo:
sudo apt install iptables-persistent
Wakati fulani wakati wa mchakato wa usakinishaji, utaona dirisha la usanidi ambalo litakupendekeza uhifadhi sheria za sasa za iptables. Kwa kuwa sheria tayari zimefafanuliwa, thibitisha tu na ubofye "Ndiyo" mara mbili. Kwa kuwa sasa sheria zitatumika kiotomatiki baada ya seva kuanza upya.
Seva ya PPTP
Usanidi wa seva
Sakinisha kifurushi:
sudo apt install pptpd
Baada ya usakinishaji kuisha, fungua faili "/etc/pptpd.conf" katika kihariri chochote cha maandishi na uihariri kama hii:
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
Baada ya hapo, hariri faili “/etc/ppp/pptpd-options” . Vigezo vingi huwekwa kwa chaguo-msingi.
#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
Katika hatua inayofuata, utahitaji kuunda rekodi ya miunganisho ya mteja. Tuseme unataka kuongeza mtumiaji "vpnuser" na nenosiri "1" na umruhusu awasiliane kwa njia inayobadilika. Fungua faili "/etc/ppp/chap-secrets" na uongeze mstari ufuatao na vigezo vya mtumiaji mwishoni mwa faili:
vpnuser pptpd 1 *
Thamani ya "pptpd" ni jina la huduma tuliyoibainisha katika faili ya "pptpd-options" . Badala ya "*" unaweza kutaja anwani ya IP isiyobadilika. Katika matokeo, faili ya "chap-secrets" inapaswa kuonekana kama hii:
Ili kutumia mipangilio, weka upya huduma ya pptpd na uiongeze kwenye upakiaji otomatiki.
sudo systemctl restart pptpd
sudo systemctl enable pptpd
Usanidi wa seva umekamilika.
Usanidi wa mteja
Fungua "Anza" - "Mipangilio" - "Mtandao na Intaneti" - "VPN" na ubofye "Ongeza muunganisho wa VPN"
Ingiza vigezo vya muunganisho kwenye dirisha lililofunguliwa na ubofye "Hifadhi"
- Mtoa huduma wa VPN: "Windows (imejengwa ndani)"
- Jina la muunganisho: "vpn_connect" (unaweza kuchagua jina lolote)
- Jina la seva au anwani: (taja anwani ya IP ya nje ya seva)
- Aina ya VPN: "Otomatiki"
- Aina ya maelezo ya kuingia: "Jina la mtumiaji na nenosiri"
- Jina la mtumiaji: vpnuser (jina limebainishwa katika faili ya "chap-siri" kwenye seva)
- password: 1 (kama katika faili ya "chap-siri")
Baada ya kuhifadhi vigezo, utaona muunganisho mpya wa VPN kwenye dirisha. Bonyeza kushoto kwenye muunganisho na uchague "Unganisha" . Katika hali ya muunganisho uliofanikiwa, utaona hali ya "Imeunganishwa".
Katika Chaguo, utapata anwani za ndani za mteja na seva. Sehemu ya “Anwani ya mahali” inaonyesha anwani ya nje ya seva.
Inapounganishwa, anwani ya ndani ya IP ya seva, 172.16.0.1 katika kesi yetu, inakuwa lango chaguo-msingi la pakiti zote zinazotoka.
Kwa kutumia huduma yoyote ya mtandaoni unaweza kuhakikisha kuwa anwani ya IP ya nje ya kompyuta sasa ni sawa na anwani ya IP ya seva yako ya VPN.
Seva ya OpenVPN
Usanidi wa seva
Wacha tukuze kiwango cha ruhusa cha mtumiaji wa sasa kwa sababu kwa usanidi wetu zaidi tutahitaji ufikiaji wa mizizi.
sudo -s
Sakinisha pakiti zote muhimu. Tutahitaji pakiti ya "Easy-RSA" ili kudhibiti funguo za usimbaji fiche.
apt install openvpn easy-rsa iptables-persistent
Ruhusu miunganisho inayoingia kwenye bandari 1194 kupitia itifaki ya UDP na utumie sheria za iptables.
sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT
sudo netfilter-persistent save
Unda saraka na faili zilizonakiliwa kutoka kwa kifurushi cha "Easy-RSA" na uende ndani yake.
make-cadir ~/openvpn
cd ~/openvpn
Tengeneza Miundombinu Muhimu ya Umma (PKI).
./easyrsa init-pki
Tengeneza cheti cha mizizi cha Mamlaka ya Cheti (CA).
./easyrsa build-ca
Wakati wa mchakato wa kuunda, utaulizwa kuweka na kukumbuka nenosiri. Utahitaji pia kujibu maswali na kuingiza maelezo kuhusu mmiliki wa ufunguo. Unaweza kuacha thamani chaguo-msingi zilizotolewa katika mabano ya mraba. Bonyeza "Enter" ili kukamilisha ingizo.
Tengeneza ufunguo wa kibinafsi na ombi la cheti. Kama hoja, taja jina la kiholela; kwa upande wetu, ni "vpn-server".
./easyrsa gen-req vpn-server nopass
Acha thamani ya Jina la Kawaida kama chaguo-msingi.
Saini ombi la cheti cha seva iliyotolewa.
./easyrsa sign-req server vpn-server
Katika hatua hii, jibu "ndiyo" ili kuthibitisha saini, kisha ingiza nenosiri ambalo liliundwa wakati wa uzalishaji wa cheti cha mizizi.
Tengeneza vigezo vya Diffie-Hellman. Vigezo hivi hutumiwa kwa ubadilishanaji wa ufunguo salama kati ya seva na mteja.
./easyrsa gen-dh
Faili zote muhimu zimetolewa. Wacha tuunda folda ya "funguo" kwenye saraka ya kazi ya OpenVPN ili kuhifadhi funguo na kunakili faili zilizoundwa hapo.
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
Sanidi NAT ukitumia iptables sheria. Unda faili yenye jina nat na uifungue kwa kuhaririwa katika /etc/openvpn/ saraka.
#!/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
Hifadhi faili na uifanye iweze kutekelezwa.
sudo chmod 755 /etc/openvpn/nat
Nakili kiolezo cha usanidi wa seva.
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/
Fungua faili "/etc/openvpn/server.conf" kwa ajili ya kuhariri, hakikisha ina mistari ifuatayo, na uihariri ikiwa inahitajika:
#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
Washa usambazaji wa trafiki kwenye seva.
sudo sysctl -w net.ipv4.ip_forward=1
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
Anzisha OpenVPN ili kutumia usanidi.
systemctl restart openvpn@server
Mipangilio ya seva imekamilika!
Usanidi wa mteja
Nenda kwenye tovuti rasmi ya OpenVPN “ https://openvpn.net ”, nenda kwenye sehemu ya “JAMII”.
Tembeza chini na upakue kisakinishi kwa toleo lako la mfumo wa uendeshaji. Kwa upande wetu, ni Windows 11 ARM64.
Sakinisha programu ukiacha vigezo vyote kwa chaguo-msingi.
Katika hatua inayofuata, utahitaji kuandaa faili ifuatayo kwenye seva na kuihamisha kwa kompyuta ya mteja:
- funguo za umma na za kibinafsi;
- nakala ya ufunguo wa kituo cha uthibitisho;
- config faili template.
Unganisha kwa seva, inua haki, na uende kwenye saraka yetu iliyoundwa "~/openvpn".
sudo -s
cd ~/openvpn
Tengeneza ufunguo wa kibinafsi na ombi la cheti kwa mteja. Kama hoja, taja jina la kiholela; kwa upande wetu, ni "mteja1".
./easyrsa gen-req client1 nopass
Ingiza nenosiri tunaloweka wakati wa kuunda cheti cha mizizi na uache thamani ya Jina la Kawaida kama chaguo-msingi.
Saini ombi la cheti cha mteja kilichozalishwa.
./easyrsa sign-req client client1
Katika hatua hii, jibu "ndiyo" ili kuthibitisha saini, kisha ingiza nenosiri ambalo liliundwa wakati wa uzalishaji wa cheti cha mizizi.
Kwa urahisi, hebu tuunde folda inayoitwa 'mteja1' kwenye saraka ya nyumbani na tunakili faili zote zilizokusudiwa kuhamishiwa kwa kompyuta ya mteja ndani yake.
mkdir ~/client1
cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt ~/client1/
Nakili kiolezo cha faili ya usanidi wa mteja kwenye saraka hiyo hiyo. Badilisha kiendelezi cha faili kuwa “.ovpn” unaponakili.
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn
Badilisha mmiliki wa saraka na faili zote "~/client1/" ili ziweze kusambazwa kwa mteja. Tufanye "mihail" kuwa mmiliki katika kesi yetu.
chown -R mihail:mihail ~/client1
Nenda kwenye kompyuta ya mteja na unakili maudhui ya folda ya “~/client1/” . Unaweza kufanya hivyo kwa msaada wa matumizi ya “PSCP” , ambayo yanaendana na Putty.
PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1
Unaweza kuhifadhi faili muhimu “ca.crt” , “client1.crt” , “client1.key” popote unapotaka. Kwa upande wetu, ziko kwenye folda hii “c:\Program Files\OpenVPN\keys” , na tunaweka faili ya usanidi “client.ovpn” kwenye saraka ya “c:\Program Files\OpenVPN\config”.
Sasa tuanze kusanidi mteja. Fungua faili “c:\Program Files\OpenVPN\config\client.ovpn” katika kihariri maandishi na uhariri mistari ifuatayo:
#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
Wacha wengine bila kuguswa.
Hifadhi faili na uzindue programu ya mteja "OpenVPN GUI".
Bonyeza kulia kwenye aikoni ya programu kwenye upau wa kazi na uchague "Unganisha" . Ikiwa muunganisho utafanikiwa, aikoni itageuka kuwa ya kijani.
Tumia huduma yoyote ya mtandaoni ili kuhakikisha kuwa anwani yako ya IP ya umma imebadilika na sasa ni sawa na anwani ya IP ya seva.