OpenVPN es un software VPN de código abierto que nos permite crear un túnel VPN basado en SSL. Imagine que le gustaría conectarse a su intranet corporativa desde una ubicación remota. Bueno, no se preocupe porque si tiene una configuración de servidor VPN, esto puede ser posible. La red privada virtual (VPN) proporciona un túnel seguro que extiende la red privada a través de una red pública, es decir, ayuda a crear una red de área amplia (WAN) a partir de redes de área local (LAN) existentes. Como resultado, los usuarios pueden enviar datos de forma segura a través de redes públicas como si estuvieran conectados directamente a su LAN.
Puede obtener más información sobre OpenVPN aquí.
Instalar y configurar el servidor OpenVPN en Fedora 29/28/CentOS 7
Sin mucha teoría, echemos un vistazo a un procedimiento paso a paso sobre cómo instalar y configurar el servidor OpenVPN en Fedora 29/28/CentOS 7.
Actualice su servidor.
dnf update <Instala OpenVPN y Easy-RSA en Fedora 29/28
OpenVPN proporciona un demonio VPN robusto y altamente flexible, mientras que el paquete Easy-RSA se usa para generar pares de claves SSL que se usan para proteger las conexiones VPN. Los paquetes OpenVPN y Easy-RSA están disponibles en los repositorios predeterminados de Fedora. Ejecute el siguiente comando para instalarlos.
dnf install openvpn easy-rsaInstalar OpenVPN y Easy-RSA en CentOS 7
OpenVPN no está disponible en los repositorios predeterminados de CentOS, pero está disponible en EPEL, por lo que debe instalar los repositorios de EPEL antes de poder instalar OpenVPN.
Para agregar paquetes adicionales para Enterprise Linux (EPEL), ejecute cualquiera de los siguientes comandos:
yum install epel-releaseo
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmrpm -ivh epel-release-latest-7.noarch.rpmInstale OpenVPN y Easy-RSA
yum instale openvpn easy-rsaCree la CA local y genere claves de servidor y archivo de certificado
Cree un directorio para almacenar claves de servidor y archivos de certificado.
mkdir /etc/openvpn/easy-rsaCopie los scripts de generación de claves/certificados instalados por Easy-RSA desde el directorio predeterminado al directorio creado anteriormente.
cp -air /usr/share/easy-rsa/3/* /etc/openvpn/easy-rsaVaya a
/etc/openvpn/easy-rsa
e inicie una nueva PKI.cd /etc/openvpn/easy-rsa./easyrsa init-pkiGenere el certificado de CA. Esto le pedirá la contraseña de cifrado y el nombre común del servidor.
./easyrsa build-ca... escribiendo una nueva clave privada en '/etc/openvpn/easy-rsa/pki/private/ca.key.EajtR0SkLM'Ingrese la frase de contraseña PEM:CONTRASEÑA Verificando:ingrese la frase de contraseña de PEM:CONTRASEÑA -----...-----Nombre común (p. ej., su nombre de usuario, host o servidor) [Easy-RSA CA]:servidor Se completó la creación de CA y ahora puede importar y firmar solicitudes de certificado. Su nuevo archivo de certificado de CA para publicar está en:/etc/openvpn/easy-rsa/pki/ca.crtComo se indicó, el certificado de CA se almacena en
/etc/openvpn/easy-rsa/pki/ca.crt
.Genere un archivo de clave Diffie-Hellman que se puede usar durante el protocolo de enlace TLS con los clientes que se conectan.
./easyrsa gen-dhEsto generará la clave DH y la almacenará como
/etc/openvpn/easy-rsa/pki/dh.pem
.Genere un archivo de clave y certificado para el servidor.
./easyrsa build-server-full server nopassGenere un archivo de clave y certificado para el cliente.
./easyrsa build-client-full client nopassEn caso de que necesite invalidar un certificado previamente firmado, genere un certificado de revocación.
./easyrsa gen-crlEsto almacena el certificado de revocación en
/etc/openvpn/easy-rsa/pki/crl.pem
.Generar clave de autenticación precompartida TLS/SSL
openvpn --genkey --secret /etc/openvpn/easy-rsa/pki/ta.keyCopie los certificados/claves generados en el directorio de configuración del servidor. //pre>
Configurar servidor OpenVPN
OpenVPN tiene un archivo de configuración de muestra dentro de su directorio de documentación y, por lo tanto, para facilitarnos la vida, copiaremos la muestra
/usr/share/doc/openvpn{-2.4.6,}/sample/sample-config-files/server.conf
archivo a/etc/openvpn
para modificación.En Fedora
cp /usr/share/doc/openvpn/sample/sample-config-files/server.conf /etc/openvpn/server/En CentOS 7
cp /usr/share/doc/openvpn-2.4.6/sample/sample-config-files/server.conf /etc/openvpn/server/Edite el
server.conf
archivo de la siguiente manera:vim /etc/openvpn/server/server.confModifique el archivo para que se vea como el siguiente;
# ¿En qué puerto TCP/UDP debe escuchar OpenVPN?# Cámbielo para que coincida con su puerto y ábralo en el puerto de firewall 1194# ¿Servidor TCP o UDP?proto udp# "dev tun " creará una IP enrutada tunneldev tun# Cambiar ruta para certificadosca ca.crtcert emitido/server.crtkey private/server.key# Diffie hellman exchange key pathdh dh.pem# Network topologytopology subnet# OpenVPN Network IP. A continuación, el servidor tomará 10.8.0.1 para sí mismo, # el resto estará disponible para los clientes. servidor 172.16.0.0 255.255.255.0 # esta directiva configurará todos los clientes para redirigir su puerta de enlace de red predeterminada # a través de VPNpush "redirect- gateway def1 bypass-dhcp"# Servidores DNSpush "dhcp-option DNS 208.67.222.222"push "dhcp-option DNS 208.67.220.220"# Para una compresión compatible con clientes más antiguos, use comp-lzo.comp-lzo# Ejecute VPN con privilegios limitadosusuario nadiegrupo nadie# Archivos de registro de estadoestado /var/log/openvpn/openvpn-status.log# Clave de autenticación precompartida TLS/SSL tls-auth ta.key 0# Crear directorio de registro de VPN y archivo de registro log-append /var/log/openvpn/openvpn .log#Anexar esta línea para cambiar el algoritmo de autenticación (HMAC) de SHA1 a SHA512auth SHA512Cree el directorio de registro;
mkdir /var/log/openvpn/Guarde el archivo de configuración
Configurar enrutamiento
Habilitar el reenvío de IP
Habilitar el reenvío de IP garantiza que el tráfico del cliente se enrute a través de la dirección IP del servidor para que la dirección IP del cliente esté enmascarada.
echo "net.ipv4.ip_forward =1">> /etc/sysctl.confEjecute el siguiente comando para efectuar los cambios:
sysctl --systemPermitir el puerto del servicio OpenVPN a través del firewall
firewall-cmd --add-port=1194/udp --permanentActivar enmascaramiento de IP
firewall-cmd --add-masquerade --permanentReenviar el tráfico recibido en la subred OpenVPN especificada a una interfaz a través de la cual se enviarán los paquetes.
Encuentre la interfaz a través de la cual se envían los paquetes ejecutando el siguiente comando:
ip route get 8.8.8.88.8.8.8 via 192.168.43.1 dev enp0s8 src 192.168.43.23El nombre de la interfaz puede ser diferente para su caso. Reemplácelo según corresponda.
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 172.16.0.0/24 -o enp0s8 -j MASCARADAVuelva a cargar firewalld para que los cambios surtan efecto.
firewall-cmd --reloadInicie y configure OpenVPN start on boot.
systemctl start [email protected] enable [email protected]Cuando se ejecuta el servicio OpenVPN, creará una interfaz de tunelización, tun0;
ip add show tun04:tun0:mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100 link/none inet 172.16 .0.1/24 brd 172.16.0.255 alcance global tun0 valid_lft para siempre preferido_lft para siempre inet6 fe80::1155:c60c:c009:48c9/64 enlace de alcance privacidad estable valid_lft para siempre preferido_lft para siempre Al servidor VPN se le asigna la dirección IP 172.16.0.1 mientras que al primer cliente se le asigna 172.16.0.2.
Configurar cliente VPN
Para que el cliente VPN se conecte al servidor VPN, se requiere una copia del certificado CA, la clave del cliente, el certificado del cliente y la clave de autenticación TLS/SSL generada anteriormente. Por lo tanto, copie estos archivos en el cliente de destino y colóquelos en un directorio conveniente.
cd /etc/openvpn/easy-rsa/pki/scp {ca.crt,issued/client.crt,private/client.key, ta.key} [email protected]:~/Instalar cliente OpenVPN
- Si está utilizando un servidor Linux/Unix como cliente, instale el cliente OpenVPN utilizando el administrador de paquetes respectivo, por ejemplo;
apt install openvpnyum install openvpn- Si se está conectando desde una máquina con Windows, simplemente puede descargar el instalador del cliente OpenVPN desde la página de descargas de OpenVPN e instalarlo.
Cree un archivo de configuración de OpenVPN para el cliente como se muestra a continuación. Como ejemplo, he copiado el certificado y los archivos clave en mi directorio de inicio en el cliente.
[email protected]:/home/amos# lsca.crt client.crt client.key ta.keycliente vim.ovpnclienttls-clientpulldev tunproto udpremote 192.168.43.69 1194resolv-retry infinitenobinddhcp-option DNS 8.8.8.8userbodygroup nogrouppersist-keypersist-tunkey-direction 1tls-auth ta.key 1comp-lzoverb 3ca ca.crtcert client.crtkey client.keyauth SHA512Para conectarse al servidor OpenVPN desde el cliente, ejecute cualquiera de los siguientes comandos:
sudo openvpn client.ovpno
sudo openvpn --config client.ovpnSi la conexión es exitosa, debería ver una
Initialization Sequence Completed
.Lunes 31 de diciembre 03:54:39 2018 Dispositivo TUN/TAP tun0 abiertoLunes 31 de diciembre 03:54:39 2018 Longitud de la cola TUN/TAP TX establecida en 100Lunes 31 de diciembre 03:54:39 2018 do_ifconfig, tt->did_ifconfig_ipv6_setup =0Lunes 31 de diciembre 03:54:39 2018 /sbin/ip link set dev tun0 up mtu 1500Lunes 31 de diciembre 03:54:39 2018 /sbin/ip addr agregar dev tun0 172.16.0.2/24 transmisión 172.16.0.255Lunes 31 de diciembre 03 :54:39 2018 /sbin/ip ruta agregar 192.168.43.69/32 dev enp0s8Lunes 31 de diciembre 03:54:39 2018 /sbin/ip ruta agregar 0.0.0.0/1 a través de 172.16.0.1Lunes 31 de diciembre 03:54:39 2018 /sbin/ip route add 128.0.0.0/1 a través de 172.16.0.1Lunes 31 de diciembre 03:54:39 2018 GID establecido en nogroupLunes 31 de diciembre 03:54:39 2018 UID establecido en noneLunes 31 de diciembre 03:54:39 2018 Secuencia de inicialización CompletadoSi puede verificar la interfaz, debería ver una interfaz de tunelización creada.
ip add sh tun020:tun0:mtu 1500 qdisc pfifo_fast state DESCONOCIDO grupo predeterminado qlen 100 link/none inet 172.16.0.2 /24 brd 172.16.0.255 scope global tun0 valid_lft forever prefer_lft forever inet6 fe80::dc37:c115:60f:6b86/64 scope link flags 800 valid_lft forever prefer_lft foreverSe ha conectado con éxito a su servidor VPN.
Se trata de cómo instalar y configurar el servidor OpenVPN en Fedora 29/CentOS 7. Su servidor OpenVPN está completamente operativo. Disfrutar.
Tutoriales relacionados
Configurar IPSEC VPN usando StrongSwan en Ubuntu 18.04
Configure el cliente VPN strongSwan en Ubuntu 18.04/CentOS 8
Configurar IPSEC VPN usando StrongSwan en Debian 10