Kiwari, téknologi VPN janten langkung populer. Pamaké biasa nganggo VPN pikeun ngaksés Internét aman. Éta ogé ngabantosan situs wéb sareng jasa anu diblokir sacara lokal sareng ngajagi tina kamungkinan paripolah jahat éksternal. Nalika anjeun nyambung ka server VPN, aya torowongan anu aman antara komputer sareng server anu henteu tiasa diakses ti luar, janten server VPN janten titik aksés Internét anjeun. Aya seueur jasa VPN di luar, gratis sareng mayar, tapi upami aranjeunna henteu tiasa dianggo pikeun anjeun kusabab sababaraha alesan, anjeun tiasa ngonpigurasikeun server VPN anjeun nyalira.
Pikeun ngajalankeun VPN anjeun, anjeun kedah nyéwa server VPS . Aya sababaraha parangkat lunak anu ngamungkinkeun anjeun ngadamel sambungan VPN. Éta bénten-bénten dumasar kana sistem operasi anu dirojong sareng algoritma anu dianggo. Urang bakal ningali dua pendekatan mandiri pikeun nyetél server VPN. Anu kahiji dumasar kana protokol PPTP anu parantos dianggap luntur sareng henteu aman tapi gampang pisan dikonfigurasi. Anu sanésna nganggo parangkat lunak OpenVPN anu modéren sareng aman tapi meryogikeun pamasangan aplikasi klien pihak katilu sareng prosés setelan anu langkung lengkep.
Dina lingkungan tés urang, urang bade nganggo server maya Powered by Ubuntu Server 18.04. A firewall bade dipareuman dina server sabab konfigurasi na pantes hiji artikel misah. Kami bakal ngajelaskeun prosés setelan dina Windows 10.
siap-siapna
Henteu masalah server VPN anu anjeun pilih, aksés Internét bakal disetél ku cara terpadu tina sistem operasi. Pikeun muka aksés Internét ngaliwatan antarbeungeut jasa éksternal, anjeun kedah ngijinkeun pakét diteruskeun antara antarmuka sareng ngonpigurasikeun tarjamahan alamat jaringan.
Pikeun ngaktipkeun packet forwarding, buka file “/etc/sysctl.conf” teras robih nilai parameter “net.ipv4.ip_forward” jadi 1.
Dina raraga nerapkeun parobahan tanpa rebooting komputer, ngajalankeun paréntah
sudo sysctl -p /etc/sysctl.conf
Tarjamahan alamat jaringan dikonfigurasi ku cara iptables . Mimitina, pariksa nami antarmuka jaringan éksternal anjeun ku ngajalankeun paréntah "ip link show" - anjeun bakal peryogi éta dina léngkah salajengna. Nami urang nyaéta "ens3".
Aktipkeun tarjamahan alamat jaringan dina antarmuka éksternal anjeun pikeun sadaya titik jaringan lokal.
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
Catet yén anjeun kedah netepkeun nami asli antarmuka pangladén anjeun, éta tiasa bénten ti urang.
Sacara standar, sadaya aturan anu didamel ku iptables bakal di-reset saatos server di-restart. Pikeun nyegah éta, anggo utilitas "iptables-persistent" . Pasang pakét ieu:
sudo apt install iptables-persistent
Dina hiji waktos salami prosés pamasangan, anjeun bakal ningali jandela konfigurasi anu bakal nyarankeun anjeun pikeun nyimpen aturan iptables ayeuna. Kusabab aturan parantos ditetepkeun, cukup konfirmasi teras klik "Leres" dua kali. Kusabab ayeuna aturan bakal diterapkeun sacara otomatis saatos server dibalikan deui.
Server PPTP
Konfigurasi server
Pasang pakét:
sudo apt install pptpd
Saatos pamasangan réngsé, buka file "/etc/pptpd.conf" dina éditor téks naon waé teras édit sapertos kieu:
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
Saatos éta, édit file "/etc/ppp/pptpd-options" . Kaseueuran parameter disetel sacara standar.
#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
Dina tahap salajengna, anjeun kedah ngadamel rékaman pikeun sambungan klien. Hayu urang sebutkeun anjeun hoyong nambihan pangguna "vpnuser" nganggo kecap akses "1" sareng ngijinkeun alamat dinamis pikeun anjeunna. Buka file "/etc/ppp/chap-secrets" teras tambahkeun baris ieu nganggo parameter pangguna di ahir file:
vpnuser pptpd 1 *
Nilai "pptpd" nyaéta nami layanan anu urang tangtukeun dina file "pptpd-options" . Gantina "*" anjeun tiasa nangtukeun alamat IP anu tetep. Hasilna, file "chap-secrets" kedahna sapertos kieu:
Pikeun nerapkeun setélan, reset layanan pptpd teras tambahkeun kana autoloading.
sudo systemctl restart pptpd
sudo systemctl enable pptpd
Konfigurasi server réngsé.
Konfigurasi klien
Buka "Mimitian" - "Setélan" - "Jaringan & Internét" - "VPN" teras klik "Tambahkeun sambungan VPN"
Lebetkeun parameter sambungan dina jandela anu dibuka teras klik "Simpen".
- Panyadia VPN: "Windows (built-in)"
- Ngaran sambungan: "vpn_connect" (anjeun tiasa milih nami naon waé)
- Ngaran atanapi alamat server: (sebutkeun alamat IP éksternal server)
- Jenis VPN: "Otomatis"
- Jenis inpormasi asup: "Ngaran pangguna sareng kecap akses"
- Ngaran pangguna: vpnuser (ngaran dieusian dina file "chap-rahasia" dina server)
- password: 1 (sapertos dina file "chap-rahasia")
Saatos nyimpen parameter, anjeun bakal ningali sambungan VPN anyar dina jandela. Klik-kénca sambungan teras pilih "Sambungkeun" . Upami sambungan suksés, anjeun bakal ningali status "Nyambung" .
Dina Pilihan, anjeun bakal mendakan alamat internal klien sareng server. Kolom "Alamat tujuan" nampilkeun alamat server éksternal.
Nalika nyambung, alamat IP internal server, 172.16.0.1 dina kasus urang, janten gateway standar pikeun sadaya pakét anu kaluar.
Nganggo jasa online naon waé anjeun tiasa mastikeun yén alamat IP éksternal komputer ayeuna sami sareng alamat IP server VPN anjeun.
Server OpenVPN
Konfigurasi server
Hayu urang ngamajukeun tingkat idin ti pamaké ayeuna sabab pikeun konfigurasi salajengna urang bakal butuh aksés root.
sudo -s
Pasang sadaya pakét anu diperyogikeun. Urang peryogi pakét "Easy-RSA" pikeun ngatur konci énkripsi.
apt install openvpn easy-rsa iptables-persistent
Ngidinan sambungan asup dina port 1194 via protokol UDP jeung nerapkeun aturan iptables.
sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT
sudo netfilter-persistent save
Jieun diréktori sareng file anu disalin tina pakét "Easy-RSA" teras napigasi ka dinya.
make-cadir ~/openvpn
cd ~/openvpn
Ngahasilkeun Infrastruktur Kunci Publik (PKI).
./easyrsa init-pki
Ngahasilkeun Sertipikat Otoritas (CA) sertipikat akar.
./easyrsa build-ca
Salila prosés nyiptakeun, anjeun bakal dipenta pikeun nyetél sareng nginget kecap konci. Anjeun ogé kedah ngajawab patarosan sareng ngalebetkeun inpormasi ngeunaan anu gaduh konci. Anjeun tiasa ninggalkeun nilai standar disadiakeun dina kurung kuadrat. Pencét "Asupkeun" pikeun ngabéréskeun input.
Ngahasilkeun konci pribadi sareng pamundut sertipikat. Salaku argumen, tangtukeun ngaran sawenang; dina kasus urang, éta "vpn-server".
./easyrsa gen-req vpn-server nopass
Ninggalkeun nilai Ngaran Umum salaku standar.
Asupkeun pamundut sertipikat server dihasilkeun.
./easyrsa sign-req server vpn-server
Dina léngkah ieu, jawab "enya" pikeun ngonfirmasi tanda tangan, teras lebetkeun kecap akses anu didamel nalika generasi sertipikat akar.
Ngahasilkeun parameter Diffie-Hellman. Parameter ieu dianggo pikeun tukeur konci anu aman antara server sareng klien.
./easyrsa gen-dh
Sadaya file anu diperyogikeun parantos didamel. Hayu urang ngadamel folder "konci" dina diréktori kerja OpenVPN pikeun nyimpen konci sareng nyalin file anu didamel di dinya.
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
Ngonpigurasikeun NAT ngagunakeun iptables aturan. Jieun file ngaranna nat tur buka pikeun ngédit dina /etc/openvpn/ diréktori.
#!/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
Simpen file sareng laksanakeun.
sudo chmod 755 /etc/openvpn/nat
Nyalin template konfigurasi server.
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/
Buka file "/etc/openvpn/server.conf" kanggo diédit, pastikeun éta ngandung baris-baris ieu, teras édit upami diperyogikeun:
#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
Aktipkeun lalu lintas diteruskeun dina server.
sudo sysctl -w net.ipv4.ip_forward=1
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
Mimitian OpenVPN pikeun nerapkeun konfigurasi.
systemctl restart openvpn@server
Konfigurasi server réngsé!
Konfigurasi klien
Buka situs wéb resmi OpenVPN “ https://openvpn.net ”, teras buka bagian “KOMUNITAS”.
Gulung ka handap tur ngundeur installer pikeun versi sistem operasi Anjeun. Dina kasus urang, éta Windows 11 ARM64.
Pasang aplikasi ninggalkeun sadaya parameter sacara standar.
Dina tahap salajengna anjeun kedah nyiapkeun file di handap ieu dina server sareng mindahkeun kana komputer klien:
- konci umum jeung swasta;
- salinan konci puseur sertifikasi;
- config file template.
Sambungkeun ka server, angkat hak istimewa, sareng arahkeun ka diréktori anu kami buat "~/openvpn".
sudo -s
cd ~/openvpn
Ngahasilkeun konci pribadi sareng pamundut sertipikat pikeun klien. Salaku argumen, tangtukeun ngaran sawenang; dina kasus urang, éta "klien1".
./easyrsa gen-req client1 nopass
Lebetkeun kecap akses anu kami setel nalika nyiptakeun sertipikat akar sareng tinggalkeun nilai Ngaran Umum salaku standar.
Asupkeun pamundut sertipikat klien dihasilkeun.
./easyrsa sign-req client client1
Dina léngkah ieu, jawab "enya" pikeun ngonfirmasi tanda tangan, teras lebetkeun kecap akses anu didamel nalika generasi sertipikat akar.
Pikeun genah, hayu urang nyieun folder ngaranna 'client1' dina diréktori imah jeung nyalin sakabéh file dimaksudkeun pikeun mindahkeun ka komputer klien kana eta.
mkdir ~/client1
cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt ~/client1/
Salin témplat file konfigurasi klien ka diréktori anu sami. Robah éksténsi file ka ".ovpn" nalika nyalin.
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn
Robah nu boga diréktori jeung sakabéh file “~/client1/” sangkan bisa disebarkeun ka klien. Hayu urang jadikeun “mihail” nu boga dina kasus urang.
chown -R mihail:mihail ~/client1
Buka komputer klien teras salin eusi folder "~/client1/" . Anjeun tiasa ngalakukeun éta kalayan bantosan utilitas "PSCP" , anu aya dina Putty.
PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1
Anjeun tiasa nyimpen file konci "ca.crt" , "client1.crt" , "client1.key" dimana waé anjeun hoyong. Dina kasus urang, éta aya dina folder ieu "c:\Program Files\OpenVPN\keys" , sareng urang mode file konfigurasi "client.ovpn" kana diréktori "c:\Program Files\OpenVPN\config".
Ayeuna hayu urang ngonpigurasikeun klien. Buka file "c:\Program Files\OpenVPN\config\client.ovpn" dina éditor téks teras édit baris-baris ieu:
#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
Ninggalkeun sésana teu kacekel.
Simpen file teras jalankeun aplikasi klien "OpenVPN GUI".
Klik-katuhu dina ikon aplikasi dina taskbar teras pilih "Connect" . Upami sambunganna suksés, ikonna bakal robah jadi héjo.
Anggo jasa online naon waé pikeun mastikeun alamat IP umum anjeun parantos robih sareng ayeuna sami sareng alamat IP pangladén.