Znanja Jednostavne upute za rad s uslugom Profitserver
Glavni Znanja Postavljanje VPN poslužitelja na Linuxu: PPTP ili OpenVPN?

Postavljanje VPN poslužitelja na Linuxu: PPTP ili OpenVPN?


U današnje vrijeme VPN tehnologija postaje sve popularnija. Obični korisnici koriste VPN za siguran pristup internetu. Također pomaže u zaobilaženju lokalno blokiranih web stranica i usluga i zaštiti od mogućeg vanjskog zlonamjernog ponašanja. Kada se spajate na VPN poslužitelj, postoji siguran tunel između vašeg računala i poslužitelja kojem se ne može pristupiti izvana, tako da VPN poslužitelj postaje vaša internetska pristupna točka. Postoji mnogo VPN usluga, besplatnih i plaćenih, ali ako vam iz nekog razloga ne rade, uvijek možete konfigurirati vlastiti VPN poslužitelj.

Da biste pokrenuli svoj VPN, trebali biste najam VPS servera. Postoje različiti softveri koji vam omogućuju stvaranje VPN veze. Međusobno se razlikuje po podržanim operativnim sustavima i korištenim algoritmima. Pogledat ćemo dva neovisna pristupa za postavljanje VPN poslužitelja. Prvi se temelji na PPTP protokolu koji se već smatra zastarjelim i nesigurnim, ali ga je doista lako konfigurirati. Drugi koristi moderan i siguran softver OpenVPN, ali zahtijeva instalaciju klijentske aplikacije treće strane i temeljitiji postupak postavljanja.

U našem testnom okruženju koristit ćemo virtualni poslužitelj koji pokreće Ubuntu Server 18.04. Vatrozid će biti isključen na poslužitelju jer njegova konfiguracija zaslužuje poseban članak. Opisat ćemo postupak postavljanja na Windows 10.

Priprema

Bez obzira koji VPN poslužitelj odaberete, pristup Internetu bit će postavljen integriranim sredstvima operativnog sustava. Kako biste otvorili pristup Internetu preko vanjskog servisnog sučelja, morate omogućiti prosljeđivanje paketa između sučelja i konfigurirati prijevod mrežne adrese.

Za uključivanje prosljeđivanja paketa otvorite datoteku “/etc/sysctl.conf” i promijeniti “net.ipv4.ip_forward” vrijednost parametra u 1.

uključite prosljeđivanje paketa za postavljanje VPN-a

Kako biste primijenili promjene bez ponovnog pokretanja računala, pokrenite naredbu

sudo sysctl -p /etc/sysctl.conf

Prijevod mrežne adrese konfiguriran je pomoću iptables. Prvo provjerite naziv vašeg vanjskog mrežnog sučelja koje pokreće naredbu “ip link show” - trebat će vam u sljedećem koraku. Naše ime je “ens3”.

ip link show

Omogućite prijevod mrežne adrese na svom vanjskom sučelju za sve čvorove lokalne mreže.

sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE

Imajte na umu da morate navesti pravi naziv sučelja vašeg poslužitelja, može se razlikovati od našeg.

Prema zadanim postavkama, sva pravila stvorena pomoću iptables poništavaju se nakon ponovnog pokretanja poslužitelja. Kako biste to spriječili, koristite “iptables-persistent” korisnost. Instalirajte sljedeći paket:

sudo apt install iptables-persistent

U nekom trenutku tijekom procesa instalacije, vidjet ćete konfiguracijski prozor koji će vam predložiti spremanje trenutnih pravila iptables. Budući da su pravila već definirana, samo potvrdite i kliknite "Da" dvaput. Od sada će se pravila primjenjivati ​​automatski nakon ponovnog pokretanja poslužitelja.

Uključite prijevod adrese

PPTP poslužitelj

Konfiguracija poslužitelja

Instalirajte paket:

sudo apt install pptpd

Nakon što instalacija završi, otvorite datoteku “/etc/pptpd.conf” u bilo kojem uređivaču teksta i uredite ga ovako:

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

Nakon toga uredite datoteku “/etc/ppp/pptpd-opcije”. Većina parametara postavljena je prema zadanim postavkama.

#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

U sljedećoj fazi morat ćete stvoriti zapis za klijentske veze. Recimo da želite dodati korisnika “vpnuser” s lozinkom "1" i omogućiti mu dinamičko adresiranje. Otvorite datoteku “/etc/ppp/chap-secrets” i dodajte sljedeći redak s korisničkim parametrima na kraju datoteke:

vpnuser pptpd 1 *

