Baza znanja Jednostavna uputstva za rad sa uslugom Profitserver
glavni Baza znanja Podešavanje VPN servera na Linuxu: PPTP ili OpenVPN?

Podešavanje VPN servera na Linuxu: PPTP ili OpenVPN?


Danas VPN tehnologija postaje sve popularnija. Obični korisnici koriste VPN za siguran pristup internetu. Također pomaže zaobići lokalno blokirane web stranice i usluge i štiti od mogućeg vanjskog zlonamjernog ponašanja. Kada se povezujete na VPN server, između vašeg računara i servera postoji siguran tunel kojem se ne može pristupiti izvana, tako da VPN server postaje vaša Internet pristupna tačka. Postoji mnogo VPN usluga, besplatnih i plaćenih, ali ako iz nekog razloga ne rade za vas, uvijek možete konfigurirati vlastiti VPN server.

Da biste pokrenuli svoj VPN, trebali biste iznajmiti VPS server. Postoji različit softver koji vam omogućava da kreirate VPN vezu. Međusobno se razlikuju po podržanim operativnim sistemima i korištenim algoritmima. Pogledat ćemo dva nezavisna pristupa za postavljanje VPN servera. Prvi je baziran na PPTP protokolu koji se već smatra zastarjelim i nije siguran, ali ga je zaista lako konfigurirati. Drugi koristi moderan i siguran softver OpenVPN, ali zahtijeva instaliranje klijentske aplikacije treće strane i temeljitiji proces podešavanja.

U našem testnom okruženju koristićemo virtuelni server koji pokreće Ubuntu Server 18.04. Firewall će biti isključen na serveru jer njegova konfiguracija zaslužuje poseban članak. Opisat ćemo proces postavljanja na Windows 10.

priprema

Bez obzira koji VPN server odaberete, pristup Internetu će biti postavljen integrisanim sredstvima operativnog sistema. Da biste otvorili pristup Internetu preko eksternog servisnog interfejsa, morate dozvoliti prosleđivanje paketa između interfejsa i konfigurisati prevođenje mrežnih adresa.

Da biste uključili prosljeđivanje paketa, otvorite datoteku “/etc/sysctl.conf” i promjena “net.ipv4.ip_forward” vrijednost parametra u 1.

uključite prosljeđivanje paketa za podešavanje VPN-a

Da biste primijenili promjene bez ponovnog pokretanja računara, pokrenite naredbu

sudo sysctl -p /etc/sysctl.conf

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

ip link show

Omogućite prevođenje mrežnih adresa na vašem 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 pravo ime sučelja vašeg servera, ono može biti drugačije od našeg.

Podrazumevano, sva pravila kreirana od strane iptables se resetuju nakon ponovnog pokretanja servera. Da biste to spriječili, koristite “iptables-persistent” korisnost. Instalirajte sljedeći paket:

sudo apt install iptables-persistent

U nekom trenutku tokom procesa instalacije, vidjet ćete prozor za konfiguraciju koji će vam predložiti spremanje trenutnih iptables pravila. Pošto su pravila već definirana, samo potvrdite i kliknite "Da" dvaput. Od sada će se pravila automatski primjenjivati ​​nakon ponovnog pokretanja servera.

Uključite prijevod adrese

PPTP server

Konfiguracija servera

Instalirajte paket:

sudo apt install pptpd

Nakon završetka instalacije otvorite datoteku “/etc/pptpd.conf” u bilo kojem uređivaču teksta i uredite ga na sljedeći način:

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 je podešena 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 kreirati zapis za klijentske veze. Recimo da želite dodati korisnika “vpnuser” sa lozinkom "1" i omogućiti mu dinamičko adresiranje. Otvorite fajl “/etc/ppp/chap-secrets” i dodajte sljedeći red sa korisničkim parametrima na kraju datoteke:

vpnuser pptpd 1 *

“pptpd” vrijednost je naziv servisa koji smo naveli u datoteci “pptpd-opcije”. Umjesto "*" možete odrediti fiksnu IP adresu. Kao rezultat, fajl “chap-secrets” trebalo bi izgledati ovako:

Podešavanje VPN servera

Da biste primijenili postavke, resetirajte pptpd uslugu i dodajte je u automatsko učitavanje.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

Konfiguracija servera je završena.

Konfiguracija klijenta

otvoreno "Start" - "Postavke" - Mreža i Internet - "VPN" i kliknite “Dodaj VPN vezu”

Podešavanje klijenta za VPN vezu

Unesite parametre veze u prozor koji se otvorio i kliknite “Spremi”

  • VPN provajder: “Windows (ugrađeni)”
  • Naziv veze: “vpn_connect” (možete odabrati bilo koji naziv)
  • Ime ili adresa servera: (navedite eksternu IP adresu servera)
  • Vrsta VPN-a: “Automatski”
  • Vrsta podataka za prijavu: “Korisničko ime i lozinka”
  • Korisničko ime: vpnuser (ime navedeno u datoteci “chap-secrets” na serveru)
  • Password: 1 (kao u fajlu "chap-secrets")

Nakon spremanja parametara, vidjet ćete novu VPN vezu u prozoru. Kliknite lijevom tipkom miša na vezu i odaberite “Poveži se”. U slučaju uspješne veze, vidjet ćete “Povezano” status.

Dodavanje VPN veze

U Opcijama ćete pronaći interne adrese klijenta i servera. Polje “Adresa odredišta” prikazuje adresu eksternog servera.

