Intrebari Frecvente Instrucțiuni simple pentru a lucra cu serviciul Profitserver
Principal Intrebari Frecvente Configurarea serverului VPN pe Linux: PPTP sau OpenVPN?

Configurarea serverului VPN pe Linux: PPTP sau OpenVPN?


În zilele noastre, tehnologia VPN devine mai populară. Utilizatorii obișnuiți folosesc VPN pentru a accesa în siguranță Internetul. De asemenea, ajută la ocolirea site-urilor și a serviciilor blocate local și la protejarea împotriva unui posibil comportament rău intenționat extern. Când vă conectați la un server VPN, există un tunel sigur între computer și server, care nu poate fi accesat din exterior, astfel încât serverul VPN devine punctul dvs. de acces la Internet. Există o mulțime de servicii VPN, atât gratuite, cât și plătite, dar dacă nu funcționează pentru dvs. dintr-un motiv oarecare, vă puteți configura oricând propriul server VPN.

Pentru a vă rula VPN-ul, ar trebui inchiriez server VPS. Există diferite programe care vă permit să creați o conexiune VPN. Diferă unele de altele prin sistemele de operare acceptate și algoritmii utilizați. Vom arunca o privire la două abordări independente pentru a configura un server VPN. Primul se bazează pe protocolul PPTP care este deja considerat învechit și nu este sigur, dar este foarte ușor de configurat. Celălalt folosește software modern și securizat OpenVPN, dar necesită instalarea unei aplicații client terță parte și un proces de configurare mai amănunțit.

În mediul nostru de testare, vom folosi un server virtual alimentat de Ubuntu Server 18.04. Un firewall va fi dezactivat pe server, deoarece configurația sa merită un articol separat. Vom descrie procesul de configurare pe Windows 10.

Pregătire

Indiferent de serverul VPN pe care îl alegeți, accesul la Internet va fi configurat prin mijloace integrate ale sistemului de operare. Pentru a deschide accesul la Internet printr-o interfață de serviciu externă, trebuie să permiteți redirecționarea pachetelor între interfețe și să configurați traducerea adreselor de rețea.

Pentru a activa redirecționarea pachetelor, deschideți fișierul „/etc/sysctl.conf” și schimbare „net.ipv4.ip_forward” valoarea parametrului în 1.

activați redirecționarea pachetelor pentru configurarea VPN

Pentru a aplica modificările fără a reporni computerul, executați comanda

sudo sysctl -p /etc/sysctl.conf

Traducerea adresei de rețea este configurată prin intermediul iptables. Mai întâi, verificați numele interfeței de rețea externă care rulează comanda „afișare link ip” - veți avea nevoie de el la pasul următor. Numele nostru este „ens3”.

afișează linkul ip

Activați traducerea adresei de rețea la interfața externă pentru toate nodurile rețelei locale.

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

Rețineți că trebuie să specificați numele real al interfeței serverului dvs., acesta poate fi diferit de al nostru.

În mod implicit, toate regulile create de iptables sunt resetate după repornirea serverului. Pentru a preveni acest lucru, utilizați „iptables-persistent” utilitate. Instalați următorul pachet:

sudo apt install iptables-persistent

La un moment dat în timpul procesului de instalare, veți vedea o fereastră de configurare care vă va sugera să salvați regulile iptables curente. Deoarece regulile sunt deja definite, doar confirmați și faceți clic "Da" de două ori. De acum, regulile vor fi aplicate automat după repornirea serverului.

Activați traducerea adresei

Server PPTP

Configurarea serverului

Instalați pachetul:

sudo apt install pptpd

După ce instalarea se termină, deschideți fișierul „/etc/pptpd.conf” în orice editor de text și editați-l astfel:

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

După aceea, editați fișierul „/etc/ppp/pptpd-options”. Majoritatea parametrilor sunt configurați implicit.

#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

În etapa următoare, va trebui să creați o înregistrare pentru conexiunile client. Să presupunem că doriți să adăugați un utilizator „vpnuser” cu parola "1" și permiteți adresarea dinamică pentru el. Deschideți fișierul „/etc/ppp/chap-secrets” și adăugați următoarea linie cu parametrii utilizatorului la sfârșitul fișierului:

