Saiki, teknologi VPN dadi luwih populer. Pangguna biasa nggunakake VPN kanggo ngakses Internet kanthi aman. Iki uga mbantu ngubengi situs web lan layanan sing diblokir sacara lokal lan nglindhungi saka tumindak ala eksternal sing bisa ditindakake. Nalika sampeyan nyambungake menyang server VPN, ana trowongan sing aman antarane komputer lan server sing ora bisa diakses saka njaba, mula server VPN dadi titik akses Internet sampeyan. Ana akeh layanan VPN ing kana, gratis lan mbayar, nanging yen ora bisa digunakake kanggo sampeyan, sampeyan bisa ngatur server VPN sampeyan dhewe.
Kanggo mbukak VPN sampeyan, sampeyan kudu nyewa server VPS . Ana macem-macem piranti lunak sing ngidini sampeyan nggawe sambungan VPN. Iki beda-beda saka sistem operasi sing didhukung lan algoritma sing digunakake. Kita bakal ndeleng rong pendekatan independen kanggo nyetel server VPN. Sing pertama adhedhasar protokol PPTP sing wis dianggep ketinggalan jaman lan ora aman nanging gampang banget dikonfigurasi. Sing liyane nggunakake piranti lunak OpenVPN modern lan aman nanging mbutuhake instalasi aplikasi klien pihak katelu lan proses persiyapan sing luwih lengkap.
Ing lingkungan uji coba, kita bakal nggunakake server virtual sing didhukung dening Ubuntu Server 18.04. A firewall bakal dipateni ing server amarga konfigurasi pantes artikel kapisah. Kita bakal njlèntrèhaké proses persiyapan ing Windows 10.
Preparation
Ora preduli server VPN sing sampeyan pilih, akses Internet bakal disiyapake kanthi cara terpadu saka sistem operasi. Kanggo mbukak akses Internet liwat antarmuka layanan eksternal, sampeyan kudu ngidini kiriman paket ing antarane antarmuka lan ngatur terjemahan alamat jaringan.
Kanggo ngaktifake penerusan paket, bukak file "/etc/sysctl.conf" lan ganti nilai parameter "net.ipv4.ip_forward" dadi 1.
Kanggo ngetrapake owah-owahan tanpa rebooting komputer, jalanake printah kasebut
sudo sysctl -p /etc/sysctl.conf
Terjemahan alamat jaringan dikonfigurasi nganggo iptables . Kapisan, priksa jeneng antarmuka jaringan eksternal sampeyan kanthi nggunakake printah "ip link show" - sampeyan bakal mbutuhake ing langkah sabanjure. Jeneng kita yaiku "ens3".
Aktifake terjemahan alamat jaringan ing antarmuka eksternal kanggo kabeh simpul jaringan lokal.
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
Elinga yen sampeyan kudu nemtokake jeneng asli antarmuka server sampeyan, bisa uga beda karo kita.
Sacara standar, kabeh aturan sing digawe dening iptables bakal direset sawise server diwiwiti maneh. Kanggo nyegah kuwi, gunakake utilitas "iptables-persistent" . Instal paket ing ngisor iki:
sudo apt install iptables-persistent
Ing sawijining wektu sajrone proses instalasi, sampeyan bakal weruh jendela konfigurasi sing menehi saran supaya sampeyan nyimpen aturan iptables saiki. Amarga aturan kasebut wis ditetepake, cukup konfirmasi lan klik "Ya" kaping pindho. Amarga saiki aturan kasebut bakal ditrapake kanthi otomatis sawise server diwiwiti maneh.
Server PPTP
Konfigurasi server
Instal paket:
sudo apt install pptpd
Sawise instalasi rampung, bukak file "/etc/pptpd.conf" ing editor teks apa wae lan sunting kaya iki:
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
Sawisé kuwi, sunting berkas “/etc/ppp/pptpd-options” . Akèh-akèhé paramèter wis disetel kanthi gawan.
#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
Ing tahap sabanjure, sampeyan kudu nggawe rekaman kanggo sambungan klien. Umpamane sampeyan pengin nambah pangguna "vpnuser" nganggo sandhi "1" lan ngidini alamat dinamis kanggo dheweke. Bukak file "/etc/ppp/chap-secrets" lan tambahake baris ing ngisor iki nganggo parameter pangguna ing pungkasan file:
vpnuser pptpd 1 *
Nilai "pptpd" kuwi jeneng layanan sing wis ditemtokake ing file "pptpd-options" . Tinimbang "*" , sampeyan bisa nemtokake alamat IP tetep. Akibate, file "chap-secrets" kudune katon kaya iki:
Kanggo ngetrapake setelan, reset layanan pptpd lan tambahake menyang autoloading.
sudo systemctl restart pptpd
sudo systemctl enable pptpd
Konfigurasi server wis rampung.
Konfigurasi klien
Bukak "Mulai" - "Setelan" - "Jaringan & Internet" - "VPN" banjur klik "Tambah sambungan VPN"
Ketik parameter sambungan ing jendhela sing dibukak lan klik "Simpen"
- Panyedhiya VPN: "Windows (built-in)"
- Jeneng sambungan: "vpn_connect" (sampeyan bisa milih jeneng apa wae)
- Jeneng utawa alamat server: (nemtokake alamat IP eksternal server)
- Tipe VPN: "Otomatis"
- Jinis info mlebu: "Jeneng pangguna lan sandhi"
- Jeneng pangguna: vpnuser (jeneng kasebut ing file "chap-secrets" ing server)
- sandi: 1 (kaya ing file "chap-secrets")
Sawise nyimpen parameter, sampeyan bakal weruh sambungan VPN anyar ing jendhela. Klik kiwa sambungan kasebut banjur pilih "Sambungake" . Yen sambungan sukses, sampeyan bakal weruh status "Sambung" .
Ing Pilihan, sampeyan bakal nemokake alamat internal klien lan server. Kolom "Alamat tujuan" nampilake alamat server eksternal.
Nalika disambungake, alamat IP internal server, 172.16.0.1 ing kasus kita, dadi gateway standar kanggo kabeh paket metu.
Nggunakake layanan online apa wae, sampeyan bisa nggawe manawa alamat IP eksternal komputer saiki padha karo alamat IP server VPN sampeyan.
Server OpenVPN
Konfigurasi server
Ayo ningkatake tingkat ijin pangguna saiki amarga konfigurasi luwih lanjut kita butuh akses root.
sudo -s
Instal kabeh paket sing dibutuhake. Kita butuh paket "Easy-RSA" kanggo ngatur kunci enkripsi.
apt install openvpn easy-rsa iptables-persistent
Ngidini sambungan mlebu ing port 1194 liwat protokol UDP lan aplikasi aturan iptables.
sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT
sudo netfilter-persistent save
Gawe direktori kanthi file sing disalin saka paket "Easy-RSA" lan navigasi menyang.
make-cadir ~/openvpn
cd ~/openvpn
Generate Public Key Infrastructure (PKI).
./easyrsa init-pki
Gawe sertifikat root Certificate Authority (CA).
./easyrsa build-ca
Sajrone proses nggawe, sampeyan bakal dijaluk nyetel lan ngelingi sandhi. Sampeyan uga kudu mangsuli pitakon lan ngetik informasi babagan pemilik kunci. Sampeyan bisa ninggalake nilai gawan sing kasedhiya ing kurung kothak. Pencet "Ketik" kanggo ngrampungake input.
Gawe kunci pribadi lan panjaluk sertifikat. Minangka argumentasi, nemtokake jeneng kasepakatan; ing kasus kita, iku "vpn-server".
./easyrsa gen-req vpn-server nopass
Ninggalake nilai Jeneng Umum minangka standar.
Mlebu request certificate server kui.
./easyrsa sign-req server vpn-server
Ing langkah iki, wangsulan "ya" kanggo konfirmasi teken, banjur ketik sandhi sing digawe sak generasi certificate ROOT.
Ngasilake paramèter Diffie-Hellman. Parameter kasebut digunakake kanggo ijol-ijolan kunci sing aman antarane server lan klien.
./easyrsa gen-dh
Kabeh file sing dibutuhake wis digawe. Ayo nggawe folder "kunci" ing direktori kerja OpenVPN kanggo nyimpen kunci lan nyalin file sing digawe ing kana.
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
Konfigurasi NAT nggunakake iptables aturan. Nggawe file jenenge nat lan mbukak kanggo editing ing /etc/openvpn/ direktori.
#!/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 lan nggawe eksekusi.
sudo chmod 755 /etc/openvpn/nat
Nyalin cithakan konfigurasi server.
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/
Bukak file "/etc/openvpn/server.conf" kanggo diowahi, priksa manawa isine baris ing ngisor iki, lan sunting yen prelu:
#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
Aktifake kiriman lalu lintas ing server.
sudo sysctl -w net.ipv4.ip_forward=1
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
Miwiti OpenVPN kanggo ngetrapake konfigurasi.
systemctl restart openvpn@server
Konfigurasi server wis rampung!
Konfigurasi klien
Bukak situs web resmi OpenVPN “ https://openvpn.net ”, banjur bukak bagean “KOMUNITAS”.
Gulung mudhun lan download installer kanggo versi sistem operasi sampeyan. Ing kasus kita, iku Windows 11 ARM64.
Instal aplikasi ninggalake kabeh paramèter minangka standar.
Ing tahap sabanjure sampeyan kudu nyiyapake file ing ngisor iki ing server lan transfer menyang komputer klien:
- kunci umum lan pribadi;
- salinan kunci pusat sertifikasi;
- Cithakan file config.
Sambungake menyang server, elevate hak istimewa, lan navigasi menyang kita digawe direktori "~/openvpn".
sudo -s
cd ~/openvpn
Gawe kunci pribadi lan panjaluk sertifikat kanggo klien. Minangka argumentasi, nemtokake jeneng kasepakatan; ing kasus kita, iku "klien1".
./easyrsa gen-req client1 nopass
Ketik sandhi sing disetel nalika nggawe sertifikat root lan ninggalake nilai Jeneng Umum minangka standar.
Tandhani panjalukan sertifikat klien sing digawe.
./easyrsa sign-req client client1
Ing langkah iki, wangsulan "ya" kanggo konfirmasi teken, banjur ketik sandhi sing digawe sak generasi certificate ROOT.
Kanggo penak, ayo nggawe folder kanthi jeneng 'client1' ing direktori ngarep lan nyalin kabeh file sing dituju kanggo transfer menyang komputer klien.
mkdir ~/client1
cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt ~/client1/
Salin cithakan file konfigurasi klien menyang direktori sing padha. Ganti ekstensi file dadi ".ovpn" nalika nyalin.
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn
Ganti sing nduwèni direktori lan kabèh file “~/client1/” supaya bisa disebaraké menyang klien. Ayo dadi "mihail" sing nduwèni ing kasus iki.
chown -R mihail:mihail ~/client1
Bukak komputer klien lan salin isi folder "~/client1/" . Sampeyan bisa nindakake iku nganggo bantuan utilitas "PSCP" , sing ana ing Putty.
PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1
Sampeyan bisa nyimpen file kunci "ca.crt" , "client1.crt" , "client1.key" ing ngendi wae sing dikarepake. Ing kasus kita, file kasebut ana ing folder iki "c:\Program Files\OpenVPN\keys" , lan kita ngowahi file konfigurasi "client.ovpn" menyang direktori "c:\Program Files\OpenVPN\config".
Saiki ayo padha ngonfigurasi klien. Bukak file “c:\Program Files\OpenVPN\config\client.ovpn” ing editor teks lan sunting baris ing ngisor iki:
#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
Ninggalake liyane ora kena.
Simpen file kasebut lan bukak aplikasi klien "OpenVPN GUI".
Klik-tengen ing lambang aplikasi ing taskbar banjur pilih "Connect" . Yen sambungan kasil, lambang kasebut bakal malih dadi ijo.
Gunakake layanan online apa wae kanggo mesthekake alamat IP umum sampeyan wis diganti lan saiki padha karo alamat IP server.