Base de Coneixements Instruccions senzilles per treballar amb el servei Profitserver
Inici Base de Coneixements Configuració del servidor VPN a Linux: PPTP o OpenVPN?

Configuració del servidor VPN a Linux: PPTP o OpenVPN?


Avui en dia, la tecnologia VPN es fa més popular. Els usuaris habituals utilitzen VPN per accedir de manera segura a Internet. També ajuda a evitar llocs web i serveis bloquejats localment i a protegir-se de possibles comportaments maliciosos externs. Quan us connecteu a un servidor VPN, hi ha un túnel segur entre l'ordinador i el servidor al qual no es pot accedir des de l'exterior, de manera que el servidor VPN es converteix en el vostre punt d'accés a Internet. Hi ha molts serveis VPN, tant gratuïts com de pagament, però si no us funcionen per algun motiu, sempre podeu configurar el vostre propi servidor VPN.

Per executar la vostra VPN, hauríeu de fer-ho llogar servidor VPS. Hi ha programari diferent que us permet crear una connexió VPN. Es diferencien entre si pels sistemes operatius suportats i pels algorismes utilitzats. Farem una ullada a dos enfocaments independents per configurar un servidor VPN. El primer es basa en el protocol PPTP que ja es considera obsolet i no segur però que és molt fàcil de configurar. L'altre utilitza un programari modern i segur OpenVPN, però requereix la instal·lació d'una aplicació client de tercers i un procés de configuració més exhaustiu.

Al nostre entorn de prova, farem servir un servidor virtual alimentat per Ubuntu Server 18.04. Un tallafocs s'apagarà al servidor perquè la seva configuració mereix un article a part. Descriurem el procés de configuració a Windows 10.

Preparació

Independentment del servidor VPN que trieu, l'accés a Internet es configurarà mitjançant mitjans integrats del sistema operatiu. Per obrir l'accés a Internet mitjançant una interfície de servei externa, heu de permetre el reenviament de paquets entre les interfícies i configurar la traducció d'adreces de xarxa.

Per activar el reenviament de paquets, obriu el fitxer "/etc/sysctl.conf" i el canvi "net.ipv4.ip_forward" valor del paràmetre en 1.

activa el reenviament de paquets per a la configuració de VPN

Per aplicar els canvis sense reiniciar l'ordinador, executeu l'ordre

sudo sysctl -p /etc/sysctl.conf

La traducció d'adreces de xarxa es configura mitjançant iptables. Primer, comproveu el nom de la vostra interfície de xarxa externa executant l'ordre "Mostra l'enllaç IP" - ho necessitareu al següent pas. El nostre nom és "ens3".

Mostra l'enllaç ip

Activeu la traducció d'adreces de xarxa a la vostra interfície externa per a tots els nodes de la xarxa local.

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

Tingueu en compte que heu d'especificar el nom real de la interfície del vostre servidor, que pot ser diferent del nostre.

Per defecte, totes les regles creades per iptables es restableixen després de reiniciar el servidor. Per evitar-ho, feu servir "iptables-persistent" utilitat. Instal·leu el paquet següent:

sudo apt install iptables-persistent

En algun moment del procés d'instal·lació, veureu una finestra de configuració que us suggerirà desar les regles d'iptables actuals. Com que les regles ja estan definides, només cal que confirmeu i feu clic "Sí" dues vegades. Des d'ara, les regles s'aplicaran automàticament després de reiniciar el servidor.

Activa la traducció d'adreces

Servidor PPTP

Configuració del servidor

Instal·leu el paquet:

sudo apt install pptpd

Un cop finalitzada la instal·lació, obriu el fitxer "/etc/pptpd.conf" en qualsevol editor de text i editeu-lo així:

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

Després d'això, editeu el fitxer "/etc/ppp/pptpd-options". La majoria dels paràmetres estan configurats per defecte.

#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

En la següent etapa, haureu de crear un registre per a les connexions del client. Suposem que voleu afegir un usuari "usuari vp" amb contrasenya "1" i permetre un adreçament dinàmic per a ell. Obriu el fitxer "/etc/ppp/chap-secrets" i afegiu la línia següent amb els paràmetres de l'usuari al final del fitxer:

vpnuser pptpd 1 *

"pptpd" value és el nom del servei que hem especificat al fitxer "opcions-pptpd". En lloc de "*" podeu especificar una adreça IP fixa. En el resultat, el fitxer "secrets de cap" hauria de ser així:

Configuració del servidor VPN

Per aplicar la configuració, reinicieu pptpd servei i afegiu-lo a la càrrega automàtica.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

La configuració del servidor s'ha acabat.

Configuració del client

obert "Start" - "Configuració" - Xarxa i Internet - "VPN" and clic "Afegeix una connexió VPN"

Configura el client per a la connexió VPN

Introduïu els paràmetres de connexió a la finestra oberta i feu clic "Desa"

  • Proveïdor de VPN: "Windows (integrat)"
  • Nom de connexió: "vpn_connect" (podeu triar qualsevol nom)
  • Nom o adreça del servidor: (especifiqueu l'adreça IP externa del servidor)
  • Tipus de VPN: "Automàtic"
  • Tipus d'informació d'inici de sessió: "Nom d'usuari i contrasenya"
  • Nom d'usuari: vpnuser (nom especificat al fitxer "chap-secrets" al servidor)
  • clau: 1 (com al fitxer "chap-secrets")

Després de desar els paràmetres, veureu la nova connexió VPN a la finestra. Feu clic amb el botó esquerre a la connexió i seleccioneu "Connecta". En el cas d'una connexió correcta, veureu "Connectat" d'estat.

Afegeix una connexió VPN

A les Opcions, trobareu les adreces internes del client i del servidor. Camp "Adreça de destinació" mostra l'adreça del servidor extern.

Com configurar el servidor VPN per tu mateix

Quan està connectat, l'adreça IP interna del servidor, 172.16.0.1 en el nostre cas, es converteix en la passarel·la predeterminada per a tots els paquets de sortida.

Comproveu l'adreça IP externa

Amb qualsevol servei en línia, podeu assegurar-vos que l'adreça IP externa de l'ordinador és ara la mateixa que l'adreça IP del vostre servidor VPN.

Servidor OpenVPN

Configuració del servidor

Promovem el nivell de permisos de l'usuari actual perquè per a la nostra configuració posterior necessitarem accés root.

sudo -s

Instal·leu tots els paquets necessaris. Necessitarem "Fàcil-RSA" paquet per gestionar les claus de xifratge.

apt install openvpn easy-rsa iptables-persistent

Permet les connexions entrants al port 1194 mitjançant el protocol UDP i aplica les regles d'iptables.

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

sudo netfilter-persistent save

Crea un directori amb els fitxers copiats del paquet "Easy-RSA" i navega-hi.

make-cadir ~/openvpn

cd ~/openvpn

Generar una infraestructura de clau pública (PKI).

./easyrsa init-pki

Genera el certificat arrel de l'autoritat de certificació (CA).

./easyrsa build-ca

Durant el procés de creació, se us demanarà que definiu i recordeu una contrasenya. També haureu de respondre preguntes i introduir informació sobre el propietari de la clau. Podeu deixar els valors predeterminats que es proporcionen entre claudàtors. Premeu "Intro" per finalitzar l'entrada.

Genera una clau privada i una sol·licitud de certificat. Com a argument, especifica un nom arbitrari; en el nostre cas, és "vpn-server".

./easyrsa gen-req vpn-server nopass

Deixeu el valor del Nom comú per defecte.

Signeu la sol·licitud de certificat de servidor generada.

./easyrsa sign-req server vpn-server

En aquest pas, responeu "sí" per confirmar la signatura i, a continuació, introduïu la contrasenya que es va crear durant la generació del certificat arrel.

Genera paràmetres de Diffie-Hellman. Aquests paràmetres s'utilitzen per a l'intercanvi segur de claus entre el servidor i el client.

./easyrsa gen-dh

S'han generat tots els fitxers necessaris. Creem una carpeta de "claus" al directori de treball d'OpenVPN per emmagatzemar les claus i copiar-hi els fitxers creats.

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 NAT mitjançant iptables regles. Crea un fitxer anomenat nat i obrir-lo per editar-lo a /etc/openvpn/ directori.

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

Desa el fitxer i fes-lo executable.

sudo chmod 755 /etc/openvpn/nat

Copieu la plantilla de configuració del servidor.

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

Obriu el fitxer "/etc/openvpn/server.conf" per editar, assegureu-vos que conté les línies següents i editeu-les si cal:

#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

Habilita el reenviament de trànsit al servidor.

sudo sysctl -w net.ipv4.ip_forward=1

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

Inicieu OpenVPN per aplicar la configuració.

systemctl restart openvpn@server

La configuració del servidor s'ha acabat!

Configuració del client

Aneu al lloc web oficial d'OpenVPN "https://openvpn.net”, aneu a “COMUNITAT” .

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

Desplaceu-vos cap avall i descarregueu l'instal·lador per a la versió del vostre sistema operatiu. En el nostre cas, és Windows 11 ARM64.

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

Instal·leu l'aplicació deixant tots els paràmetres per defecte.

En la següent etapa, haureu de preparar el fitxer següent al servidor i transferir-lo a l'ordinador client:

  • claus públiques i privades;
  • còpia de la clau del centre de certificació;
  • plantilla de fitxer de configuració.

Connecteu-vos al servidor, eleveu privilegis i navegueu fins al directori que hem creat. "~/openvpn".

sudo -s

cd ~/openvpn

Genera una clau privada i una sol·licitud de certificat per al client. Com a argument, especifica un nom arbitrari; en el nostre cas, és "client1".

./easyrsa gen-req client1 nopass

Introduïu la contrasenya que vam establir en crear el certificat arrel i deixeu el valor del Nom comú per defecte.

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

Signeu la sol·licitud de certificat de client generada.

./easyrsa sign-req client client1

En aquest pas, responeu "sí" per confirmar la signatura i, a continuació, introduïu la contrasenya que es va crear durant la generació del certificat arrel.

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

Per comoditat, creem una carpeta anomenada "client1" al directori principal i hi copiem tots els fitxers destinats a ser transferits a l'ordinador client.

mkdir ~/client1

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

Copieu la plantilla del fitxer de configuració del client al mateix directori. Canvia l'extensió del fitxer a ".ovpn" mentre es copia.

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

Canvia el propietari del directori i tots els fitxers "~/client1/" per poder-los distribuir al client. Anem a fer "Mihail" el propietari en el nostre cas.

chown -R mihail:mihail ~/client1

Aneu a l'ordinador client i copieu el contingut del fitxer "~/client1/" carpeta. Ho pots fer amb l'ajuda de "PSCP" utilitat, que va amb Putty.

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

Podeu emmagatzemar fitxers clau "ca.crt", "client1.crt", "client1.key" on vulguis. En el nostre cas, es troben en aquesta carpeta "c:\Fitxers de programa\OpenVPN\keys", i modem el fitxer de configuració "client.ovpn" a la "c:\Fitxers de programa\OpenVPN\config" directori.

Ara anem a configurar el client. Obriu el fitxer "c:\Fitxers de programa\OpenVPN\config\client.ovpn" en un editor de text i editeu les línies següents:

#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

Deixeu la resta sense tocar.

Deseu el fitxer i inicieu l'aplicació client "GUI d'OpenVPN".

S'ha acabat la configuració de VPN

Feu clic amb el botó dret a la icona de l'aplicació a la barra de tasques i trieu "Connecta". Si la connexió té èxit, la icona es tornarà verda.

Utilitzeu qualsevol servei en línia per assegurar-vos que la vostra adreça IP pública ha canviat i ara és la mateixa que l'adreça IP del servidor.

❮ Article anterior Com configurar Wireguard VPN al vostre servidor
Article següent ❯ Configuració del servidor FTP

Pregunta'ns per VPS

Sempre estem preparats per respondre les vostres preguntes a qualsevol hora del dia o de la nit.