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 teva VPN, hauries de llogar un servidor VPS . Hi ha diferents programes que et permeten crear una connexió VPN. Es diferencien entre si pels sistemes operatius compatibles i els algoritmes utilitzats. Analitzarem 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ò és realment fàcil de configurar. L'altre utilitza el programari modern i segur OpenVPN, però requereix la instal·lació d'una aplicació client de tercers i un procés de configuració més complet.

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 canvieu el valor del paràmetre "net.ipv4.ip_forward" a 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 "ip link show" ; la 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 la utilitat "iptables-persistent" . Instal·leu el paquet següent:

sudo apt install iptables-persistent

En algun moment durant el procés d'instal·lació, veureu una finestra de configuració que us suggerirà que deseu les regles actuals d'iptables. Com que les regles ja estan definides, només cal que confirmeu i feu clic a "Sí" dues vegades. 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" amb 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

A la següent etapa, haureu de crear un registre per a les connexions dels clients. Per exemple, voleu afegir un usuari "vpnuser" amb la contrasenya "1" i permetre-li l'adreçament dinàmic. 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 *

El valor de “pptpd” és el nom del servei que hem especificat al fitxer “pptpd-options” . En lloc de “*” podeu especificar una adreça IP fixa. Com a resultat, el fitxer “chap-secrets” hauria de tenir aquest aspecte:

Configuració del servidor VPN

Per aplicar la configuració, restableix el servei pptpd i afegeix-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

Obriu "Inici" - "Configuració" - "Xarxa i Internet" - "VPN" i feu clic a "Afegeix una connexió VPN".

Configura el client per a la connexió VPN

Introduïu els paràmetres de connexió a la finestra que s'obre i feu clic a "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 cas de connexió correcta, veureu l'estat "Connectat".

Afegeix una connexió VPN

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

Com configurar el servidor VPN per tu mateix

Quan es connecta, l'adreça IP interna del servidor, 172.16.0.1 en el nostre cas, esdevé la porta d'enllaç predeterminada per a tots els paquets sortints.

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 el paquet "Easy-RSA" 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-lo, assegureu-vos que contingui 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 la secció "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. Canvieu l'extensió del fitxer a ".ovpn" mentre copieu.

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

Canvieu el propietari del directori i de tots els fitxers “~/client1/” per poder-los distribuir al client. En el nostre cas, fem que “mihail” sigui el propietari.

chown -R mihail:mihail ~/client1

Aneu a l'ordinador client i copieu el contingut de la carpeta "~/client1/" . Podeu fer-ho amb l'ajuda de la utilitat "PSCP" , que ve amb Putty.

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

Podeu emmagatzemar els fitxers clau "ca.crt" , "client1.crt" , "client1.key" on vulgueu. En el nostre cas, són a la carpeta "c:\Program Files\OpenVPN\keys" , i modem el fitxer de configuració "client.ovpn" al directori "c:\Program Files\OpenVPN\config".

Ara anem a configurar el client. Obriu el fitxer “c:\Program Files\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 "OpenVPN GUI".

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ó és correcta, 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 Configuració del servidor FTP
Article següent ❯ Com configurar Wireguard VPN al vostre servidor

Pregunta'ns per VPS

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