vpnuser pptpd 1 *

„pptpd” value este numele serviciului pe care l-am specificat în fișier „opțiuni-pptpd”. In loc de „*” puteți specifica o adresă IP fixă. În rezultat, fișierul „secrete de tip” ar trebui să arate așa:

Configurare server VPN

Pentru a aplica setările, resetați pptpd serviciu și adăugați-l la încărcarea automată.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

Configurarea serverului este finalizată.

Configurarea clientului

Operatii Deschise "Start" - „Setări“ - Rețea și Internet - „VPN” și faceți clic „Adăugați o conexiune VPN”

Configurați clientul pentru conexiunea VPN

Introduceți parametrii de conectare în fereastra deschisă și faceți clic "Salvați"

  • Furnizor VPN: „Windows (încorporat)”
  • Numele conexiunii: „vpn_connect” (puteți alege orice nume)
  • Numele sau adresa serverului: (specificați adresa IP externă a serverului)
  • Tip VPN: „Automat”
  • Tipul de informații de conectare: „Nume de utilizator și parolă”
  • Nume de utilizator: vpnuser (numele specificat în fișierul „chap-secrets” de pe server)
  • Parola: 1 (ca în fișierul „chap-secrets”)

După salvarea parametrilor, veți vedea noua conexiune VPN în fereastră. Faceți clic stânga pe conexiune și selectați "Conectați". În cazul unei conexiuni reușite, veți vedea "Conectat" stare.

Adăugarea conexiunii VPN

În Opțiuni, veți găsi adrese interne ale clientului și ale serverului. Domeniu „Adresa de destinație” afișează adresa serverului extern.

Cum să configurați singur serverul VPN

Când este conectat, adresa IP internă a serverului, 172.16.0.1 în cazul nostru, devine gateway-ul implicit pentru toate pachetele de ieșire.

Verificați adresa IP externă

Folosind orice serviciu online, vă puteți asigura că adresa IP externă a computerului este acum aceeași cu adresa IP a serverului dumneavoastră VPN.

Serverul OpenVPN

Configurarea serverului

Să promovăm nivelul de permisiuni al utilizatorului actual, deoarece pentru configurarea noastră ulterioară vom avea nevoie de acces root.

sudo -s

Instalați toate pachetele necesare. Vom avea nevoie „Ușor-RSA” pachet pentru a gestiona cheile de criptare.

apt install openvpn easy-rsa iptables-persistent

Permite conexiunile primite pe portul 1194 prin protocolul UDP și aplică regulile iptables.

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

sudo netfilter-persistent save

Creați un director cu fișierele copiate din pachetul „Easy-RSA” și navigați în el.

make-cadir ~/openvpn

cd ~/openvpn

Generați infrastructura cu cheie publică (PKI).

./easyrsa init-pki

Generați certificatul rădăcină al autorității de certificare (CA).

./easyrsa build-ca

În timpul procesului de creare, vi se va solicita să setați și să rețineți o parolă. De asemenea, va trebui să răspundeți la întrebări și să introduceți informații despre proprietarul cheii. Puteți lăsa valorile implicite furnizate între paranteze pătrate. Apăsați „Enter” pentru a finaliza introducerea.

Generați o cheie privată și o cerere de certificat. Ca argument, specificați un nume arbitrar; în cazul nostru, este „vpn-server”.

./easyrsa gen-req vpn-server nopass

Lăsați valoarea Nume comun ca implicită.

Semnați cererea de certificat de server generată.

./easyrsa sign-req server vpn-server

În acest pas, răspundeți cu „da” pentru a confirma semnătura, apoi introduceți parola creată în timpul generării certificatului rădăcină.

Generați parametri Diffie-Hellman. Acești parametri sunt utilizați pentru schimbul securizat de chei între server și client.

./easyrsa gen-dh

Toate fișierele necesare au fost generate. Să creăm un folder „keys” în directorul de lucru OpenVPN pentru a stoca cheile și a copia fișierele create acolo.

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

Configurați NAT folosind iptables reguli. Creați un fișier numit nat și deschideți-l pentru editare în /etc/openvpn/ director.

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

