Illum il-ġurnata, it-teknoloġija VPN issir aktar popolari. Utenti ordinarji jużaw VPN biex jaċċessaw l-Internet b'mod sikur. Tgħin ukoll biex tgħaddi minn websajts u servizzi mblukkati lokalment u tipproteġi kontra mġiba malizzjuża esterna possibbli. Meta tkun qed tikkonnettja ma' server VPN, hemm mina sigura bejn il-kompjuter tiegħek u s-server li ma tistax tiġi aċċessata minn barra, u għalhekk is-server VPN isir il-punt ta 'aċċess għall-Internet tiegħek. Hemm ħafna servizzi VPN hemmhekk, kemm b'xejn kif ukoll imħallsa, imma jekk ma jaħdmux għalik għal xi raġuni, dejjem tista 'tikkonfigura s-server VPN tiegħek stess.
Biex tmexxi l-VPN tiegħek, għandek kera server VPS. Hemm softwer differenti li jippermettilek toħloq konnessjoni VPN. Hija differenti minn xulxin bis-sistemi operattivi appoġġjati u l-algoritmi użati. Se nagħtu ħarsa lejn żewġ approċċi indipendenti biex inwaqqfu server VPN. L-ewwel wieħed huwa bbażat fuq protokoll PPTP li huwa diġà meqjus skadut u mhux sigur iżda huwa verament faċli biex jiġi kkonfigurat. L-oħra timpjega softwer modern u sigur OpenVPN iżda teħtieġ l-installazzjoni ta 'applikazzjoni ta' klijent ta 'parti terza u proċess ta' setup aktar bir-reqqa.
Fl-ambjent tat-test tagħna, se nużaw server virtwali mħaddem minn Ubuntu Server 18.04. Firewall se jintefa fuq is-server minħabba li l-konfigurazzjoni tiegħu jistħoqqilha artiklu separat. Aħna ser niddeskrivu l-proċess ta 'setup fuq Windows 10.
Preparazzjoni
Irrispettivament minn liema server VPN tagħżel, l-aċċess għall-Internet se jiġi stabbilit b'mezzi integrati tas-sistema operattiva. Sabiex tiftaħ l-aċċess għall-Internet permezz ta' interface ta' servizz estern trid tippermetti t-trażmissjoni tal-pakketti bejn l-interfaces u tikkonfigura t-traduzzjoni tal-indirizz tan-netwerk.
Biex tixgħel it-trażmissjoni tal-pakkett iftaħ il-fajl “/etc/sysctl.conf” u bidla “net.ipv4.ip_forward” valur tal-parametru fi 1.
Sabiex tapplika l-bidliet mingħajr ma terġa 'tibda l-kompjuter, mexxi l-kmand
sudo sysctl -p /etc/sysctl.conf
It-traduzzjoni tal-indirizz tan-netwerk hija kkonfigurata permezz ta' iptables. L-ewwel, iċċekkja l-isem tal-interface tan-netwerk estern tiegħek li tħaddem il-kmand "wiri ip link" - ser ikollok bżonnha fil-pass li jmiss. Isimna hu “ens3”.
Ippermetti t-traduzzjoni tal-indirizz tan-netwerk fl-interface esterna tiegħek għan-nodi tan-netwerk lokali kollha.
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
Innota li għandek bżonn tispeċifika l-isem reali tal-interface tas-server tiegħek, jista 'jkun differenti minn tagħna.
B'mod awtomatiku, ir-regoli kollha maħluqa minn iptables huma reset wara li s-server jerġa' jibda. Sabiex tevita dan, uża "iptables-persistenti" utilità. Installa l-pakkett li ġej:
sudo apt install iptables-persistent
F'xi punt matul il-proċess ta 'installazzjoni, se tara tieqa ta' konfigurazzjoni li tissuġġerixxi li tfaddal ir-regoli attwali ta 'iptables. Peress li r-regoli huma diġà definiti, sempliċement ikkonferma u kklikkja "Iva" darbtejn. Peress li issa r-regoli se jiġu applikati awtomatikament wara li s-server jerġa 'jibda.
Server PPTP
Konfigurazzjoni tas-server
Installa l-pakkett:
sudo apt install pptpd
Wara li tispiċċa l-installazzjoni, iftaħ il-fajl “/etc/pptpd.conf” fi kwalunkwe editur tat-test u editjah bħal dan:
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
Wara dan, editja l-fajl “/etc/ppp/pptpd-options”. Ħafna mill-parametri huma stabbiliti awtomatikament.
#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
Fl-istadju li jmiss, ser ikollok bżonn toħloq rekord għall-konnessjonijiet tal-klijenti. Ejja ngħidu li trid iżżid utent “vpnuser” bil-password "1" u jippermettu indirizzar dinamiku għalih. Iftaħ il-fajl “/etc/ppp/chap-secrets” u żid il-linja li ġejja mal-parametri tal-utent fl-aħħar tal-fajl:
vpnuser pptpd 1 *
“pptpd” valur huwa l-isem tas-servizz li speċifikajna fil-fajl “opzjonijiet-pptpd”. Minflok "*" tista' tispeċifika indirizz IP fiss. Fir-riżultat, il-fajl "chap-sigrieti" għandu jidher bħal dan:
Biex tapplika l-issettjar reset l- pptpd servizz u żidha ma 'awtoloading.
sudo systemctl restart pptpd
sudo systemctl enable pptpd
Il-konfigurazzjoni tas-server hija lesta.
Konfigurazzjoni tal-klijent
miftuħa "Ibda" - "Settings" - Netwerk u Internet - "VPN" u kklikkja "Żid konnessjoni VPN"
Daħħal il-parametri tal-konnessjoni fit-tieqa miftuħa u kklikkja "Issejvja"
- Fornitur VPN: "Windows (inkorporat)"
- Isem tal-konnessjoni: "vpn_connect" (tista' tagħżel kwalunkwe isem)
- Isem jew indirizz tas-server: (speċifika l-indirizz IP estern tas-server)
- Tip VPN: "Auto"
- Tip ta’ informazzjoni ta’ dħul: “Isem tal-utent u password”
- Isem l-utent: vpnuser (isem speċifikat fil-fajl “chap-secrets” fuq is-server)
- password: 1 (bħal fil-fajl "chap-sigrieti")
Wara li tissejvja l-parametri, tara l-konnessjoni VPN ġdida fit-tieqa. Ikklikkja xellug il-konnessjoni u agħżel "Qabbad". Fil-każ ta 'konnessjoni ta' suċċess, se tara "Konness" istatus.
Fl-Għażliet, issib indirizzi interni tal-klijent u tas-server. Qasam “Indirizz tad-destinazzjoni” juri l-indirizz estern tas-server.
Meta konness, l-indirizz IP intern tas-server, 172.16.0.1 fil-każ tagħna, isir il-portal default għall-pakketti kollha ħerġin.
Bl-użu ta 'kwalunkwe servizz onlajn tista' tiżgura li l-indirizz IP estern tal-kompjuter issa huwa l-istess bħall-indirizz IP tas-server VPN tiegħek.
Server OpenVPN
Konfigurazzjoni tas-server
Ejja nippromwovu l-livell tal-permessi tal-utent attwali għaliex għall-konfigurazzjoni ulterjuri tagħna ser ikollna bżonn aċċess għall-għeruq.
sudo -s
Installa l-pakketti kollha meħtieġa. Ikollna bżonn "Faċli-RSA" pakkett biex jimmaniġġja ċwievet ta 'encryption.
apt install openvpn easy-rsa iptables-persistent
Ippermetti konnessjonijiet deħlin fuq il-port 1194 permezz tal-protokoll UDP u applika r-regoli tal-iptables.
sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT
sudo netfilter-persistent save
Oħloq direttorju bil-fajls ikkupjati mill-pakkett “Easy-RSA” u naviga fih.
make-cadir ~/openvpn
cd ~/openvpn
Iġġenera Infrastruttura taċ-Ċavetta Pubblika (PKI).
./easyrsa init-pki
Iġġenera ċ-ċertifikat ewlieni tal-Awtorità taċ-Ċertifikazzjoni (CA).
./easyrsa build-ca
Matul il-proċess tal-ħolqien, int se tintalab tissettja u tiftakar password. Ikollok bżonn ukoll twieġeb mistoqsijiet u ddaħħal informazzjoni dwar is-sid taċ-ċavetta. Tista' tħalli l-valuri awtomatiċi pprovduti fil-parentesi kwadri. Agħfas "Enter" biex tiffinalizza l-input.
Iġġenera ċavetta privata u talba għal ċertifikat. Bħala argument, speċifika isem arbitrarju; fil-każ tagħna, huwa “vpn-server”.
./easyrsa gen-req vpn-server nopass
Ħalli l-valur tal-Isem Komuni bħala default.
Iffirma t-talba taċ-ċertifikat tas-server iġġenerata.
./easyrsa sign-req server vpn-server
F'dan il-pass, wieġeb "iva" biex tikkonferma l-firma, imbagħad daħħal il-password li nħolqot waqt il-ġenerazzjoni taċ-ċertifikat ewlieni.
Iġġenera parametri Diffie-Hellman. Dawn il-parametri jintużaw għall-iskambju sigur taċ-ċwievet bejn is-server u l-klijent.
./easyrsa gen-dh
Il-fajls meħtieġa kollha ġew iġġenerati. Ejja noħolqu fowlder "keys" fid-direttorju tax-xogħol tal-OpenVPN biex naħżnu ċ-ċwievet u nikkopjaw il-fajls maħluqa hemmhekk.
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
Ikkonfigura n-NAT billi tuża iptables regoli. Oħloq fajl bl-isem nat u iftaħha għall-editjar fil- /etc/openvpn/ direttorju.
#!/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
Issejvja l-fajl u agħmlu eżegwibbli.
sudo chmod 755 /etc/openvpn/nat
Ikkopja l-mudell tal-konfigurazzjoni tas-server.
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/
Iftaħ il-fajl “/etc/openvpn/server.conf” għall-editjar, kun żgur li fih il-linji li ġejjin, u editjahom jekk meħtieġ:
#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
Ippermetti t-trażmissjoni tat-traffiku fuq is-server.
sudo sysctl -w net.ipv4.ip_forward=1
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
Ibda OpenVPN biex tapplika l-konfigurazzjoni.
systemctl restart openvpn@server
Il-konfigurazzjoni tas-server hija lesta!
Konfigurazzjoni tal-klijent
Mur fil-websajt uffiċjali ta 'OpenVPN "https://openvpn.net”, mur fil- “KOMUNITÀ” taqsima.
Skrolla 'l isfel u niżżel l-installatur għall-verżjoni tas-sistema operattiva tiegħek. Fil-każ tagħna, huwa Windows 11 ARM64.
Installa l-applikazzjoni billi tħalli l-parametri kollha awtomatikament.
Fl-istadju li jmiss ser ikollok bżonn tipprepara l-fajl li ġej fuq is-server u ttrasferihom fuq il-kompjuter tal-klijent:
- ċwievet pubbliċi u privati;
- kopja taċ-ċavetta taċ-ċentru taċ-ċertifikazzjoni;
- mudell tal-fajl tal-konfigurazzjoni.
Qabbad mas-server, żid il-privileġġi, u innaviga lejn id-direttorju li ħloqna "~/openvpn".
sudo -s
cd ~/openvpn
Iġġenera ċavetta privata u talba għal ċertifikat għall-klijent. Bħala argument, speċifika isem arbitrarju; fil-każ tagħna, huwa “klijent1”.
./easyrsa gen-req client1 nopass
Daħħal il-password li waqqafna meta ħloqna ċ-ċertifikat ewlieni u ħalli l-valur tal-Isem Komuni bħala default.
Iffirma t-talba taċ-ċertifikat tal-klijent iġġenerata.
./easyrsa sign-req client client1
F'dan il-pass, wieġeb "iva" biex tikkonferma l-firma, imbagħad daħħal il-password li nħolqot waqt il-ġenerazzjoni taċ-ċertifikat ewlieni.
Għal konvenjenza, ejja noħolqu folder bl-isem 'client1' fid-direttorju tad-dar u nikkopjaw il-fajls kollha maħsuba għat-trasferiment lejn il-kompjuter tal-klijent fih.
mkdir ~/client1
cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt ~/client1/
Ikkopja l-mudell tal-fajl tal-konfigurazzjoni tal-klijent fl-istess direttorju. Ibdel l-estensjoni tal-fajl għal ".ovpn" waqt li tikkopja.
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn
Ibdel is-sid tad-direttorju u l-fajls kollha “~/client1/” biex ikunu jistgħu jqassmuhom lill-klijent. Ejja nagħmlu "mihail" is-sid fil-każ tagħna.
chown -R mihail:mihail ~/client1
Mur fil-kompjuter tal-klijent u kkopja l-kontenut tal- “~/client1/” folder. Tista 'tagħmel dan bl-għajnuna ta' "PSCP" utilità, li tmur ma 'Putty.
PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1
Tista 'taħżen fajls ewlenin “ca.crt”, “client1.crt”, “client1.key” fejn trid. Fil-każ tagħna, huma f'dan il-folder "c:\Program Files\OpenVPN\keys", u aħna mod il-fajl tal-konfigurazzjoni “client.ovpn” fil- "c:\Program Files\OpenVPN\config" direttorju.
Issa ejja nikkonfiguraw il-klijent. Iftaħ il-fajl "c:\Program Files\OpenVPN\config\client.ovpn" f'editur tat-test u editja l-linji li ġejjin:
#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
Ħalli l-bqija mhux mittiefsa.
Issejvja l-fajl u tniedi l-applikazzjoni tal-klijent “OpenVPN GUI”.
Ikklikkja bil-lemin fuq l-ikona tal-app fit-taskbar u agħżel "Qabbad". Jekk il-konnessjoni tirnexxi l-ikona ssir ħadra.
Uża kwalunkwe servizz onlajn biex tiżgura li l-indirizz IP pubbliku tiegħek inbidel u issa huwa l-istess bħall-indirizz IP tas-server.