Kako sami postaviti VPN server

Kada je povezan, interna IP adresa servera, 172.16.0.1 u našem slučaju, postaje default gateway za sve odlazne pakete.

Provjerite eksternu IP adresu

Koristeći bilo koju online uslugu možete se uvjeriti da je vanjska IP adresa računala sada ista kao IP adresa vašeg VPN servera.

OpenVPN server

Konfiguracija servera

Hajde da promovišemo nivo dozvola trenutnog korisnika jer će nam za dalje konfigurisanje trebati root pristup.

sudo -s

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

apt install openvpn easy-rsa iptables-persistent

Dozvoli 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

Kreirajte direktorij s kopiranim datotekama iz paketa „Easy-RSA“ i uđite u njega.

make-cadir ~/openvpn

cd ~/openvpn

Generiranje infrastrukture javnih ključeva (PKI).

./easyrsa init-pki

Generirajte korijenski certifikat Certificate Authority (CA).

./easyrsa build-ca

Tokom procesa kreiranja, bit ćete upitani da postavite i zapamtite lozinku. Također ćete morati odgovoriti na pitanja i unijeti informacije o vlasniku ključa. Možete ostaviti zadane vrijednosti navedene u uglastim zagradama. Pritisnite "Enter" da biste završili unos.

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 servera.

./easyrsa sign-req server vpn-server

U ovom koraku odgovorite sa "da" da biste potvrdili potpis, a zatim unesite lozinku koja je kreirana tokom generisanja korijenskog certifikata.

Generirajte Diffie-Hellman parametre. Ovi parametri se koriste za sigurnu razmjenu ključeva između servera i klijenta.

./easyrsa gen-dh

Sve potrebne datoteke su generirane. Napravimo mapu "keys" u radnom direktoriju OpenVPN-a za pohranu ključeva i kopirajmo kreirane 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

Konfigurišite NAT koristeći iptables pravila. Kreirajte datoteku pod nazivom nat i otvorite ga za uređivanje u /etc/openvpn/ direktorij.

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

Sačuvajte datoteku i učinite je izvršnom.

sudo chmod 755 /etc/openvpn/nat

Kopirajte predložak konfiguracije servera.

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

Otvorite datoteku “/etc/openvpn/server.conf” za uređivanje, uvjerite se da sadrži sljedeće redove 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 serveru.

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 servera je završena!

Konfiguracija klijenta

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

Pređite na službeni sajt projekta “https://openvpn.net”, prijeđite u odjeljak “COMUNITY”.

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

prolistivaem uniz i skačivaem instalaciju za svoju verziju operativne sistema. U našem slučaju je Windows 11 ARM64.

Instalirajte aplikaciju ostavljajući sve parametre kao zadane.

U sljedećoj fazi morat ćete pripremiti sljedeće datoteke na serveru i prenijeti ih na klijentski računar:

  • javni i privatni ključevi;
  • kopiju ključa centra za sertifikaciju;
  • predložak konfiguracijske datoteke.

Povežite se sa serverom, povećajte privilegije i idite do 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 kreiranja korijenskog certifikata i ostavite vrijednost Common Name kao zadanu.

Unesite lozinku, koju smo uspostavili pri kreiranju kornevog sertifikata i ostavši značenju uobičajenog imena prema zadanim postavkama.

Potpišite generirani zahtjev za klijentski certifikat.

./easyrsa sign-req client client1

U ovom koraku odgovorite sa "da" da biste potvrdili potpis, a zatim unesite lozinku koja je kreirana tokom generisanja korijenskog certifikata.

Na ovom koraku otvaramo "da" za potvrdu potpisivanja, nakon čega je uvedena lozinka, koji je stvoren pri kreiranju kornevog sertifikata.

Radi lakšeg snalaženja, kreirajmo mapu pod nazivom 'client1' u početnom direktoriju i kopirajmo u nju sve datoteke namijenjene za prijenos na klijentski računar.

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” prilikom 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. Hajde da napravimo “mihail” vlasnik u našem slučaju.

chown -R mihail:mihail ~/client1

Idite na klijentski računar i kopirajte sadržaj “~/klijent1/” folder. 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 fajlove “ca.crt”, “client1.crt”, “client1.key” gde god želite. U našem slučaju, oni se nalaze u ovoj fascikli “c:\Program Files\OpenVPN\keys”, i modificiramo konfiguracijski fajl “client.ovpn” u “c:\Program Files\OpenVPN\config” direktorij.

Sada idemo na konfiguraciju klijenta. Otvorite fajl “c:\Program Files\OpenVPN\config\client.ovpn” u uređivaču teksta i uredite sljedeće redove:

#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 netaknuto.

Sačuvajte datoteku i pokrenite klijentsku aplikaciju “OpenVPN GUI”.

Postavljanje VPN-a je završeno

Desnom tipkom miša kliknite na ikonu aplikacije na traci zadataka i odaberite “Poveži se”. Ako je veza uspješna, ikona će postati zelena.

Koristite bilo koju uslugu na mreži kako biste bili sigurni da se vaša javna IP adresa promijenila i da je sada ista kao IP adresa servera.

❮ Prethodni članak Podešavanje FTP servera
Sljedeći članak ❯ Kako postaviti Wireguard VPN na vašem serveru

Pitajte nas za VPS

Uvek smo spremni da odgovorimo na vaša pitanja u bilo koje doba dana i noći.