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 un, sampeyan kudu nyewa server VPS. Ana macem-macem piranti lunak sing ngidini sampeyan nggawe sambungan VPN. Iku beda-beda saka saben liyane dening sistem operasi didhukung lan algoritma digunakake. Kita bakal ndeleng rong pendekatan independen kanggo nyiyapake server VPN. Sing pisanan adhedhasar protokol PPTP sing wis dianggep lungse lan ora aman nanging pancen gampang diatur. Sing liyane nggunakake piranti lunak OpenVPN modern lan aman nanging mbutuhake nginstal 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 packet forwarding, bukak file kasebut "/etc/sysctl.conf" lan ngganti "net.ipv4.ip_forward" nilai parameter ing 1.
Kanggo ngetrapake owah-owahan tanpa rebooting komputer, jalanake printah kasebut
sudo sysctl -p /etc/sysctl.conf
Terjemahan alamat jaringan diatur kanthi cara iptables. Pisanan, priksa jeneng antarmuka jaringan eksternal sing nganggo perintah kasebut "ip link show" - sampeyan bakal mbutuhake ing langkah sabanjure. jeneng kita "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.
Kanthi gawan, kabeh aturan sing digawe dening iptables direset sawise server diwiwiti maneh. Kanggo nyegah, gunakake "iptables-persistent" sarana. Instal paket ing ngisor iki:
sudo apt install iptables-persistent
Ing sawetara titik sajrone proses instalasi, sampeyan bakal weruh jendhela konfigurasi sing bakal menehi saran supaya sampeyan nyimpen aturan iptables saiki. Wiwit aturan wis ditetepake, mung konfirmasi lan klik "Ya" kaping pindho. Wiwit saiki aturan bakal diterapake kanthi otomatis sawise miwiti maneh server.
Server PPTP
Konfigurasi server
Instal paket:
sudo apt install pptpd
Sawise instalasi rampung, bukak file kasebut "/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
Sawise iku, sunting file "/etc/ppp/pptpd-options". Umume paramèter 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. Contone, sampeyan pengin nambah pangguna "vpnuser" karo tembung sandi "1" lan ngidini alamat dinamis kanggo dheweke. Bukak file kasebut "/etc/ppp/chap-rahasia" lan tambahake baris ing ngisor iki kanthi paramèter pangguna ing pungkasan berkas:
vpnuser pptpd 1 *
"pptpd" Nilai iku jeneng layanan sing kita nemtokake ing file "pilihan-pptpd". Tinimbang "*" sampeyan bisa nemtokake alamat IP tetep. Ing asil, file "rahasia bab" kudu katon kaya iki:
Kanggo ngetrapake setelan, reset pptpd layanan lan ditambahake menyang autoloading.
sudo systemctl restart pptpd
sudo systemctl enable pptpd
Konfigurasi server wis rampung.
Konfigurasi klien
Open "Miwiti" - "Setelan" - Jaringan & Internet - "VPN" lan klik "Tambah sambungan VPN"
Ketik paramèter sambungan ing jendhela sing dibukak banjur 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 paramèter, sampeyan bakal weruh sambungan VPN anyar ing jendhela. Klik kiwa sambungan banjur pilih "Sambungake". Ing kasus sambungan sukses, sampeyan bakal weruh "Sambung" status.
Ing Pilihan, sampeyan bakal nemokake alamat internal klien lan server. lapangan "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 bakal butuh "Easy-RSA" paket 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/
Mbukak file "/etc/openvpn/server.conf" kanggo nyunting, priksa manawa ana baris ing ngisor iki, lan owahi yen perlu:
#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", pindhah menyang "KOMUNITAS" bagean.
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 template file konfigurasi klien menyang direktori sing padha. Ganti ekstensi file menyang ".ovpn" nalika nyalin.
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn
Ngganti pemilik direktori lan kabeh file “~/klien1/” supaya bisa disebarake menyang klien. Ayo nggawe "mihail" pemilik ing kasus kita.
chown -R mihail:mihail ~/client1
Pindhah menyang komputer klien lan nyalin isi “~/klien1/” folder. Sampeyan bisa nindakake iku kanthi bantuan saka "PSCP" sarana, sing dadi karo Putty.
PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1
Sampeyan bisa nyimpen file kunci "ca.crt", "klien1.crt", "klien1.kunci" ing ngendi wae sampeyan pengin. Ing kasus kita, dheweke ana ing folder iki "c:\Program Files\OpenVPN\keys", lan kita mode file konfigurasi "klien.ovpn" menyang "c:\Program Files\OpenVPN\config" direktori.
Saiki ayo miwiti konfigurasi klien. Bukak file kasebut "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 lan bukak aplikasi klien "OpenVPN GUI".
Klik-tengen ing lambang app ing taskbar banjur pilih "Sambungake". Yen sambungan sukses lambang bakal dadi ijo.
Gunakake layanan online apa wae kanggo mesthekake alamat IP umum sampeyan wis diganti lan saiki padha karo alamat IP server.