Salvați fișierul și faceți-l executabil.

sudo chmod 755 /etc/openvpn/nat

Copiați șablonul de configurare a serverului.

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

Deschideți fișierul „/etc/openvpn/server.conf” pentru editare, asigurați-vă că conține următoarele rânduri și editați-le dacă este necesar:

#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

Activați redirecționarea traficului pe server.

sudo sysctl -w net.ipv4.ip_forward=1

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

Porniți OpenVPN pentru a aplica configurația.

systemctl restart openvpn@server

Configurarea serverului este finalizată!

Configurarea clientului

Accesați site-ul oficial al OpenVPN „https://openvpn.net”, mergeți la „COMUNITATEA” secţiune.

Заходим на официальный сайт проекта „https://openvpn.net”, переходим в раздел „COMUNITATEA”.

Derulați în jos și descărcați programul de instalare pentru versiunea sistemului dvs. de operare. În cazul nostru, este Windows 11 ARM64.

пролистываем вниз и скачиваем инсталлятор для своей версии операционной системы. В нашем случае это Windows 11 ARM64.

Instalați aplicația lăsând toți parametrii implicit.

În etapa următoare, va trebui să pregătiți următorul fișier pe server și să le transferați pe computerul client:

  • chei publice și private;
  • copia cheii centrului de certificare;
  • șablon de fișier de configurare.

Conectați-vă la server, ridicați privilegiile și navigați la directorul creat de noi "~/openvpn".

sudo -s

cd ~/openvpn

Generați o cheie privată și o cerere de certificat pentru client. Ca argument, specificați un nume arbitrar; în cazul nostru, este „client1”.

./easyrsa gen-req client1 nopass

Introduceți parola pe care am setat-o la crearea certificatului rădăcină și lăsați valoarea Nume comun ca implicită.

Вводим пароль, который мы устанавливали при создании корневого сертификата и оставляем Nume comun знач умолчанию.

Semnați cererea de certificat client generată.

./easyrsa sign-req client client1

În acest pas, răspundeți cu „da” pentru a confirma semnătura, apoi introduceți parola creată în timpul generării certificatului rădăcină.

На этом шаге отвечаем "da" для подтверждения подписи, после чего вводим пароль, которылный бироры создании корневого сертификата.

Pentru comoditate, să creăm un folder numit „client1” în directorul principal și să copiem în el toate fișierele destinate transferului pe computerul client.

mkdir ~/client1

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

Copiați șablonul fișierului de configurare client în același director. Schimbați extensia fișierului în „.ovpn” în timpul copierii.

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

Schimbați proprietarul directorului și al tuturor fișierelor „~/client1/” pentru a le putea distribui clientului. Să facem „mihail” proprietarul în cazul nostru.

chown -R mihail:mihail ~/client1

Accesați computerul client și copiați conținutul fișierului „~/client1/” pliant. Puteți face asta cu ajutorul lui „PSCP” utilitate, care merge cu Putty.

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

Puteți stoca fișiere cheie „ca.crt”, „client1.crt”, „client1.key” oriunde vrei tu. În cazul nostru, acestea se află în acest folder „c:\Program Files\OpenVPN\keys”, și modăm fișierul de configurare „client.ovpn” în „c:\Program Files\OpenVPN\config” director.

Acum să trecem la configurarea clientului. Deschideți fișierul „c:\Program Files\OpenVPN\config\client.ovpn” într-un editor de text și editați următoarele rânduri:

#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

Lăsați restul neatins.

Salvați fișierul și lansați aplicația client „OpenVPN GUI”.

Configurarea VPN s-a încheiat

Faceți clic dreapta pe pictograma aplicației din bara de activități și alegeți "Conectați". Dacă conexiunea are succes, pictograma va deveni verde.

Utilizați orice serviciu online pentru a vă asigura că adresa IP publică s-a schimbat și că acum este aceeași cu adresa IP a serverului.

❮ Articolul precedent Cum să configurați Wireguard VPN pe serverul dvs
Articolul următor ❯ Configurare server FTP

Întrebați-ne despre VPS

Suntem întotdeauna gata să vă răspundem la întrebări la orice oră din zi sau din noapte.