07.06.2023

Instalación y configuración OpenVPN on CentOS

OpenVPN es una implementación de software abierto de la VPN protocolo. Una característica distintiva de este producto es la capacidad de crear túneles encriptados, mientras que existen implementaciones para los sistemas operativos más populares, incluidas las plataformas móviles.

El CentOS característica del repositorio es que OpenVPN no está incluido en él. Pero este paquete se puede obtener usando el repositorio EPEL (Enterprise Linux), que es administrado por el Proyecto Fedora. Desde este repositorio, por cierto, puedes conseguir otros paquetes que no están incluidos en el estándar CentOS repositorio. Instalar con el comando:

yum instalar epel-release

Proceder a instalar OpenVPN. Instale el paquete:

yum instalar openvpn fácil-rsa-y

Proceda a configurar el servidor. Copie servidor.conf:

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

Es importante prestar atención al “*”. Si solo se hizo un intento de instalación, entonces el programaram La versión se puede reemplazar con un símbolo de asterisco. Si hubo varios intentos de instalación, es posible que deba especificar la ruta del archivo por completo.

Antes de generar las claves, realice algunos cambios en el archivo de configuración del servidor

Abra server.conf con cualquier editor.

nano /etc/openvpn/servidor.conf

Encuentra la línea "Diffie hellman paraméteres.” y busca:

dh dh2048.pem

Si se indica exactamente, entonces no es necesario realizar cambios. El matiz de la nueva versión del paquete es que el parameter ya tiene valores. En versiones anteriores, simplemente hay "dh". Hacemos que parezca nuestro.

A continuación, busque la línea "# Cierto Windows-configuraciones de red específicas”. descomentar uno de los parametros a continuación (elimine el símbolo “punto y coma” (;) al principio de la línea). Debería verse algo como esto:

empuje "opción dhcp DNS 8.8.8.8"

Puede especificar su DNS servidor si lo desea. Además, puede descomentar la segunda línea para pasar una modificaciónnative DNS servidor a clitambién.

Para la seguridad del servidor, comenzaremos con el usuario none y el grupo nogroup. Descomenta las líneas:

usuario nadie
grupo nadie

Empezamos a crear certificados

Utilizando el paquete easy-rsa previamente instalado, cree el servidor y cliclaves ent.

Cree un directorio en el que estarán las claves:

mkdir -p /etc/openvpn/fácil-rsa/teclas

En el directorio easy-rsa recién creado, copie los scripts:

