Base de Coñecemento Instrucións sinxelas para traballar co servizo Profitserver
Páxina Base de Coñecemento Configuración do servidor VPN en Linux: PPTP ou OpenVPN?

Configuración do servidor VPN en Linux: PPTP ou OpenVPN?


Hoxe en día, a tecnoloxía VPN faise máis popular. Os usuarios comúns usan VPN para acceder de forma segura a Internet. Tamén axuda a evitar sitios e servizos bloqueados localmente e protexe contra posibles comportamentos maliciosos externos. Cando te conectas a un servidor VPN, hai un túnel seguro entre o teu ordenador e o servidor ao que non se pode acceder desde fóra, polo que o servidor VPN convértese no teu punto de acceso a Internet. Hai moitos servizos VPN, tanto gratuítos como de pago, pero se non che funcionan por algún motivo, sempre podes configurar o teu propio servidor VPN.

Para executar a túa VPN, deberías alugar un servidor VPS. Hai diferentes programas que che permiten crear unha conexión VPN. Diferénciase entre si polos sistemas operativos soportados e polos algoritmos utilizados. Daremos unha ollada a dous enfoques independentes para configurar un servidor VPN. O primeiro está baseado no protocolo PPTP que xa se considera obsoleto e non seguro pero que é moi sinxelo de configurar. O outro emprega un software moderno e seguro OpenVPN pero require a instalación dunha aplicación cliente de terceiros e un proceso de configuración máis completo.

No noso entorno de proba, imos usar un servidor virtual alimentado por Ubuntu Server 18.04. Un cortalumes vai estar desactivado no servidor porque a súa configuración merece un artigo aparte. Describiremos o proceso de configuración en Windows 10.

Preparación

Non importa o servidor VPN que elixas, o acceso a Internet configurarase mediante medios integrados do sistema operativo. Para abrir o acceso a Internet a través dunha interface de servizo externa, ten que permitir o reenvío de paquetes entre as interfaces e configurar a tradución de enderezos de rede.

Para activar o reenvío de paquetes, abra o ficheiro "/etc/sysctl.conf" e cambiar "net.ipv4.ip_forward" valor do parámetro en 1.

activa o reenvío de paquetes para a configuración da VPN

Para aplicar os cambios sen reiniciar o ordenador, execute o comando

sudo sysctl -p /etc/sysctl.conf

A tradución de enderezos de rede configúrase mediante iptables. En primeiro lugar, verifique o nome da súa interface de rede externa executando o comando "Mostrar ligazón ip" - precisarao no seguinte paso. O noso nome é "ens3".

amosar ligazón ip

Activa a tradución de enderezos de rede na túa interface externa para todos os nodos da rede local.

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

Teña en conta que cómpre especificar o nome real da interface do seu servidor, pode ser diferente ao noso.

Por defecto, todas as regras creadas por iptables restablecen despois de reiniciar o servidor. Para evitar iso, use "iptables-persistente" utilidade. Instala o seguinte paquete:

sudo apt install iptables-persistent

Nalgún momento durante o proceso de instalación, verá unha xanela de configuración que lle suxerirá gardar as regras actuais de iptables. Xa que as regras xa están definidas, só tes que confirmar e facer clic "Yes" dúas veces. Desde agora, as regras aplicaranse automaticamente despois do reinicio do servidor.

Activa a tradución de enderezos

Servidor PPTP

Configuración do servidor

Instala o paquete:

sudo apt install pptpd

Despois de que remate a instalación, abra o ficheiro "/etc/pptpd.conf" en calquera editor de texto e edítao así:

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

Despois diso, edite o ficheiro "/etc/ppp/pptpd-options". A maioría dos parámetros están configurados por defecto.

#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

Na seguinte fase, terá que crear un rexistro para as conexións do cliente. Digamos que queres engadir un usuario "usuario vp" con contrasinal "1" e permitirlle un enderezo dinámico. Abre o ficheiro "/etc/ppp/chap-secrets" e engade a seguinte liña cos parámetros do usuario ao final do ficheiro:

vpnuser pptpd 1 *

"pptpd" value é o nome do servizo que especificamos no ficheiro "opcións-pptpd". En vez de "*" pode especificar un enderezo IP fixo. Como resultado, o ficheiro "segredos" debería verse así:

Configuración do servidor VPN

Para aplicar a configuración restablece o pptpd servizo e engádeo á carga automática.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

A configuración do servidor rematou.

Configuración do cliente

aberto "Inicio" - "Configuración" - Rede e Internet - "VPN" e prema "Engadir unha conexión VPN"

Configurar o cliente para a conexión VPN

Introduza os parámetros de conexión na xanela aberta e prema "Gardar"

  • Proveedor de VPN: "Windows (integrado)"
  • Nome da conexión: "vpn_connect" (podes escoller calquera nome)
  • Nome ou enderezo do servidor: (especifique o enderezo IP externo do servidor)
  • Tipo de VPN: "Automático"
  • Tipo de información de inicio de sesión: "Nome de usuario e contrasinal"
  • Nome de usuario: vpnuser (nome especificado no ficheiro "chap-secrets" no servidor)
  • password: 1 (como no ficheiro "chap-secrets")

Despois de gardar os parámetros, verá a nova conexión VPN na xanela. Fai clic co botón esquerdo na conexión e selecciona "Conectar". No caso dunha conexión exitosa, verá "Conectado" Estado.

Engadindo conexión VPN

Nas Opcións, atoparás os enderezos internos do cliente e do servidor. Campo "Enderezo de destino" mostra o enderezo do servidor externo.

Como configurar o servidor VPN por ti mesmo

Cando está conectado, o enderezo IP interno do servidor, 172.16.0.1 no noso caso, convértese na pasarela predeterminada para todos os paquetes de saída.

Comprobe o enderezo IP externo

Usando calquera servizo en liña, podes asegurarte de que o enderezo IP externo do ordenador é agora o mesmo que o enderezo IP do teu servidor VPN.

Servidor OpenVPN

Configuración do servidor

Promovemos o nivel de permisos do usuario actual porque para a nosa configuración posterior necesitaremos acceso root.

sudo -s

Instala todos os paquetes necesarios. Necesitaremos "Fácil-RSA" paquete para xestionar claves de cifrado.

apt install openvpn easy-rsa iptables-persistent

Permitir conexións entrantes no porto 1194 a través do protocolo UDP e aplicar regras de iptables.

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

sudo netfilter-persistent save

Crea un directorio con ficheiros copiados do paquete "Easy-RSA" e navega ata el.

make-cadir ~/openvpn

cd ~/openvpn

Xerar unha infraestrutura de clave pública (PKI).

./easyrsa init-pki

Xerar o certificado raíz da autoridade de certificación (CA).

./easyrsa build-ca

Durante o proceso de creación, solicitaráselle que configure e lembre un contrasinal. Tamén terá que responder preguntas e introducir información sobre o propietario da clave. Pode deixar os valores predeterminados entre corchetes. Prema "Intro" para finalizar a entrada.

Xerar unha chave privada e unha solicitude de certificado. Como argumento, especificar un nome arbitrario; no noso caso, é "servidor-vpn".

./easyrsa gen-req vpn-server nopass

Deixe o valor Nome común como predeterminado.

Asina a solicitude de certificado de servidor xerada.

./easyrsa sign-req server vpn-server

Neste paso, responde "si" para confirmar a sinatura e, a seguir, introduce o contrasinal que se creou durante a xeración do certificado raíz.

Xerar parámetros de Diffie-Hellman. Estes parámetros utilízanse para o intercambio seguro de claves entre o servidor e o cliente.

./easyrsa gen-dh

Xeráronse todos os ficheiros necesarios. Creemos unha carpeta de "claves" no directorio de traballo de OpenVPN para almacenar as claves e copiar alí os ficheiros creados.

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

