Knowledge Base Eenvoudige instruksies om met die Profitserver-diens te werk
Main Knowledge Base VPN-bedieneropstelling op Linux: PPTP of OpenVPN?

VPN-bedieneropstelling op Linux: PPTP of OpenVPN?


Deesdae word VPN-tegnologie meer gewild. Gewone gebruikers gebruik VPN om veilig toegang tot die internet te kry. Dit help ook om plaaslik geblokkeerde webwerwe en dienste te omseil en te beskerm teen moontlike eksterne kwaadwillige gedrag. Wanneer jy aan 'n VPN-bediener koppel, is daar 'n veilige tonnel tussen jou rekenaar en die bediener wat nie van buite af toeganklik is nie, dus word die VPN-bediener jou internettoegangspunt. Daar is baie VPN-dienste daar buite, beide gratis en betaalde, maar as hulle om een ​​of ander rede nie vir jou werk nie, kan jy altyd jou eie VPN-bediener opstel.

Om u VPN te bestuur, moet u huur VPS-bediener. Daar is verskillende sagteware waarmee u 'n VPN-verbinding kan skep. Dit verskil van mekaar deur bedryfstelsels wat ondersteun word en algoritmes wat gebruik word. Ons sal kyk na twee onafhanklike benaderings om 'n VPN-bediener op te stel. Die eerste een is gebaseer op PPTP-protokol wat reeds as verouderd en nie veilig beskou word nie, maar is regtig maklik om te konfigureer. Die ander een gebruik moderne en veilige sagteware OpenVPN, maar vereis die installering van 'n derdeparty-kliënttoepassing en 'n meer deeglike opstelproses.

In ons toetsomgewing gaan ons 'n virtuele bediener gebruik wat deur Ubuntu Server 18.04 aangedryf word. 'n Firewall gaan op die bediener afgeskakel word omdat die opstelling daarvan 'n aparte artikel verdien. Ons sal die opstelproses op Windows 10 beskryf.

Voorbereiding

Maak nie saak watter VPN-bediener u kies nie, die internettoegang sal opgestel word deur 'n geïntegreerde middel van die bedryfstelsel. Om internettoegang deur 'n eksterne dienskoppelvlak oop te maak, moet u pakketaanstuur tussen die koppelvlakke toelaat en netwerkadresvertaling opstel.

Maak die lêer oop om pakkie-aanstuur aan te skakel "/etc/sysctl.conf" en verander "net.ipv4.ip_forward" parameter waarde in 1.

skakel die aanstuur van pakkies aan vir VPN-opstelling

Om veranderinge toe te pas sonder om die rekenaar te herlaai, voer die opdrag uit

sudo sysctl -p /etc/sysctl.conf

Netwerkadres vertaling word gekonfigureer deur middel van iptables. Kontroleer eers die naam van u eksterne netwerkkoppelvlak wat die opdrag uitvoer "ip skakel wys" - jy sal dit by die volgende stap nodig hê. Ons naam is "ens3".

ip skakel wys

Aktiveer netwerkadres vertaling by jou eksterne koppelvlak vir alle plaaslike netwerk nodusse.

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

Let daarop dat u die regte naam van u bediener se koppelvlak moet spesifiseer, dit kan verskil van ons s'n.

By verstek word alle reëls wat deur iptables geskep is, teruggestel nadat die bediener herbegin het. Om dit te voorkom, gebruik "iptables-aanhoudend" nut. Installeer die volgende pakkie:

sudo apt install iptables-persistent

Op 'n sekere punt tydens die installasieproses sal u 'n konfigurasievenster sien wat sal voorstel dat u huidige iptables-reëls stoor. Aangesien die reëls reeds gedefinieer is, bevestig net en klik "Ja" twee keer. Sedertdien sal die reëls outomaties toegepas word nadat die bediener herbegin het.

Skakel adresvertaling aan

PPTP bediener

Bediener konfigurasie

Installeer die pakkie:

sudo apt install pptpd

Nadat die installasie voltooi is, maak die lêer oop "/etc/pptpd.conf" in enige teksredigeerder en wysig dit so:

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

Redigeer daarna die lêer "/etc/ppp/pptpd-opsies". Die meeste van die parameters is by verstek opgestel.

#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