cp -r /usr/share/easy-rsa/3.0/* /etc/openvpn/ easy-rsa

Ir a /etc/openvpn/easy-rsa/3/ y cree un script vars

cd / etc /openvpn/fácil-rsa/

nanovars

¡Importante! La versión de easy-rsa puede ser diferente y, por lo tanto, será necesario ajustar la ruta.

Agregue las siguientes líneas al archivo abierto:

set_var EASYRSA "$PWD"
set_var EASYRSA_PKI "$EASYRSA/pki"
set_var EASYRSA_DN "solo_cn"
set_var EASYRSA_REQ_COUNTRY "RU"
set_var EASYRSA_REQ_PROVINCE "Moscú"
set_var EASYRSA_REQ_CITY "Moscú"
set_var EASYRSA_REQ_ORG "MiOrg"
set_var EASYRSA_REQ_EMAIL "openvpn@midominio.net"
set_var EASYRSA_REQ_OU "CA"
set_var EASYRSA_KEY_SIZE 2048
set_var EASYRSA_ALGO rsa
set_var EASYRSA_CA_EXPIRE 7500
set_var EASYRSA_CERT_EXPIRE 365
set_var EASYRSA_NS_SUPPORT "no"
set_var EASYRSA_NS_COMMENT "AUTORIDAD DE CERTIFICACIÓN"
set_var EASYRSA_EXT_DIR "$EASYRSA/x509-tipos"
set_var EASYRSA_SSL_CONF "$EASYRSA/openssl-1.0.cnf"
set_var EASYRSA_DIGEST "sha256"

Permitir la ejecución de archivos:

chmod +x vars

Inicializamos el directorio PKI y creamos un certificado CA:

./easyrsa init-pki
./easyrsa build-ca

¡Importante! Al crear un certificado de CA, el script le pedirá una contraseña de al menos 4 caracteres. La contraseña ingresada debe ser recordada.

Cree la clave del servidor.

./easyrsa gen-req servidor nopass

Si no especifica el atributo "nopass", al crear la clave, el script le pedirá una contraseña.

Firmamos el certificado del servidor:

./easyrsa sign-req servidor servidor

El guión se interesará por nuestra confianza con la primera acción, responde “Sí”. Luego le pedirá la contraseña que se especificó al crear el certificado CA.

Compruebe si el certificado está firmado:

openssl verificar -CAfile pki/ca.crt pki/emitido/servidor.crt

Generamos una clave de servidor adicional ta.key:

openvpn --genkey --secret /etc/openvpn/easy-rsa/keys/ta.key

Certificados de usuario

El proceso de creación de un certificado de usuario es idéntico al de creación de un certificado de servidor.

1. Creamos sin protección con contraseña:

./easyrsa gen-req client01 no pasa

2. Firma del certificado:

./easyrsa sign-req client client01

3. Verifica la firmanatUre:

openssl verificar -CAfile pki/ca.crt pki/emitido/client01.crt

Diffie Hellman.

Creando un certificado

./easyrsa gen-dh

Como resultado, se creará el archivo dh.pem y en la configuración dh2048.pem. Cámbiele el nombre más tarde cuando copie las claves.

Transferimos certificados

Copie los archivos de claves del servidor. Para hacer esto, realizamos secuencialmente:

cp pki/ca.crt /etc/openvpn/
cp pki/emitido/servidor.crt /etc/openvpn/
cp pki/privado/servidor.clave /etc/openvpn/
cp/etc/openvpn/easy-rsa/keys/ta.key /etc/openvpn/

Copiar clillaves ent

cp pki/ca.crt /etc/openvpn/client /
cp pki/emitido/client01.crt /etc/openvpn/client /
cp pki/privado/client01.clave /etc/openvpn/client /

Copie el archivo de clave Diffie-Hellman

cp pki/dh.pem /etc/openvpn/dh2048.pem

¡Importante! El nombre del archivo de destino se cambia intencionalmente al nombre en la configuración.

Configuración de enrutamiento

Para agilizar la configuración se trabajará con iptables, no con FirewallD. Realizar consistentemente:

yum instalar iptables-servicios -y
máscara systemctl firewalld
systemctl habilitar iptables
parada systemctl firewalld
systemctl iniciar iptables
iptables --vaciar

Antes de continuar con la configuración, debe mirar los nombres de las interfaces usando el comando:

ifconfig-a

Agregar una regla para NAT:

iptables-t nat -A POSTERIOR A LA ENRUTAMIENTO -s 10.8.0.0/24 -o <имя_интерфейса> -j MASCARADA
iptables-guardar > /etc/sysconfig/iptables

Como un ejemplo:

iptables-t nat -A POSTERIOR ENRUTAMIENTO -s 10.8.0.0/24 -o eth0 -j MASCARADA
iptables-guardar > /etc/sysconfig/iptables

Permitir el reenvío de paquetes entre interfaces de red. Para hacer esto, edite el archivo de sistema sysctl.conf:

nano /etc/sysctl.conf

Al principio del archivo, inserte la línea:

red.ipv4.ip_forward = 1

Guardamos el archivo, cerramos el editor y reiniciamos el servicio de red con el comando:

systemctl reiniciar red.servicio

Empezamos el OpenVPN servidor

Para comenzar, agregue el servicio a la carga automática:

systemctl -f habilitar openvpn@servidor.servicio

Más información OpenVPN:

openvpn /etc/ openvpn/servidor.conf

Cliconfiguración ent.

El servidor está configurado, queda configurar el client para que pueda conectarse.

Independientemente del sistema operativo utilizado, ya sea una versión móvil, de servidor o doméstica, Linux or Windows, siempre necesitarás 4 archivos:

Los primeros 3 archivos se encuentran en /etc/openvpn /client/directorio, y client.ovpn habrá que crear. Para hacer esto, vaya al directorio donde se encuentran todos los cliLas claves ent son:

disco compacto /etc/openvpn/client /

Crea un archivo:

nano client.ovpn

Llena los siguientes contenidos:

client
dev tun
proto udp
remoto 1194
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
Verbo 3
ca ca.crt
cert client01.crt
clave client01.clave

En lugar de IP_ADDRESS, inserte la dirección IP del servidor o su nombre de dominio. Guarde el archivo con Ctrl + X y cierre el editor.

Transferimos archivos a la client. Es posible hacer esto, por ejemplo, a través de SFTP o archivar el directorio y "darlo" a través del servidor web.

Cliconexión ent

Dependiendo del sistema operativo, descargamos el archivo de instalación o instalamos desde el repositorio. También, OpenVPN se puede obtener de el sitio web oficial.

Windows:

Para computadoras en funcionamiento Windows, debe descargar el paquete de distribución del producto del sitio oficial, obtener los "cuatro archivos", ponerlo en la carpeta, C: Program archivosOpenVPNconfig.

Después de comenzar el OpenVPN GUI, el programaram Aparecerá el icono en la bandeja del sistema. Nosotros cliHaga clic en él con el botón derecho del mouse, seleccione Conectar.

MacOS

OpenVPN para MacOS es un poco más complicado. Debe usar la herramienta de código abierto Tunnelblick. Las claves y el archivo de configuración deben colocarse en ~ /Library/Application Support/Tunnelblick/Configurations. o doble-click en el archivo de configuración.

Linux:

Debes instalar desde el repositorio.

Debian/Ubuntu

apt-get install openvpn

CentOS/OpenSUSE/Fedora

yum instalar openvpn -y

Después de la instalación, vaya a la carpeta en la que se encuentra el archivo de configuración con las claves y ejecute el comando:

sudo openvpn --config client.ovpn

Para verificar el funcionamiento del servidor, debe usar cualquiera de los sitios que muestran su dirección IP.