“pptpd” vrijednost je naziv usluge koju smo naveli u datoteci “pptpd-opcije”, Umjesto "*" možete navesti fiksnu IP adresu. Kao rezultat, datoteka “morske tajne” trebao bi izgledati ovako:

Postavljanje VPN poslužitelja

Za primjenu postavki resetirajte pptpd uslugu i dodajte je u automatsko učitavanje.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

Konfiguracija poslužitelja je gotova.

Konfiguracija klijenta

Otvoren "Početak" - „Postavke” - Mreža & Internet - "VPN" i kliknite “Dodajte VPN vezu”

Postavljanje klijenta za VPN vezu

Unesite parametre veze u prozor koji se otvori i kliknite "Uštedjeti"

  • VPN pružatelj: “Windows (ugrađeno)”
  • Naziv veze: “vpn_connect” (možete odabrati bilo koji naziv)
  • Ime ili adresa poslužitelja: (navedite vanjsku IP adresu poslužitelja)
  • Vrsta VPN-a: "Auto"
  • Vrsta podataka za prijavu: "Korisničko ime i lozinka"
  • Korisničko ime: vpnuser (naziv naveden u datoteci "chap-secrets" na poslužitelju)
  • Lozinka: 1 (kao u datoteci "chap-secrets")

Nakon spremanja parametara, u prozoru ćete vidjeti novu VPN vezu. Kliknite vezu lijevom tipkom miša i odaberite "Connect". U slučaju uspješne veze, vidjet ćete "Povezano" Status.

Dodavanje VPN veze

U opcijama ćete pronaći interne adrese klijenta i poslužitelja. Polje “Odredišna adresa” prikazuje adresu vanjskog poslužitelja.

Kako sami postaviti VPN poslužitelj

Kada je spojen, interna IP adresa poslužitelja, 172.16.0.1 u našem slučaju, postaje zadani pristupnik za sve odlazne pakete.

Provjerite vanjsku IP adresu

Korištenjem bilo koje online usluge možete provjeriti je li vanjska IP adresa računala sada ista kao IP adresa vašeg VPN poslužitelja.

OpenVPN poslužitelj

Konfiguracija poslužitelja

Promovirajmo razinu dopuštenja trenutnog korisnika jer će nam za daljnju konfiguraciju trebati root pristup.

sudo -s

Instalirajte sve potrebne pakete. Trebat će nam “Easy-RSA” paket za upravljanje ključevima za šifriranje.

apt install openvpn easy-rsa iptables-persistent

Dopusti dolazne veze na portu 1194 putem UDP protokola i primijeni iptables pravila.

sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT

sudo netfilter-persistent save

Izradite direktorij s kopiranim datotekama iz paketa „Easy-RSA“ i idite u njega.

make-cadir ~/openvpn

cd ~/openvpn

Generiranje infrastrukture javnih ključeva (PKI).

./easyrsa init-pki

Generirajte korijenski certifikat izdavatelja certifikata (CA).

./easyrsa build-ca

Tijekom procesa stvaranja, bit ćete upitani da postavite i zapamtite lozinku. Također ćete morati odgovoriti na pitanja i unijeti podatke o vlasniku ključa. Možete ostaviti zadane vrijednosti navedene u uglatim zagradama. Pritisnite "Enter" za dovršetak unosa.

Generirajte privatni ključ i zahtjev za certifikat. Kao argument navedite proizvoljno ime; u našem slučaju to je „vpn-server“.

./easyrsa gen-req vpn-server nopass

Ostavite vrijednost Uobičajeni naziv kao zadanu.

Potpišite generirani zahtjev za certifikat poslužitelja.

./easyrsa sign-req server vpn-server

U ovom koraku odgovorite s "da" kako biste potvrdili potpis, a zatim unesite lozinku koja je kreirana tijekom generiranja korijenskog certifikata.

Generirajte Diffie-Hellmanove parametre. Ovi parametri se koriste za sigurnu razmjenu ključeva između poslužitelja i klijenta.

./easyrsa gen-dh

Sve potrebne datoteke su generirane. Izradimo mapu "keys" u radnom direktoriju OpenVPN-a za pohranu ključeva i kopirajmo stvorene datoteke tamo.

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

Konfigurirajte NAT pomoću iptables pravila. Izradite datoteku pod nazivom nat i otvorite ga za uređivanje u /etc/openvpn/ katalog.

#!/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

Spremi datoteku i učini je izvršnom.

sudo chmod 755 /etc/openvpn/nat

Kopirajte predložak konfiguracije poslužitelja.

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/

