Knowledgebase Ienfâldige ynstruksjes om te wurkjen mei de Profitserver-tsjinst
Foarnaamste Knowledgebase VPN-tsjinner opset op Linux: PPTP of OpenVPN?

VPN-tsjinner opset op Linux: PPTP of OpenVPN?


Tsjintwurdich wurdt VPN-technology populêrder. Gewoane brûkers brûke VPN om feilich tagong te krijen ta it ynternet. It helpt ek om lokaal blokkearre websiden en tsjinsten om te kommen en te beskermjen tsjin mooglik eksterne kweade gedrach. As jo ​​​​ferbine mei in VPN-tsjinner, is d'r in feilige tunnel tusken jo kompjûter en de server dy't net fan bûten tagonklik wurde kin, sadat de VPN-tsjinner jo ynternet tagongspunt wurdt. D'r binne d'r in protte VPN-tsjinsten, sawol fergees as betelle, mar as se om ien of oare reden net foar jo wurkje, kinne jo jo eigen VPN-tsjinner altyd ynstelle.

Om jo oun VPN út te fieren, moatte jo hiere VPS tsjinner. D'r is ferskate software wêrmei jo in VPN-ferbining kinne meitsje. It ferskilt fan elkoar troch bestjoeringssystemen stipe en algoritmen brûkt. Wy sille twa ûnôfhinklike oanpakken besjen om in VPN-tsjinner yn te stellen. De earste is basearre op PPTP-protokol dat al wurdt beskôge as ferâldere en net feilich, mar is echt maklik te konfigurearjen. De oare brûkt moderne en feilige software OpenVPN, mar fereasket it ynstallearjen fan in kliïntapplikaasje fan tredden en in mear yngeande opsetproses.

Yn ús testomjouwing sille wy in firtuele server brûke oandreaun troch Ubuntu Server 18.04. In brânmuorre sil wurde útskeakele op de tsjinner omdat syn konfiguraasje fertsjinnet in apart artikel. Wy sille it opsetproses beskriuwe Windows 10.

Tarieding

Makket net út hokker VPN-tsjinner jo kieze, de ynternettagong sil ynsteld wurde troch yntegreare middels fan it bestjoeringssysteem. Om ynternettagong te iepenjen fia in eksterne tsjinstynterface moatte jo pakketferstjoering tastean tusken de ynterfaces en de oersetting fan netwurkadres konfigurearje.

Om pakket trochstjoere yn te skeakeljen, iepenje de triem "/etc/sysctl.conf" en feroarje "net.ipv4.ip_forward" parameter wearde yn 1.

ynskeakelje trochstjoeren fan pakketten foar VPN-opset

Om wizigingen oan te passen sûnder de kompjûter opnij te begjinnen, fier it kommando út

sudo sysctl -p /etc/sysctl.conf

Netwurk adres oersetting wurdt ynsteld troch middel fan iptables. Kontrolearje earst de namme fan jo eksterne netwurkynterface dy't it kommando útfiert "ip link sjen litte" - jo sille it nedich wêze by de folgjende stap. Us namme is "ens3".

ip link sjen litte

Skeakelje netwurkadresoersetting yn op jo eksterne ynterface foar alle lokale netwurkknooppunten.

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

Tink derom dat jo de echte namme fan 'e ynterface fan jo server moatte opjaan, it kin oars wêze as ús.

Standert wurde alle regels makke troch iptables weromset nei de tsjinner opnij starte. Om dat te foarkommen, brûke "iptables-persistent" nut. Ynstallearje it folgjende pakket:

sudo apt install iptables-persistent

Op in stuit tidens it ynstallaasjeproses sille jo in konfiguraasjefinster sjen dat jo suggerearje dat jo hjoeddeistige iptables-regels bewarje. Sûnt de regels binne al definiearre, gewoan befêstigje en klik "Ja" twaris. Sûnt no wurde de regels automatysk tapast neidat de server opnij starte.

Adres oersetting ynskeakelje

PPTP -tsjinner

Tsjinner konfiguraasje

Ynstallearje it pakket:

sudo apt install pptpd

Nei de ynstallaasje einiget, iepenje it bestân "/etc/pptpd.conf" yn elke tekstbewurker en bewurkje it sa:

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

Dêrnei, bewurkje de triem "/etc/ppp/pptpd-opsjes". De measte parameters binne standert ynsteld.

#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

Op it folgjende poadium moatte jo in rekord meitsje foar klantferbiningen. Litte wy sizze dat jo in brûker taheakje wolle "vpnuser" mei wachtwurd "1" en tastean dynamyske adressering foar him. Iepenje de triem "/etc/ppp/chap-secrets" en foegje de folgjende rigel ta mei de parameters fan de brûker oan it ein fan it bestân:

