Naha, teknolojiya VPN populertir dibe. Bikarhênerên asayî VPN bikar tînin da ku bi ewlehî bigihîjin Înternetê. Di heman demê de ew ji malper û karûbarên astengkirî yên herêmî re dibe alîkar û li hember behreyên xirab ên derveyî yên gengaz diparêze. Dema ku hûn bi serverek VPN ve girêdidin, di navbera komputera we û serverê de tunelek ewle heye ku ji derve nayê gihîştin, ji ber vê yekê servera VPN dibe xala gihîştina we ya Înternetê. Gelek karûbarên VPN li wir hene, hem belaş û hem jî drav, lê heke ew ji ber hin sedeman ji we re nexebitin, hûn dikarin her gav servera VPN-ya xwe mîheng bikin.
Ji bo ku hûn VPN-ya xwe bimeşînin, divê hûn kirê server VPS. Nermalava cûda heye ku dihêle hûn pêwendiyek VPN biafirînin. Ew ji hêla pergalên xebitandinê yên piştgirî û algorîtmayên ku têne bikar anîn ji hev cûda dibe. Em ê ji bo sazkirina serverek VPN du nêzîkatiyên serbixwe binihêrin. Ya yekem li ser bingeha protokola PPTP-yê ye ku jixwe kevnar û ne ewledar tê hesibandin lê bi rastî veavakirina wê hêsan e. Ya din nermalava nûjen û ewledar OpenVPN bikar tîne lê pêdivî ye ku serîlêdanek xerîdar-sêyemîn û pêvajoyek sazkirinê ya berbiçav saz bike.
Di hawîrdora ceribandina me de, em ê serverek virtual ku ji hêla Ubuntu Server 18.04 ve hatî hêzdar kirin bikar bînin. Dîwarek agir dê li ser serverê were qut kirin ji ber ku veavakirina wê gotarek cûda heq dike. Em ê pêvajoya sazkirinê li ser Windows 10 diyar bikin.
Amadekarî
Ne girîng e ku hûn kîjan servera VPN hilbijêrin, gihîştina Înternetê dê bi rêgezên yekbûyî yên pergala xebitandinê were saz kirin. Ji bo vekirina gihîştina Înternetê bi navgînek karûbarê derveyî ve divê hûn destûr bidin şandina pakêtê di navbera navberan de û wergera navnîşana torê mîheng bikin.
Ji bo veguheztina şandina pakêtê pelê vekin "/etc/sysctl.conf" û guherîn "net.ipv4.ip_forward" nirxa parametreyê nav 1.
Ji bo ku hûn guheztinan bêyî ji nû ve destpêkirina komputerê bicîh bikin, fermanê bişopînin
sudo sysctl -p /etc/sysctl.conf
Wergera navnîşana torê bi navgîniya tê vesaz kirin iptables. Pêşîn, navê navbeynkariya tora xweya derveyî ku fermanê dimeşîne kontrol bikin "nîşandana girêdana IP" - hûn ê di gava paşîn de hewce bikin. Navê me ye "ens3".
Wergera navnîşana torê li navrûya xweya derve ji bo hemî girêkên torê yên herêmî çalak bike.
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
Bala xwe bidinê ku hûn hewce ne ku navê rastîn a navgîniya servera xwe diyar bikin, ew dikare ji ya me cûda be.
Ji hêla xwerû, hemî qaîdeyên ku ji hêla iptables ve hatî afirandin piştî destpêkirina serverê têne vesaz kirin. Ji bo pêşîlêgirtina wê, bikar bînin "iptables-persistent" bikêrhatî. Pakêta jêrîn saz bikin:
sudo apt install iptables-persistent
Di hin nuqteyan de di pêvajoya sazkirinê de, hûn ê pencereyek mîhengê bibînin ku dê ji we re pêşniyar bike ku hûn qaîdeyên heyî yên iptables hilînin. Ji ber ku qaîdeyên berê hatine diyarkirin, tenê piştrast bikin û bikirtînin "Erê" du car. Ji ber ku nuha piştî destpêkirina serverê dê rêgez bixweber werin sepandin.
Pêşkêşkara PPTP
Veavakirina server
Pakêtê saz bikin:
sudo apt install pptpd
Piştî sazkirinê qediya, pelê vekin "/etc/pptpd.conf" di her edîtorek nivîsê de û bi vî rengî biguherînin:
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
Piştî vê yekê, pelê biguherînin "/etc/ppp/pptpd-options". Piraniya pîvanan ji hêla xwerû ve têne saz kirin.
#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
Di qonaxa paşîn de, hûn ê hewce ne ku ji bo girêdanên xerîdar tomarek çêbikin. Ka em bibêjin ku hûn dixwazin bikarhênerek zêde bikin "vpnuser" bi şîfreya "1" û destûrê bide navnîşana dînamîk ji bo wî. Pelê vekin "/etc/ppp/chap-secrets" û rêza jêrîn bi pîvanên bikarhêner li dawiya pelê zêde bikin:
vpnuser pptpd 1 *
"pptpd" nirx navê karûbarê ku me di pelê de diyar kiriye ye "pptpd-vebijarkên". Di şona "*" hûn dikarin navnîşanek IP-ya sabît diyar bikin. Di encamê de, pel "çap-veşartî" divê wiha xuya bike:
Ji bo sepandina mîhengan vesaz bikin pptpd xizmetê bikin û wê li barkirina otomatîkî zêde bikin.
sudo systemctl restart pptpd
sudo systemctl enable pptpd
Veavakirina serverê qediya.
Veavakirina Client
Vekirî "Destpêkirin" - "Sîstema" - Tor & Înternet - "VPN" û click "Têkiliyek VPN lê zêde bike"
Di pencereya vekirî de pîvanên pêwendiyê binivîsin û bikirtînin "Rizgarkirin"
- Pêşkêşvanê VPN: "Windows (avakirî)"
- Navê girêdanê: "vpn_connect" (hûn dikarin her navekî hilbijêrin)
- Navnîşan an navnîşana serverê: (navnîşana IP-ya derveyî ya serverê diyar bike)
- Tîpa VPN: "Auto"
- Tîpa agahdariya têketinê: "Navê bikarhêner û şîfre"
- Navê bikarhêner: vpnuser (navê ku di pelê "chap-secrets" de li ser serverê hatî destnîşan kirin)
- Şîfre: 1 (wek di pelê "çap-secrets" de)
Piştî tomarkirina parametreyan, hûn ê di pencereyê de pêwendiya VPN-ya nû bibînin. Li ser girêdanê çep-klîk bikin û hilbijêrin "Bihevgirêdan". Di rewşeke pêwendiyek serkeftî de, hûn ê bibînin "Girêdayî" cî.
Di Vebijêrkan de, hûn ê navnîşanên navxweyî yên xerîdar û serverê bibînin. Erd "Navnîşana meqsedê" navnîşana servera derveyî nîşan dide.
Dema ku ve girêdayî ye, navnîşana IP-ya navxweyî ya serverê, 172.16.0.1 di rewşa me de, ji bo hemî pakêtên derketinê dibe deriyê xwerû.
Bi karanîna karûbarek serhêl hûn dikarin piştrast bikin ku navnîşana IP-ya derveyî ya komputerê naha wekî navnîşana IP-ya servera VPN-ya we ye.
Servera OpenVPN
Veavakirina server
Ka em asta destûrên bikarhênerê heyî pêşve bixin ji ber ku ji bo veavakirina meya din em ê hewceyê gihîştina root bin.
sudo -s
Hemû pakêtên pêwîst saz bikin. Em ê hewce ne "Easy-RSA" pakêtek ji bo birêvebirina mifteyên şîfrekirinê.
apt install openvpn easy-rsa iptables-persistent
Destûrê bide girêdanên hatinî li ser porta 1194 bi rêya protokola UDP û qaîdeyên iptables bicîh bîne.
sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT
sudo netfilter-persistent save
Peldankek bi pelên kopîkirî yên ji pakêta "Easy-RSA" biafirînin û tê de bigerin.
make-cadir ~/openvpn
cd ~/openvpn
Binesaziya Mifteya Giştî (PKI) çêbike.
./easyrsa init-pki
Sertîfîkaya root a Desteya Sertîfîkayê (CA) çêbikin.
./easyrsa build-ca
Di dema pêvajoya afirandinê de, dê ji we were xwestin ku şîfreyekê saz bikin û bi bîr bînin. Her wiha hûn ê hewce bikin ku bersiva pirsan bidin û agahdariya li ser xwediyê mifteyê binivîsin. Hûn dikarin nirxên xwerû yên ku di nav parantezên çargoşe de hatine dayîn bihêlin. Ji bo qedandina têketinê "Enter" bikirtînin.
Mifteyek taybet û daxwazek sertîfîkayê çêbike. Wek argumanek, navekî kêfî diyar bike; di rewşa me de, ew "vpn-server" e.
./easyrsa gen-req vpn-server nopass
Nirxa Common Name wekî xwerû bihêle.
Daxwaza sertîfîkaya serverê ya çêkirî îmze bike.
./easyrsa sign-req server vpn-server
Di vê gavê de, ji bo piştrastkirina îmzeyê bersiva "erê" bidin, dûv re şîfreya ku di dema çêkirina sertîfîkaya root de hatî afirandin binivîsin.
Parametreyên Diffie-Hellman çêbikin. Ev parametre ji bo danûstandina mifteyê ya ewle di navbera server û xerîdar de têne bikar anîn.
./easyrsa gen-dh
Hemû pelên pêwîst hatine çêkirin. Werin em di navnîşana xebatê ya OpenVPN-ê de peldankek "kilît" çêbikin da ku mifteyan hilînin û pelên çêkirî li wir kopî bikin.
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 bi karanîna mîheng bike iptables qaîdeyan. Pelêk bi navê çêke nat û wê ji bo sererastkirinê di pelê de veke /etc/openvpn/ Peldanka
#!/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
Pelê tomar bike û wê bike ku bibe çalakbar.
sudo chmod 755 /etc/openvpn/nat
Şablona mîhengkirina serverê kopî bike.
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/
Pelê vekin "/etc/openvpn/server.conf" ji bo guherandinê, pê ewle bine ku ew rêzikên jêrîn dihewîne, û ger hewce be wan biguherîne:
#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
Pêşvebirina trafîkê li ser serverê çalak bike.
sudo sysctl -w net.ipv4.ip_forward=1
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
Ji bo sepandina mîhengkirinê OpenVPN-ê bidin destpêkirin.
systemctl restart openvpn@server
Veavakirina serverê qediya!
Veavakirina Client
Biçe malpera fermî ya OpenVPN "https://openvpn.net", biçin "CIVAK" liq.
Ber bi jêr ve biçin û bernameya sazkirinê ya guhertoya pergala xebitandinê ya xwe dakêşin. Di rewşa me de, ew Windows 11 ARM64 e.
Serlêdanê saz bikin ku hemî parameteran ji hêla xwerû ve dihêle.
Di qonaxa paşîn de hûn ê hewce bikin ku pelê jêrîn li ser serverê amade bikin û wan veguhezînin komputera xerîdar:
- keys giştî û taybet;
- kopiyek mifteya navenda pejirandinê;
- şablonê pelê mîhengê.
Bi serverê ve girêbide, îmtiyazan bilind bike, û biçe pelrêça me ya çêkirî "~/openvpn".
sudo -s
cd ~/openvpn
Mifteyek taybet û daxwazek sertîfîkayê ji bo xerîdar çêbike. Wek argumanek, navekî kêfî diyar bike; di rewşa me de, ew "client1" e.
./easyrsa gen-req client1 nopass
Şîfreya ku me dema çêkirina sertîfîkaya root danî binivîse û nirxa Common Name wekî xwerû bihêle.
Daxwaza sertîfîkaya xerîdar a çêkirî îmze bike.
./easyrsa sign-req client client1
Di vê gavê de, ji bo piştrastkirina îmzeyê bersiva "erê" bidin, dûv re şîfreya ku di dema çêkirina sertîfîkaya root de hatî afirandin binivîsin.
Ji bo rehetiyê, em di navnîşana malê de peldankek bi navê 'client1' biafirînin û hemû pelên ku ji bo veguheztina kompîtura xerîdar têne xwestin tê de kopî bikin.
mkdir ~/client1
cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt ~/client1/
Şablona pelê mîhengê ya xerîdar li heman pelrêça kopî bikin. Berfirehkirina pelê biguherînin ".ovpn" dema kopîkirinê.
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn
Xwediyê pelrêça û hemî pelan biguherînin "~/client1/" da ku bikaribe wan li ser xerîdar belav bike. Ka em çêkin "mihaîl" xwedî li doza me.
chown -R mihail:mihail ~/client1
Herin ser komputera xerîdar û naveroka wê kopî bikin "~/client1/" pêçek. Hûn dikarin bi alîkariya wê bikin "PSCP" bikêrhatî, ku bi Putty re derbas dibe.
PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1
Hûn dikarin pelên sereke hilînin "ca.crt", "client1.crt", "client1.key" li ku derê hûn dixwazin. Di rewşa me de, ew di vê peldankê de ne "c: \ Pelên Bernameyê \ OpenVPN \ bişkok", û em pelê mîhengê modê dikin "client.ovpn" nav "c: \ Pelên Bernameyê \ OpenVPN \ config" Peldanka
Naha em werin ser mîhengkirina xerîdar. Pelê vekin "c:\Pelên Bernameyê\OpenVPN\config\client.ovpn" di edîtorek nivîsê de û rêzikên jêrîn biguherînin:
#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
Yên mayî bihêlin.
Pelê hilînin û serîlêdana xerîdar dest pê bikin "GUI OpenVPN".
Li ser îkona sepanê ya di barika peywirê de rast-klîk bikin û hilbijêrin "Bihevgirêdan". Ger girêdan serketî be îkon dê kesk bibe.
Xizmetek serhêl bikar bînin da ku pê ewle bibin ku navnîşana IP-ya weya giştî guherî ye û naha wekî navnîşana IP-ya serverê ye.