Configurar NAT usando iptables regras. Crea un ficheiro chamado nat e ábreo para editalo no /etc/openvpn/ directorio.

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

Garda o ficheiro e faino executable.

sudo chmod 755 /etc/openvpn/nat

Copia o modelo de configuración do servidor.

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

Abra o ficheiro "/etc/openvpn/server.conf" para editar, asegúrate de que conteña as seguintes liñas e edítaas se é necesario:

#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

Activar o reenvío de tráfico no servidor.

sudo sysctl -w net.ipv4.ip_forward=1

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

Inicia OpenVPN para aplicar a configuración.

systemctl restart openvpn@server

A configuración do servidor rematou!

Configuración do cliente

Vaia ao sitio web oficial de OpenVPN "https://openvpn.net”, vai ao "COMUNIDADE" sección.

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

Desprácese cara abaixo e descargue o instalador para a versión do seu sistema operativo. No noso caso, é Windows 11 ARM64.

пролистываем вниз и скачиваем инсталлятор для своей версии операционной системы. Aquí está Windows 11 ARM64.

Instala a aplicación deixando todos os parámetros por defecto.

Na seguinte fase, terás que preparar o seguinte ficheiro no servidor e transferilos ao ordenador cliente:

  • claves públicas e privadas;
  • copia da clave do centro de certificación;
  • modelo de ficheiro de configuración.

Conéctate ao servidor, eleva privilexios e navega ata o directorio que creamos "~/openvpn".

sudo -s

cd ~/openvpn

Xerar unha chave privada e unha solicitude de certificado para o cliente. Como argumento, especificar un nome arbitrario; no noso caso, é "cliente1".

./easyrsa gen-req client1 nopass

Introduza o contrasinal que definimos ao crear o certificado raíz e deixe o valor do Nome común como predeterminado.

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

Asina a solicitude de certificado de cliente xerada.

./easyrsa sign-req client client1

Neste paso, responde "si" para confirmar a sinatura e, a seguir, introduce o contrasinal que se creou durante a xeración do certificado raíz.

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

Para maior comodidade, creemos un cartafol chamado "cliente1" no directorio principal e copiemos nel todos os ficheiros destinados a ser transferidos ao ordenador cliente.

mkdir ~/client1

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

Copia o modelo do ficheiro de configuración do cliente no mesmo directorio. Cambia a extensión do ficheiro a ".ovpn" mentres copia.

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

Cambia o propietario do directorio e de todos os ficheiros "~/cliente1/" para poder distribuílos ao cliente. Imos facer "mihail" o propietario no noso caso.

chown -R mihail:mihail ~/client1

Vaia ao ordenador cliente e copie o contido do ficheiro "~/cliente1/" cartafol. Podes facelo coa axuda de "PSCP" utilidade, que vai con Putty.

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

Podes almacenar ficheiros clave "ca.crt", "cliente1.crt", "client1.key" onde queiras. No noso caso, están neste cartafol "c:\Arquivos de programas\OpenVPN\keys", e modificamos o ficheiro de configuración "client.ovpn" na "c:\Arquivos de programas\OpenVPN\config" directorio.

Agora imos configurar o cliente. Abre o ficheiro "c:\Arquivos de programas\OpenVPN\config\client.ovpn" nun editor de texto e edite as seguintes liñas:

#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

Deixa o resto intacto.

Garda o ficheiro e inicia a aplicación cliente "GUI de OpenVPN".

Rematou a configuración da VPN

Fai clic co botón dereito na icona da aplicación na barra de tarefas e escolla "Conectar". Se a conexión é exitosa, a icona converterase en verde.

Usa calquera servizo en liña para asegurarte de que o teu enderezo IP público cambiou e agora é o mesmo que o enderezo IP do servidor.

❮ Artigo anterior Como configurar Wireguard VPN no teu servidor
Próximo artigo ❯ Configuración do servidor FTP

Pregúntanos por VPS

Sempre estamos preparados para responder ás súas preguntas a calquera hora do día ou da noite.