Otvorite datoteku “/etc/openvpn/server.conf” za uređivanje, provjerite sadrži li sljedeće retke i uredite ih ako je potrebno:

#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

Omogućite prosljeđivanje prometa na poslužitelju.

sudo sysctl -w net.ipv4.ip_forward=1

echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf

Pokrenite OpenVPN da biste primijenili konfiguraciju.

systemctl restart openvpn@server

Konfiguracija poslužitelja je gotova!

Konfiguracija klijenta

Idite na službenu web stranicu OpenVPN “https://openvpn.net”, idite na “ZAJEDNICA” odjeljak.

Prijeđite na službenu stranicu projekta “https://openvpn.net”, prijeđite u odjeljak “ZAJEDNICA”.

Pomaknite se prema dolje i preuzmite instalacijski program za svoju verziju operativnog sustava. U našem slučaju, to je Windows 11 ARM64.

prolistyvaem dolje i skačivaem instalaciju za svoju verziju operativnog sustava. U našem slučaju to je Windows 11 ARM64.

Instalirajte aplikaciju ostavljajući sve parametre kao zadane.

U sljedećoj fazi morat ćete pripremiti sljedeću datoteku na poslužitelju i prenijeti ih na klijentsko računalo:

  • javni i privatni ključevi;
  • presliku ključa certifikacijskog centra;
  • predložak konfiguracijske datoteke.

Spojite se na poslužitelj, povećajte privilegije i idite do našeg kreiranog direktorija "~/openvpn".

sudo -s

cd ~/openvpn

Generirajte privatni ključ i zahtjev za certifikat za klijenta. Kao argument navedite proizvoljno ime; u našem slučaju to je „klijent1“.

./easyrsa gen-req client1 nopass

Unesite lozinku koju smo postavili prilikom izrade korijenskog certifikata i ostavite vrijednost Common Name kao zadanu.

Unesite zaporku koju smo postavili pri stvaranju kornevog certifikata i ostavite vrijednost Common Name prema zadanim postavkama.

Potpišite generirani zahtjev za klijentski certifikat.

./easyrsa sign-req client client1

U ovom koraku odgovorite s "da" kako biste potvrdili potpis, a zatim unesite lozinku koja je kreirana tijekom generiranja korijenskog certifikata.

U ovom koraku odgovaramo "da" za potvrdu potpisa, nakon što unesemo lozinku koja je stvorena prilikom kreiranja kornevog certifikata.

Radi lakšeg snalaženja, stvorimo mapu pod nazivom 'client1' u početnom direktoriju i u nju kopirajmo sve datoteke namijenjene prijenosu na klijentsko računalo.

mkdir ~/client1

cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt ~/client1/

Kopirajte predložak konfiguracijske datoteke klijenta u isti direktorij. Promijenite ekstenziju datoteke u “.ovpn” tijekom kopiranja.

cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn

Promijenite vlasnika direktorija i svih datoteka “~/klijent1/” kako bi ih mogli distribuirati klijentu. Napravimo “mihail” vlasnik u našem slučaju.

chown -R mihail:mihail ~/client1

Idite na klijentsko računalo i kopirajte sadržaj datoteke “~/klijent1/” mapa. To možete učiniti uz pomoć "PSCP" uslužni program, koji ide uz Putty.

PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1

Možete pohraniti ključne datoteke “ca.crt”, “client1.crt”, “client1.key” gdje god želite. U našem slučaju, oni su u ovoj mapi “c:\Programske datoteke\OpenVPN\ključevi”, i modificiramo konfiguracijsku datoteku “client.ovpn” u “c:\Program Files\OpenVPN\config” katalog.

Sada idemo na konfiguraciju klijenta. Otvorite datoteku “c:\Programske datoteke\OpenVPN\config\client.ovpn” u uređivaču teksta i uredite sljedeće retke:

#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

Ostalo ostavite netaknutim.

Spremite datoteku i pokrenite klijentsku aplikaciju “OpenVPN GUI”.

Postavljanje VPN-a je završeno

Desnom tipkom miša kliknite ikonu aplikacije na programskoj traci i odaberite "Connect". Ako je veza uspješna, ikona će postati zelena.

Upotrijebite bilo koju online uslugu kako biste provjerili je li vaša javna IP adresa promijenjena i sada je ista kao IP adresa poslužitelja.

❮ Prethodni članak Kako postaviti Wireguard VPN na svom poslužitelju
Sljedeći članak ❯ Postavljanje FTP poslužitelja

Pitajte nas o VPS-u

Uvijek smo spremni odgovoriti na vaša pitanja u bilo koje doba dana i noći.