vpnuser pptpd 1 *

"pptpd" wearde is de namme fan 'e tsjinst dy't wy spesifisearre hawwe yn it bestân "pptpd-opsjes". Yn plak fan "*" jo kinne in fêst IP-adres opjaan. Yn it resultaat, de triem "Kap-geheimen" moat der sa útsjen:

VPN-tsjinner opset

Om de ynstellings ta te passen, reset de pptpd tsjinst en foegje it ta oan autoloading.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

Tsjinner konfiguraasje is klear.

Client konfiguraasje

Iepen "Start" - "Ynstellings" - Netwurk & Ynternet - "VPN" en klikke "Foegje in VPN-ferbining ta"

Klant ynstelle foar VPN-ferbining

Fier de ferbiningsparameters yn yn it iepene finster en klikje "Rêde"

  • VPN-oanbieder: "Windows (ynboud)"
  • Ferbiningsnamme: "vpn_connect" (jo kinne elke namme kieze)
  • Tsjinnernamme of adres: (spesifisearje it eksterne IP-adres fan 'e tsjinner)
  • VPN-type: "Auto"
  • Soart oanmeldynfo: "Brûkersnamme en wachtwurd"
  • Brûkersnamme: vpnuser (namme spesifisearre yn it bestân "chap-secrets" op 'e tsjinner)
  • Wachtwurd: 1 (lykas yn it "chap-secrets"-bestân)

Nei it bewarjen fan parameters sille jo de nije VPN-ferbining yn it finster sjen. Klikje mei lofts op de ferbining en selektearje "Ferbine". Yn it gefal fan in suksesfolle ferbining sille jo sjen "Ferbûn" status.

It tafoegjen fan VPN-ferbining

Yn 'e Opsjes sille jo ynterne adressen fan' e kliïnt en de tsjinner fine. Fjild "Bestimmingsadres" toant it eksterne tsjinneradres.

Hoe kinne jo jo eigen VPN-tsjinner ynstelle

As ferbûn, it ynterne IP-adres fan de tsjinner, 172.16.0.1 yn ús gefal, wurdt de standert poarte foar alle útgeande pakketten.

Kontrolearje it eksterne IP-adres

Mei elke online tsjinst kinne jo derfoar soargje dat it eksterne IP-adres fan 'e kompjûter no itselde is as it IP-adres fan jo VPN-tsjinner.

OpenVPN-tsjinner

Tsjinner konfiguraasje

Litte wy it tastimmingsnivo fan 'e hjoeddeistige brûker befoarderje, om't wy foar ús fierdere konfiguraasje root-tagong nedich binne.

sudo -s

Ynstallearje alle nedige pakketten. Wy sille nedich "Easy-RSA" pakket om fersiferingskaaien te behearjen.

apt install openvpn easy-rsa iptables-persistent

Lit ynkommende ferbiningen ta op poarte 1194 fia UDP-protokol en tapasse iptables-regels.

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

sudo netfilter-persistent save

Meitsje in map mei kopiearre bestannen fan it pakket "Easy-RSA" en navigearje deryn.

make-cadir ~/openvpn

cd ~/openvpn

Generearje in iepenbiere kaai-ynfrastruktuer (PKI).

./easyrsa init-pki

Generearje it root-sertifikaat fan 'e sertifikaatautoriteit (CA).

./easyrsa build-ca

Tidens it oanmeitsjen wurdt jo frege om in wachtwurd yn te stellen en te ûnthâlden. Jo moatte ek fragen beantwurdzje en ynformaasje ynfiere oer de kaai-eigner. Jo kinne de standertwearden tusken fjouwerkante heakjes litte. Druk op "Enter" om de ynfier te foltôgjen.

Generearje in priveekaai en in sertifikaatfersyk. Jou as argumint in willekeurige namme op; yn ús gefal is it "vpn-server".

./easyrsa gen-req vpn-server nopass

Lit de wearde foar Algemiene namme as standert.

Undertekenje it generearre fersyk foar serversertifikaat.

./easyrsa sign-req server vpn-server

Antwurdzje by dizze stap "ja" om de hântekening te befêstigjen, en fier dan it wachtwurd yn dat makke is tidens it generearjen fan it rootsertifikaat.

Generearje Diffie-Hellman-parameters. Dizze parameters wurde brûkt foar feilige kaai-útwikseling tusken de server en de kliïnt.

./easyrsa gen-dh

Alle nedige bestannen binne generearre. Litte wy in map mei "keys" oanmeitsje yn 'e OpenVPN-wurkmap om de kaaien op te slaan en de oanmakke bestannen dêrhinne te kopiearjen.

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

NAT konfigurearje mei iptables regels. Meitsje in bestân mei de namme nat en iepenje it foar bewurking yn 'e /etc/openvpn/ directory.

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

Bewarje it bestân en meitsje it útfierber.

sudo chmod 755 /etc/openvpn/nat

Kopiearje it sjabloan foar de serverkonfiguraasje.

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

Iepenje it bestân "/etc/openvpn/server.conf" foar it bewurkjen, soargje derfoar dat it de folgjende rigels befettet, en bewurkje se as it nedich is:

#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

Skeakelje ferkears trochstjoering op 'e tsjinner yn.

sudo sysctl -w net.ipv4.ip_forward=1

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

Start OpenVPN om de konfiguraasje ta te passen.

systemctl restart openvpn@server

De tsjinner konfiguraasje is klear!

Client konfiguraasje

Gean nei de offisjele webside fan OpenVPN "https://openvpn.net", gean nei de "MISJE" ôfdieling.

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

Rôlje nei ûnderen en download it ynstallaasjeprogramma foar jo bestjoeringssysteemferzje. Yn ús gefal is it Windows 11 ARM64.

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

Ynstallearje de applikaasje troch alle parameters standert te litten.

Op it folgjende poadium moatte jo it folgjende bestân op 'e tsjinner tariede en oerdrage nei de kliïntkompjûter:

  • iepenbiere en partikuliere kaaien;
  • kopy fan de kaai foar sertifisearring sintrum;
  • konfiguraasjetriem sjabloan.

Ferbine mei de tsjinner, ferheegje privileezjes en navigearje nei ús oanmakke map "~/openvpn".

sudo -s

cd ~/openvpn

Generearje in priveekaai en in sertifikaatoanfraach foar de kliïnt. Jou as argumint in willekeurige namme op; yn ús gefal is it "client1".

./easyrsa gen-req client1 nopass

Fier it wachtwurd yn dat wy ynsteld hawwe by it oanmeitsjen fan it root-sertifikaat en lit de wearde "Algemiene namme" as standert.

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

Undertekenje it generearre kliïntsertifikaatfersyk.

./easyrsa sign-req client client1

Antwurdzje by dizze stap "ja" om de hântekening te befêstigjen, en fier dan it wachtwurd yn dat makke is tidens it generearjen fan it rootsertifikaat.

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

Litte wy foar it gemak in map oanmeitsje mei de namme 'client1' yn 'e thúsmap en alle bestannen dy't bedoeld binne foar oerdracht nei de kliïntkompjûter dêrhinne kopiearje.

mkdir ~/client1

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

Kopiearje it client konfiguraasjetriem sjabloan nei deselde map. Feroarje de triem taheaksel nei ".ovpn" wylst it kopiearjen.

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

Feroarje de eigner fan 'e map en alle bestannen "~/client1/" om se te fersprieden nei de klant. Litte wy meitsje "mihail" de eigner yn ús gefal.

chown -R mihail:mihail ~/client1

Gean nei de kliïnt kompjûter en kopiearje de ynhâld fan de "~/client1/" folder. Jo kinne dwaan dat mei help fan "PSCP" nut, dat giet mei Putty.

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

Jo kinne kaai triemmen opslaan "ca.crt", "client1.crt", "client1.key" wêr't jo wolle. Yn ús gefal binne se yn dizze map "c:\Program Files\OpenVPN\keys", en wy modus de konfiguraasjetriem "client.ovpn" yn de "c:\Program Files\OpenVPN\config" directory.

Litte wy no gean nei it konfigurearjen fan de kliïnt. Iepenje de triem "c:\Program Files\OpenVPN\config\client.ovpn" yn in tekstbewurker en bewurkje de folgjende rigels:

#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

Lit de rest ûnoantaaste.

Bewarje it bestân en start de kliïntapplikaasje "OpenVPN GUI".

VPN opset klear

Rjochts-klikke op it app-ikoantsje yn 'e taakbalke en kies "Ferbine". As de ferbining suksesfol is, sil it ikoan grien wurde.

Brûk elke online tsjinst om te soargjen dat jo iepenbiere IP-adres is feroare en no itselde is as it IP-adres fan de tsjinner.

❮ Foarich artikel Hoe kinne jo Wireguard VPN op jo server ynstelle
Folgjend artikel ❯ FTP-tsjinner opset

Freegje ús oer VPS

Wy binne altyd ree om jo fragen op elk momint fan 'e dei of nacht te beantwurdzjen.