In die volgende stadium sal jy 'n rekord vir kliëntverbindings moet skep. Kom ons sê jy wil 'n gebruiker byvoeg “vpgebruiker” met wagwoord "1" en laat dinamiese aanspreek vir hom toe. Maak die lêer oop "/etc/ppp/chap-secrets" en voeg die volgende reël by met die gebruiker se parameters aan die einde van die lêer:

vpnuser pptpd 1 *

"pptpd" waarde is die naam van die diens wat ons in die lêer gespesifiseer het "pptpd-opsies". In plaas van "*" jy kan 'n vaste IP-adres spesifiseer. In die resultaat, die lêer "chap-geheime" moet so lyk:

VPN-bediener opstelling

Om die instellings toe te pas, herstel die pptpd diens en voeg dit by outolaai.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

Bedienerkonfigurasie is voltooi.

Kliënt konfigurasie

Opening "Begin" - “Instellings” - Netwerk en internet - “Skynprivaatnetwerk” en klik op "Voeg 'n VPN-verbinding by"

Stel kliënt vir VPN-verbinding op

Voer die verbindingsparameters in die oopgemaakte venster in en klik "Save"

  • VPN-verskaffer: "Windows (ingebou)"
  • Verbindingsnaam: “vpn_connect” (jy kan enige naam kies)
  • Bedienernaam of adres: (spesifiseer die eksterne IP-adres van die bediener)
  • VPN-tipe: “Outo”
  • Tipe aanmeldinligting: "Gebruikersnaam en wagwoord"
  • Gebruikersnaam: vpgebruiker (naam gespesifiseer in die “chap-secrets”-lêer op die bediener)
  • wagwoord: 1 (soos in die "chap-secrets" lêer)

Nadat u parameters gestoor het, sal u die nuwe VPN-verbinding in die venster sien. Klik met die linkermuisknop op die verbinding en kies "Verbind". In die geval van 'n suksesvolle verbinding, sal jy sien “Gekoppel” status.

Voeg VPN-verbinding by

In die Opsies vind u interne adresse van die kliënt en die bediener. Veld "Bestemming adres" vertoon die eksterne bedieneradres.

Hoe om VPN-bediener self op te stel

Wanneer gekoppel, die interne IP-adres van die bediener, 172.16.0.1 in ons geval, word die verstekpoort vir alle uitgaande pakkies.

Gaan eksterne IP-adres na

Deur enige aanlyndiens te gebruik, kan jy seker maak dat die eksterne IP-adres van die rekenaar nou dieselfde is as jou VPN-bediener se IP-adres.

OpenVPN bediener

Bediener konfigurasie

Kom ons bevorder die toestemmingsvlak van die huidige gebruiker, want vir ons verdere konfigurasie sal ons worteltoegang benodig.

sudo -s

Installeer al die nodige pakkies. Ons sal nodig hê "Easy-RSA" pakkie om enkripsiesleutels te bestuur.

apt install openvpn easy-rsa iptables-persistent

Laat inkomende verbindings op poort 1194 toe via UDP-protokol en pas iptables-reëls toe.

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

sudo netfilter-persistent save

Skep 'n gids met gekopieerde lêers van die "Easy-RSA"-pakket en navigeer daarin.

make-cadir ~/openvpn

cd ~/openvpn

Genereer Publieke Sleutel Infrastruktuur (PKI).

./easyrsa init-pki

Genereer die Sertifikaatowerheid (CA) wortelsertifikaat.

./easyrsa build-ca

Tydens die skepproses sal jy gevra word om 'n wagwoord te stel en te onthou. Jy sal ook vrae moet beantwoord en inligting oor die sleuteleienaar moet invoer. Jy kan die standaardwaardes tussen vierkantige hakies laat. Druk "Enter" om die invoer te finaliseer.

Genereer 'n privaat sleutel en 'n sertifikaatversoek. Spesifiseer 'n arbitrêre naam as 'n argument; in ons geval is dit "vpn-bediener".

./easyrsa gen-req vpn-server nopass

Los die algemene naam-waarde as verstek.

Teken die gegenereerde bedienersertifikaatversoek.

./easyrsa sign-req server vpn-server

In hierdie stap, antwoord "ja" om die handtekening te bevestig, en voer dan die wagwoord in wat tydens die generering van die wortelsertifikaat geskep is.

Genereer Diffie-Hellman-parameters. Hierdie parameters word gebruik vir veilige sleuteluitruiling tussen die bediener en die kliënt.

./easyrsa gen-dh

Al die nodige lêers is gegenereer. Kom ons skep 'n "keys"-lêergids in die OpenVPN-werkgids om die sleutels te stoor en die geskepte lêers daarheen te kopieer.

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

Konfigureer NAT met behulp van iptables reëls. Skep 'n lêer met die naam nat en maak dit oop vir redigering in die /etc/openvpn/ gids.

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

Stoor die lêer en maak dit uitvoerbaar.

sudo chmod 755 /etc/openvpn/nat

Kopieer die bedienerkonfigurasiesjabloon.

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

Maak die lêer oop “/etc/openvpn/server.conf” vir redigering, maak seker dat dit die volgende reëls bevat, en wysig dit indien nodig:

#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

Aktiveer verkeersaanstuur op die bediener.

sudo sysctl -w net.ipv4.ip_forward=1

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

Begin OpenVPN om die konfigurasie toe te pas.

systemctl restart openvpn@server

Die bedienerkonfigurasie is voltooi!

Kliënt konfigurasie

Gaan na die amptelike webwerf van OpenVPN “https://openvpn.net”, gaan na die "GEMEENSKAP" afdeling.

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

Blaai af en laai die installeerder vir jou bedryfstelselweergawe af. In ons geval is dit Windows 11 ARM64.

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

Installeer die toepassing en laat alle parameters by verstek.

In die volgende stadium sal jy die volgende lêer op die bediener moet voorberei en dit na die kliëntrekenaar oordra:

  • publieke en private sleutels;
  • afskrif van die sertifiseringsentrumsleutel;
  • config lêer sjabloon.

Koppel aan die bediener, verhoog voorregte en navigeer na ons geskepte gids "~/openvpn".

sudo -s

cd ~/openvpn

Genereer 'n privaat sleutel en 'n sertifikaatversoek vir die kliënt. Spesifiseer 'n arbitrêre naam as 'n argument; in ons geval is dit "kliënt1".

./easyrsa gen-req client1 nopass

Voer die wagwoord in wat ons gestel het toe ons die wortelsertifikaat geskep het en laat die algemene naam-waarde as verstek.

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

Teken die gegenereerde kliëntsertifikaatversoek.

./easyrsa sign-req client client1

In hierdie stap, antwoord "ja" om die handtekening te bevestig, en voer dan die wagwoord in wat tydens die generering van die wortelsertifikaat geskep is.

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

Vir gerief, kom ons skep 'n lêergids met die naam 'client1' in die tuisgids en kopieer alle lêers wat bedoel is vir oordrag na die kliëntrekenaar daarin.

mkdir ~/client1

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

Kopieer die kliënt konfigurasie lêer sjabloon na dieselfde gids. Verander die lêeruitbreiding na ".ovpn" terwyl jy kopieer.

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

Verander die eienaar van die gids en al die lêers "~/kliënt1/" om dit aan die kliënt te kan versprei. Kom ons maak "mihail" die eienaar in ons geval.

chown -R mihail:mihail ~/client1

Gaan na die kliënt rekenaar en kopieer die inhoud van die "~/kliënt1/" gids. Jy kan dit doen met behulp van "PSCP" nut, dit gaan met Putty.

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

Jy kan sleutellêers stoor "ca.crt", "kliënt1.crt", "kliënt1.sleutel" waar jy wil. In ons geval is hulle in hierdie gids “c:\Program Files\OpenVPN\keys”, en ons modeer die konfigurasielêer "kliënt.ovpn" in die “c:\Program Files\OpenVPN\config” gids.

Kom ons gaan nou na die opstel van die kliënt. Maak die lêer oop "c:\Program Files\OpenVPN\config\client.ovpn" in 'n teksredigeerder en wysig die volgende reëls:

#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

Laat die res onaangeraak.

Stoor die lêer en begin die kliënttoepassing “OpenVPN GUI”.

VPN-opstelling voltooi

Regskliek op die toepassingikoon in die taakbalk en kies "Verbind". As die verbinding suksesvol is, sal die ikoon groen word.

Gebruik enige aanlyn diens om seker te maak jou publieke IP-adres het verander en is nou dieselfde as die bediener se IP-adres.

❮ Vorige artikel Hoe om Wireguard VPN op u bediener op te stel
Volgende artikel ❯ FTP-bediener opstelling

Vra ons oor VPS

Ons is altyd gereed om u vrae enige tyd van die dag of nag te beantwoord.