Configuración de VPN

Configuración de VPN

Como en el paso anterior, la mayoría de los parámetros se pueden incumplir. Cuando el Nombre común se consulta, ingrese “servidor”. Otras dos consultas requieren respuestas positivas “, firme el certificado? [y/n] “y” 1 de 1 solicitudes de certificado certificadas, confirmación? [y/n] “.

2x como

OpenVPN es una VPN SSL con todas las funciones que implementa la extensión de red segura de OSI Layer 2 o 3 utilizando el protocolo SSL/TLS estándar de la industria, admite métodos flexibles de autenticación del cliente basados ​​en certificados, tarjetas inteligentes y/o credenciales de nombre de usuario/contraseña, y permite el usuario del usuario o políticas de control de acceso específicas del grupo que utilizan reglas de firewall aplicadas a la interfaz virtual VPN. OpenVPN no es un proxy de aplicaciones web y no funciona a través de un navegador web.

OpenVPN 2.0 se expande en las capacidades de OpenVPN 1.x ofreciendo un modo de cliente/servidor escalable, permitiendo que varios clientes se conecten a un solo proceso de servidor OpenVPN a través de un solo puerto TCP o UDP. OpenVPN 2.3 incluye una gran cantidad de mejoras, que incluyen soporte completo de IPv6 y soporte PolarsSL.

Este documento proporciona instrucciones paso a paso para configurar un OpenVPN 2.x VPN cliente/servidor, incluyendo:

  • OpenVPN QuickStart.
  • Instalación de OpenVPN.
  • Determinar si usar una VPN enrutada o puenteada.
  • Numeración de subredes privadas.
  • Configuración de su propia Autoridad de Certificado (CA) y generar certificados y claves para un servidor OpenVPN y múltiples clientes.
  • Creación de archivos de configuración para servidor y clientes.
  • Iniciar la VPN y probar la conectividad inicial.
  • Configuración de OpenVPN para ejecutarse automáticamente en el inicio del sistema.
  • Controlar un proceso OpenVPN en ejecución.
  • Ampliar el alcance de la VPN para incluir máquinas adicionales en la subred del cliente o del servidor.
  • Empujando las opciones de DHCP a los clientes.
  • Configuración de reglas específicas del cliente y políticas de acceso.
  • Utilizando métodos de autenticación alternativos.
  • Cómo agregar autenticación de doble factor a una configuración de OpenVPN utilizando tarjetas inteligentes del lado del cliente.
  • Enrutar todo el tráfico de clientes (incluido el tráfico web) a través de la VPN.
  • Ejecutar un servidor OpenVPN en una dirección IP dinámica.
  • Conectarse a un servidor OpenVPN a través de un proxy HTTP.
  • Conectarse a una acción de samba sobre OpenVPN.
  • Implementación de una configuración de equilibrio de carga/conmutación por error.
  • Endurecimiento de la seguridad de OpenVPN.
  • Revocación de certificados.
  • Notas de seguridad adicionales.

El impaciente puede desear saltar directamente a los archivos de configuración de la muestra:

Público objetivo

Esto supone que los lectores poseen una comprensión previa de los conceptos básicos de redes, como direcciones IP, nombres DNS, redes de redes, subredes, enrutamiento IP, enrutadores, interfaces de red, LAN, puertas de enlace y reglas de firewall.

Documentación adicional

Libros de OpenVPN

Por favor, eche un vistazo a la página de libros de OpenVPN.

OpenVPN 1.x Cómo

El original OpenVPN 1.x Cómo todavía está disponible y sigue siendo relevante para configuraciones punto a punto o de tecla estática.

Artículos de OpenVPN

Para una documentación adicional, consulte la página de artículos y la wiki OpenVPN.

OpenVPN QuickStart

Si bien esto lo guiará para configurar una VPN de cliente/servidor escalable utilizando un X509 PKI (infraestrucción de clave pública usando certificados y claves privadas), esto podría ser excesivo si solo está buscando una configuración VPN simple con un servidor que pueda manejar un solo cliente.

Si desea que una VPN se ejecute rápidamente con una configuración mínima, puede consultar la tecla estática Mini-Howto.

Ventajas de clave estática

  • Configuración simple
  • No X509 PKI (infraestructura de clave pública) para mantener

Desventajas de clave estática

  • Escalabilidad limitada: un cliente, un servidor
  • Falta de Secreto perfecto hacia adelante — El compromiso clave da como resultado la divulgación total de sesiones anteriores
  • La clave secreta debe existir en forma de texto sin formato en cada par VPN
  • La clave secreta debe intercambiarse utilizando un canal seguro preexistente

Instalación de OpenVPN

El código fuente de OpenVPN y los instaladores de Windows se pueden descargar aquí. Lanzamientos recientes (2.2 y posterior) también están disponibles como paquetes de Debian y RPM; Vea la wiki OpenVPN para más detalles.

Para la seguridad, es una buena idea verificar la firma de lanzamiento del archivo después de descargar.

El ejecutable de OpenVPN debe instalarse en máquinas de servidor y cliente, ya que el ejecutable único proporciona funciones de cliente y servidor.

Notas de Linux (usando el paquete RPM)

Si está utilizando una distribución de Linux que admite paquetes RPM (SUSE, Fedora, Redhat, etc.), es mejor instalar utilizando este mecanismo. El método más fácil es encontrar un archivo rpm binario existente para su distribución. También puede construir su propio archivo de rpm binario:

rpmbuild -tb OpenVPN- [Versión].alquitrán.GZ

Una vez que tengas el .Archivo RPM, puede instalarlo con lo habitual

RPM -IVH OpenVpn- [Detalles].rpm

o actualizar una instalación existente con

RPM -UVH OpenVpn- [Detalles].rpm

La instalación de OpenVPN desde un paquete Binary RPM tiene estas dependencias:

Además, si está construyendo su propio paquete Binary RPM, hay varias dependencias adicionales:

  • de-devel de OpenSSL
  • de-devel
  • pam-devel

Ver OpenVPN.Archivo de especificaciones para notas adicionales sobre la construcción de un paquete RPM para Red Hat Linux 9 o edificio con dependencias reducidas.

Notas de Linux (sin RPM)

Si está utilizando Debian, Gentoo o una distribución de Linux no basada en RPM, use su mecanismo de envasado específico de distribución como apt-get en Debian o surgir en Gentoo.

También es posible instalar OpenVPN en Linux utilizando el Universal ./Configurar método. Primero expandir el .alquitrán.Archivo GZ:

Tar XFZ OpenVPN- [Versión].alquitrán.GZ

Luego CD al directorio de nivel superior y escriba:

./configure make make install

Notas de Windows

OpenVPN para Windows se puede instalar desde el archivo exe de autoinstalación en la página de descarga de OpenVPN. Recuerde que OpenVPN solo se ejecutará en Windows XP o más tarde. También tenga en cuenta que OpenVPN debe ser instalado y ejecutado por un usuario que tenga privilegios administrativos (Windows impone esta restricción, no OpenVPN). La restricción se puede evitar ejecutando OpenVPN en segundo plano como un servicio, en cuyo caso, incluso los usuarios no adminjos podrán acceder a la VPN, una vez que esté instalado. Más discusión sobre los problemas de privilegio de OpenVPN + Windows.

Los instaladores oficiales de OpenVPN Windows incluyen OpenVPN-GUI, que permite administrar conexiones OpenVPN desde un applet de bandeja del sistema. Otras aplicaciones de GUI también están disponibles.

Después de ejecutar el instalador de Windows, OpenVPN está listo para su uso y se asociará con archivos que tienen el .ovpn extensión. Para ejecutar OpenVPN, puede:

  • Haga clic derecho en un archivo de configuración de OpenVPN (.ovpn) y seleccione Inicie OpenVPN en este archivo de configuración. Una vez ejecutándose, puede usar el F4Clave para salir.
  • Ejecute OpenVPN desde una ventana del símbolo del sistema con un comando como:

OpenVpn myconfig.ovpn

Notas de Mac OS X

Angelo Laub y Dirk Theisen han desarrollado una GUI OpenVPN para OS X.

Otros OSE

Algunas notas están disponibles en el archivo de instalación para OSS específicos. En general, el

./configure make make install

El método se puede utilizar, o puede buscar un puerto o paquete OpenVPN que sea específico de su sistema operativo/distribución.

Determinar si usar una VPN enrutada o puenteada

Ver preguntas frecuentes para una descripción general del enrutamiento vs. Puente de Ethernet. Consulte también la página de puente de Ethernet OpenVPN para obtener más notas y detalles sobre puentes.

En general, el enrutamiento es probablemente una mejor opción para la mayoría de las personas, ya que es más eficiente y más fácil de configurar (en cuanto a la configuración de OpenVPN) que unir. El enrutamiento también proporciona una mayor capacidad para controlar selectivamente los derechos de acceso.

Recomendaría usar el enrutamiento a menos que necesite una característica específica que requiera un puente, como:

  • La VPN debe poder manejar protocolos que no,
  • Está ejecutando aplicaciones a través de la VPN que depende de las transmisiones de red (como los juegos LAN), o
  • le gustaría permitir la navegación de las acciones del archivo de Windows en la VPN sin configurar un servidor samba o gana.

Numeración de subredes privadas

Configurar una VPN a menudo implica unir subredes privados de diferentes ubicaciones.

La Autoridad de números asignados por Internet (IANA) ha reservado los siguientes tres bloques del espacio de direcciones IP para Internet privado (codificado en RFC 1918):

10.0.0.0 10.255.255.255 (10/8 prefijo)
172.dieciséis.0.0 172.31.255.255 (172.16/12 prefijo)
192.168.0.0 192.168.255.255 (192.168/16 prefijo)

Si bien las direcciones de estos bloques de red normalmente deben usarse en las configuraciones de VPN, es importante seleccionar direcciones que minimicen la probabilidad de la dirección IP o los conflictos de subred. Los tipos de conflictos que deben evitarse son:

  • conflictos de diferentes sitios en la VPN utilizando la misma subred de LAN, o
  • Conexiones de acceso remoto desde sitios que utilizan subredes privadas que entran en conflicto con sus subredes VPN.

Por ejemplo, supongamos que usa el popular 192.168.0.Subred 0/24 como su subred LAN privada. Ahora está tratando de conectarse a la VPN desde un cibercafé que está utilizando la misma subred para su lan wifi. Tendrá un conflicto de enrutamiento porque su máquina no sabrá si 192.168.0.1 se refiere a la puerta de enlace WiFi local o a la misma dirección en la VPN.

Como otro ejemplo, suponga que desea unir múltiples sitios por VPN, pero cada sitio está usando 192.168.0.0/20 como su subred LAN. Esto no funcionará sin agregar una capa complejadora de traducción NAT, porque la VPN no sabrá cómo enrutar paquetes entre varios sitios si esos sitios no usan una subred que los identifica de manera única.

La mejor solución es evitar usar 10.0.0.24/04 o 192.168.0.0/20/24 como direcciones de red de LAN privada. En su lugar, use algo que tenga una menor probabilidad de ser utilizada en un café WiFi, aeropuerto o hotel donde puede esperar conectarse de forma remota. Los mejores candidatos son las subredes en el medio de los vastos 10.0.0.0/8 Netblock (por ejemplo 10.66.77.4/24).

Y para evitar conflictos de numeración de IP de sitio cruzado, siempre use una numeración única para sus subredes LAN.

Configuración de su propia Autoridad de Certificado (CA) y generar certificados y claves para un servidor OpenVPN y múltiples clientes

Descripción general

El primer paso en la construcción de un OpenVPN 2.La configuración X es establecer un PKI (infraestructura de clave pública). El PKI consiste en:

  • un certificado separado (también conocido como clave pública) y clave privada para el servidor y cada cliente, y
  • Un certificado y clave de la Autoridad de Certificado Master (CA) que se utiliza para firmar cada uno de los certificados de servidor y cliente.

OpenVPN admite la autenticación bidireccional basada en certificados, lo que significa que el cliente debe autenticar el certificado del servidor y el servidor debe autenticar el certificado del cliente antes de que se establezca la confianza mutua.

Tanto el servidor como el cliente autenticarán el otro al verificar primero que el certificado presentado fue firmado por la Autoridad de Certificado Master (CA), y luego probando información en el encabezado de certificado ahora autorizado, como el Nombre o Tipo de Certificado del Certificado Certificado (Cliente o servidor).

Este modelo de seguridad tiene una serie de características deseables desde la perspectiva VPN:

  • El servidor solo necesita su propio certificado/clave: no necesita conocer los certificados individuales de cada cliente que posiblemente se conecte a él.
  • El servidor solo aceptará clientes cuyos certificados fueron firmados por el certificado Master CA (que generaremos a continuación). Y debido a que el servidor puede realizar esta verificación de firma sin necesidad de acceso a la clave privada de CA, es posible que la clave CA (la clave más sensible en todo PKI) reside en una máquina completamente diferente, incluso una sin una conexión de red.
  • Si se compromete una clave privada, se puede deshabilitar agregando su certificado a un CRL (lista de revocación de certificados). El CRL permite que los certificados comprometidos sean rechazados selectivamente sin requerir que se reconstruya todo el PKI.
  • El servidor puede hacer cumplir los derechos de acceso específicos del cliente basados ​​en campos de certificado integrados, como el nombre común.

Tenga en cuenta que los relojes del servidor y el cliente deben estar aproximadamente sincronizados o certificados, es posible que no funcionen correctamente.

Genere el certificado y clave de la autoridad del certificado maestro (CA)

En esta sección generaremos un certificado/clave CA maestro, un certificado/clave del servidor y certificados/claves para 3 clientes separados.

Para la gestión de PKI, usaremos Easy-RSA 2, un conjunto de scripts que se incluye con OpenVPN 2.2.x y antes. Si estás usando OpenVPN 2.3.x, debe descargar fácil-rsa 2 por separado de aquí.

Para la gestión de PKI, utilizaremos Easy-RSA 2, un conjunto de scripts que se incluye con OpenVPN 2.2.x y antes. Si estás usando OpenVPN 2.3.X, es posible que deba descargar Easy-RSA 2 por separado de la página del proyecto fácil-RSA. En las plataformas *nix debe considerar usar Easy-RSA 3 en su lugar; Consulte su propia documentación para obtener más detalles.

Si está utilizando Linux, BSD o un sistema operativo similar a UNIX, abra un shell y CD al fácil subdirectorio. Si instaló OpenVPN desde un archivo RPM o DEB, el directorio Easy-RSA generalmente se puede encontrar en /usr/share/doc/paquetes/openvpn o /usr/share/doc/openvpn(Es mejor copiar este directorio a otra ubicación como /etc/openvpn, Antes de cualquier edición, para que las futuras actualizaciones del paquete OpenVPN no sobrescriban sus modificaciones). Si instaló desde un .alquitrán.Archivo GZ, el directorio Easy-RSA estará en el directorio de nivel superior del árbol de origen expandido.

Si está utilizando Windows, abra una ventana de símbolo del sistema y CD a \ Archivos de programa \ OpenVPN \ Easy-RSA. Ejecute el siguiente archivo por lotes para copiar archivos de configuración en su lugar (esto sobrescribirá cualquier VAR preexistente.Bat y OpenSsl.archivos CNF):

config initiv

Ahora edite el vars archivo (llamado vars.murciélago en Windows) y configure los parámetros Key_country, Key_Province, Key_City, Key_org y Key_Email. No dejes en blanco ninguno de estos parámetros.

A continuación, inicializa el PKI. En Linux/BSD/Unix:

. ./vars ./Limpiar todo ./Build-Ca 
Vars Clean-All Build-Ca 

El comando final (construye) construirá el certificado y la clave de la autoridad del certificado (CA) invocando el interactivo openssldominio:

AI: Easy-RSA # ./Build-Ca generando una clave privada RSA de 1024 bits . ++++++ . ++++++ Escribir nueva clave privada para 'CA.clave '------ Está a punto de que se le pida que ingrese información que se incorporará a su solicitud de certificado. Lo que está a punto de ingresar es lo que se llama un nombre distinguido o un DN. Hay bastantes campos, pero puede dejar algo de blanco para algunos campos, habrá un valor predeterminado, si ingresa '.', el campo se dejará en blanco. ----- Nombre del país (código de 2 letras) [kg]: nombre de estado o provincia (nombre completo) [na]: nombre de la localidad (por ejemplo, ciudad) [bishkek]: nombre de la organización (por ejemplo, empresa) [OpenVPN-test]: nombre de la unidad organizacional (por ejemplo, sección) []: nombre común (por ejemplo, su nombre o el nombre de host de su servidor) []: OpenVPN-CA Dirección de correo electrónico [[email protected] dominio]:

Tenga en cuenta que en la secuencia anterior, la mayoría de los parámetros consultados se incorporaron a los valores establecidos en el varso vars.murciélago archivos. El único parámetro que debe ingresarse explícitamente es el Nombre común. En el ejemplo anterior, utilicé “OpenVPN-CA”.

Generar certificado y clave para el servidor

A continuación, generaremos un certificado y una clave privada para el servidor. En Linux/BSD/Unix:

./servidor Build-Key-Server
servidor de servidor de llave de construcción

Como en el paso anterior, la mayoría de los parámetros se pueden incumplir. Cuando el Nombre común se consulta, ingrese “servidor”. Otras dos consultas requieren respuestas positivas “, firme el certificado? [y/n] “y” 1 de 1 solicitudes de certificado certificadas, confirmación? [y/n] “.

Generar certificados y claves para 3 clientes

Generar certificados del cliente es muy similar al paso anterior. En Linux/BSD/Unix:

./Build-Key Client1 ./Build-Key Client2 ./Build-Key Client3
Build-Key Client1 Build-Key Client2 Build-Key Client3

Si desea proteger la contraseña de su cliente, sustituya el paso de llave de construcción guion.

Recuerde que para cada cliente, asegúrese de escribir el Nombre común Cuando se me solicite, yo.mi. “Client1”, “Client2” o “Client3”. Utilice siempre un nombre común único para cada cliente.

Generar parámetros difusos de Hellman

Los parámetros de Diffie Hellman deben generarse para el servidor OpenVPN. En Linux/BSD/Unix:

./Build-DH
construcción-dh
AI: Easy-RSA # ./Build-DH Generando parámetros DH, Prime Safe Safe de 1024 bits, generador 2 Esto llevará mucho tiempo . +. . +. +. +. .

Archivos clave

Ahora encontraremos nuestras claves y certificados recién generados en el llaves subdirectorio. Aquí hay una explicación de los archivos relevantes:

Nombre del archivo Necesitado por Objetivo Secreto
California.CRT servidor + todos los clientes Certificado de Root CA NO
California.llave máquina de firma de clave solamente Raíz CA Clave
dh.pem Solo servidor Parámetros de hellman difuntos NO
servidor.CRT Solo servidor Certificado de servidor NO
servidor.llave Solo servidor Clave del servidor
cliente1.CRT Cliente solo1 Certificado de cliente1 NO
cliente1.llave Cliente solo1 CLIENTE1 CLAVE
cliente2.CRT Cliente solo2 Certificado Client2 NO
cliente2.llave Cliente solo2 Clave Client2
cliente3.CRT SOLO CLIENTE3 Certificado Client3 NO
cliente3.llave SOLO CLIENTE3 Clave del cliente3

El paso final en el proceso de generación de claves es copiar todos los archivos a las máquinas que las necesitan, teniendo cuidado de copiar archivos secretos en un canal seguro.

Ahora espera, puedes decir. ¿No es posible configurar el PKI sin un canal seguro preexistente??

La respuesta es aparentemente sí. En el ejemplo anterior, en aras de la brevedad, generamos todas las claves privadas en el mismo lugar. Con un poco más de esfuerzo, podríamos haber hecho esto de manera diferente. Por ejemplo, en lugar de generar el certificado y las claves del cliente en el servidor, podríamos haber hecho que el cliente generara su propia clave privada localmente, y luego enviar una solicitud de firma de certificado (CSR) a la máquina de firma de clave. A su vez, la máquina de firma de claves podría haber procesado la CSR y devolver un certificado firmado al cliente. Esto podría haberse hecho sin requerir que un secreto .llave Archivo deje el disco duro de la máquina en la que se generó.

Creación de archivos de configuración para servidor y clientes

Obtener los archivos de configuración de muestra

Es mejor usar los archivos de configuración de muestra OpenVPN como punto de partida para su propia configuración. Estos archivos también se pueden encontrar en

  • el archivos de muestra-config Directorio de la distribución de fuente OpenVPN
  • el archivos de muestra-config directorio en /usr/share/doc/paquetes/openvpn o /usr/share/doc/openvpn Si instaló desde un paquete RPM o DEB
  • Menú de inicio -> Todos los programas -> OpenVPN -> Archivos de configuración de muestra de OpenVPN en Windows

Tenga en cuenta que en OSE de Linux, BSD o UNIX, los archivos de configuración de la muestra se nombran servidor.confusión y cliente.confusión. En las ventanas se nombran servidor.ovpn y cliente.ovpn.

Edición del archivo de configuración del servidor

El archivo de configuración del servidor de muestras es un punto de partida ideal para una configuración del servidor OpenVPN. Creará una VPN usando un virtual TONEL La interfaz de red (para enrutamiento) escuchará las conexiones del cliente en Puerto UDP 1194 (Número de puerto oficial de OpenVPN) y distribuya direcciones virtuales a la conexión de clientes desde el 10.8.0.24/04 subred.

Antes de usar el archivo de configuración de la muestra, primero debe editar el California, certificado, llave, y dh Parámetros para señalar los archivos que generó en la sección PKI anterior.

En este punto, el archivo de configuración del servidor se puede usar, sin embargo, es posible que desee personalizarlo más:

  • Si está utilizando el puente de Ethernet, debe usar puente de servidor y toque de desarrollo en lugar de servidor y tun.
  • Si desea que su servidor OpenVPN escuche en un puerto TCP en lugar de un puerto UDP, use Proto TCPen lugar de Proto UDP (Si desea que OpenVPN escuche en un puerto UDP y TCP, debe ejecutar dos instancias de OpenVPN separadas).
  • Si desea utilizar un rango de direcciones IP virtual que no sea 10.8.0.24/04, deberías modificar el servidordirectiva. Recuerde que este rango de direcciones IP virtuales debe ser un rango privado que actualmente no se usa en su red.
  • Desactivado el cliente a cliente Directiva Si desea conectar a los clientes para poder comunicarse entre sí a través de la VPN. Por defecto, los clientes solo podrán comunicarse con el servidor.
  • Si está utilizando Linux, BSD o un sistema operativo similar a UNIX, puede mejorar la seguridad desacomodando el usuario de nadie y no grupo de nadie directivas.

Si desea ejecutar múltiples instancias OpenVPN en la misma máquina, cada una con un archivo de configuración diferente, es posible si:

  • Utilice un puerto Número para cada instancia (los protocolos UDP y TCP usan diferentes espacios de puerto para que pueda ejecutar un demonio escuchando en UDP-1194 y otro en TCP-1194).
  • Si está utilizando Windows, cada configuración de OpenVPN Taneeds para tener su propio adaptador de tapas de tapas. Puede agregar adaptadores adicionales yendo a Menú de inicio -> Todos los programas -> Tap -Windows -> Agregue un nuevo adaptador de Ethernet virtual de Tap -Windows.
  • Si está ejecutando múltiples instancias de OpenVPN fuera del mismo directorio, asegúrese de editar directivas que creen archivos de salida para que múltiples instancias no sobrescriban los archivos de salida de los demás. Estas directivas incluyen registro, solicitar el registro, estado, y ifconfig-pool-perseja.

Edición de los archivos de configuración del cliente

El archivo de configuración del cliente de muestra (cliente.confusión en Linux/BSD/Unix o cliente.ovpn en Windows) refleja las directivas predeterminadas establecidas en el archivo de configuración del servidor de muestras.

  • Al igual que el archivo de configuración del servidor, primero edite el California, certificado, y llave Parámetros para señalar los archivos que generó en la sección PKI anterior. Tenga en cuenta que cada cliente debe tener su propio certificado/llave par. Solo el CaliforniaEl archivo es universal en todo el servidor OpenVPN y todos los clientes.
  • A continuación, edite el remotoDirectiva para señalar el nombre de host/dirección IP y el número de puerto del servidor OpenVPN (si su servidor OpenVPN se ejecutará en una sola máquina de NIC detrás de un firewall/nat-gateway, use la dirección IP pública de la puerta de enlace y un puerto número que ha configurado la puerta de enlace para reenviar al servidor OpenVPN).
  • Finalmente, asegúrese de que el archivo de configuración del cliente sea consistente con las directivas utilizadas en la configuración del servidor. Lo más importante para verificar es que el enchufe (tun o toque) y proto (UDP o TCP) Las directivas son consistentes. También asegúrese de que componer y fragmento, Si se usa, están presentes en los archivos de configuración del cliente y del servidor.

Iniciar la VPN y probar la conectividad inicial

Iniciando el servidor

Primero, asegúrese de que se pueda acceder al servidor OpenVPN desde Internet. Eso significa:

  • Abrir el puerto UDP 1194 en el firewall (o cualquier puerto TCP/UDP que haya configurado), o
  • Configuración de una regla de reenvío de puerto para reenviar el puerto UDP 1194 desde el firewall/puerta de enlace a la máquina que ejecuta el servidor OpenVPN.

Para simplificar la resolución de problemas, es mejor iniciar inicialmente el servidor OpenVPN desde la línea de comando (o haga clic con el botón derecho en el .ovpn Archivo en Windows), en lugar de iniciarlo como un demonio o servicio:

OpenVPN [Archivo de configuración del servidor] 

Una inicio del servidor normal debe verse así (la salida variará en todas las plataformas):

Sol 6 de febrero 20:46:38 2005 OpenVPN 2.0_RC12 i686-Suse-Linux [SSL] [LZO] [Epoll] construido el 5 de febrero 2005 Sol 6 de febrero 20:46:38 2005 Diffie-Hellman inicializado con 1024 Bit Key Sun 6 de febrero 20:46:38 2005 TLS-Auth MTU PARMS [L: 1542 D: 138 EF: 38 EB: 0 ET: 0 EL: 0] Sol 6 de febrero 20:46:38 2005 Dispositivo Tun/Tap Tun1 ABIERTO SOL 6 FEB 20:46:38 2005/SBIN/IFCONFIG TUN1 10.8.0.1 punto de punto 10.8.0.2 MTU 1500 SOL 6 FEB 20:46:38 2005 /SBIN /RUTA ADD -NET 10.8.0.0 Netmask 255.255.255.0 GW 10.8.0.2 SOL 6 FEB 20:46:38 2005 Canal de datos MTU parms [L: 1542 D: 1450 EF: 42 EB: 23 ET: 0 EL: 0 AF: 3/1] Sol 6 de febrero 20:46:38 2005 UDPV4 Link Local (encuadernado): [Undef]: 1194 Sol 6 de febrero 20:46:38 2005 UDPV4 Link Remote: [Undef] Sol 6 de febrero 20:46:38 2005 Multi: Multi_init llamado, R = 256 V = 256 SOL 6 20 FEB 20 : 46: 38 2005 Ifconfig Pool: Base = 10.8.0.4 Tamaño = 62 Sol 6 de febrero 20:46:38 2005 Ifconfig Pool Lista Sol 6 de febrero 20:46:38 2005 Secuencia de inicialización completada

Iniciar el cliente

Como en la configuración del servidor, es mejor iniciar inicialmente el servidor OpenVPN desde la línea de comando (o en Windows, haciendo clic derecho en el cliente.ovpn archivo), en lugar de comenzar como un demonio o servicio:

OpenVPN [archivo de configuración del cliente] 

Un inicio del cliente normal en Windows se verá similar a la salida del servidor anterior, y debe terminar con el Secuencia de inicialización completada mensaje.

Ahora, prueba un ping a través de la VPN del cliente. Si estás usando enrutamiento (yo.mi. tun En el archivo de configuración del servidor), intente:

ping 10.8.0.1

Si estás usando puente (yo.mi. toque de desarrollo En el archivo de configuración del servidor), intente hacer ping la dirección IP de una máquina en la subred Ethernet del servidor.

Si el ping tiene éxito, felicidades! Ahora tienes una VPN en funcionamiento.

Solución de problemas

Si el ping falló o la inicialización del cliente OpenVPN no se completó, aquí hay una lista de verificación de síntomas comunes y sus soluciones:

  • Recibes el mensaje de error: Error de TLS: la negociación de la clave TLS no pudo ocurriendo dentro de los 60 segundos (verifique la conectividad de su red). Este error indica que el cliente no pudo establecer una conexión de red con el servidor.Soluciones:
    • Asegúrese de que el cliente esté utilizando el nombre de host/dirección IP correcto y el número de puerto que le permitirá llegar al servidor OpenVPN.
    • Si la máquina del servidor OpenVPN es una caja única dentro de una LAN protegida, asegúrese de estar utilizando una regla correcta de reenvío del puerto en el firewall de puerta de enlace del servidor. Por ejemplo, suponga que su caja OpenVPN está en 192.168.4.4 Dentro del firewall, escuchando las conexiones del cliente en el puerto UDP 1194. La puerta de entrada Nat sirve el 192.168.4.La subred X debe tener una regla de reenvío de puerto que diga Reenviar el puerto UDP 1194 de mi dirección IP pública a 192.168.4.4.
    • Abra el firewall del servidor para permitir conexiones entrantes al puerto UDP 1194 (o cualquier puerto TCP/UDP que haya configurado en el archivo de configuración del servidor).
    TLS: paquete inicial de x.X.X.x: x, sid = xxxxxxxx xxxxxxxxx

    Consulte las preguntas frecuentes para obtener información adicional de solución de problemas.

    Configuración de OpenVPN para ejecutarse automáticamente en el inicio del sistema

    La falta de estándares en esta área significa que la mayoría de los OSS tienen una forma diferente de configurar Daemons/Services para AutoStart en el arranque. La mejor manera de tener esta funcionalidad configurada de forma predeterminada es instalar OpenVPN como un paquete, como a través de RPM en Linux o usar el instalador de Windows.

    Linux

    Si instala OpenVPN a través de un paquete RPM o DEB en Linux, el instalador configurará un initscript. Cuando se ejecuta, el Initscript escaneará para .confusión Archivos de configuración en /etc/openvpn, y si se encuentra, iniciará un demonio OpenVPN separado para cada archivo.

    Windows

    El instalador de Windows configurará un envoltorio de servicio, pero lo deje apagado de forma predeterminada. Para activarlo, vaya al panel de control / herramientas / servicios administrativos, seleccione el servicio OpenVPN, haga clic con el botón derecho en las propiedades y configure el tipo de inicio en automático. Esto configurará el servicio para el inicio automático en el próximo reinicio.

    Cuando se inicia, el envoltorio de servicio OpenVPN escaneará el \ Archivos de programa \ OpenVpn \ config carpeta para .ovpn Archivos de configuración, iniciando un proceso OpenVPN separado en cada archivo.

    Controlar un proceso OpenVPN en ejecución

    Ejecutando en Linux/BSD/Unix

    OpenVPN acepta varias señales:

    • Sigusr1 — Reinicio condicional, diseñado para reiniciar sin privilegios de raíz
    • Suspiro — Reinicio duro
    • Sigusr2 — Estadísticas de conexión de salida para registrar el archivo o syslog
    • Siglo, Firme — Salida

    Utilizar el escrito Directiva para escribir el PID de Daemon OpenVPN a un archivo, para que sepa dónde enviar la señal (si está comenzando OpenVPN con un initscript, Es posible que el guión ya esté pasando un –escrito directiva sobre el OpenVPN línea de comando).

    Ejecutando en Windows como GUI

    Ejecutando en una ventana del símbolo del sistema de Windows

    En Windows, puede iniciar OpenVPN haciendo clic derecho en un archivo de configuración de OpenVPN (.ovpn Archivo) y seleccionar “Iniciar OpenVPN en este archivo de configuración”.

    Una vez ejecutándose de esta manera, hay varios comandos de teclado disponibles:

    • F1 — Reinicio condicional (no cierre/reabrida el adaptador de toque)
    • F2 — Mostrar estadísticas de conexión
    • F3 — Reinicio duro
    • F4 — Salida

    Ejecutando como un servicio de Windows

    Cuando OpenVPN se inicia como un servicio en Windows, la única forma de controlarlo es:

    • A través del administrador de control de servicio (panel de control / herramientas / servicios administrativos) que proporciona control de inicio / parada.
    • A través de la interfaz de administración (ver más abajo).

    Modificar una configuración de servidor en vivo

    Si bien la mayoría de los cambios de configuración requieren que reinicie el servidor, hay dos directivas en particular que se refieren a archivos que se pueden actualizar dinámicamente sobre la marcha, y que tendrán un efecto inmediato en el servidor sin necesidad de reiniciar el proceso del servidor.

    cliente-config-dir — Esta directiva establece un directorio de configuración del cliente, que el servidor OpenVPN escaneará en cada conexión entrante, buscando un archivo de configuración específico del cliente (consulte la página Manual para obtener más información). Los archivos en este directorio se pueden actualizar sobre la marcha, sin reiniciar el servidor. Tenga en cuenta que los cambios en este directorio solo entrarán en vigencia para las nuevas conexiones, no las conexiones existentes. Si desea que un cambio de archivo de configuración específico del cliente tenga un efecto inmediato en un cliente conectado actualmente (o uno que se haya desconectado, pero donde el servidor no ha programado su objeto de instancia), mate el objeto de instancia del cliente utilizando la administración interfaz (descrita a continuación). Esto hará que el cliente se vuelva a conectar y utilice el nuevo cliente-config-dir archivo.

    CRL-Verify — Esta directiva nombra a Lista de revocación de certificados Archivo, descrito a continuación en la sección Certificados de revocar. El archivo CRL se puede modificar en la mosca, y los cambios entrarán en vigencia inmediatamente para nuevas conexiones, o conexiones existentes que renegocian su canal SSL/TLS (ocurre una vez por hora de forma predeterminada). Si desea matar a un cliente actualmente conectado cuyo certificado acaba de agregar al CRL, use la interfaz de administración (descrita a continuación).

    Archivo de estado

    El servidor predeterminado.El archivo conf tiene una línea

    Estado OpenVPN-Status.registro

    que emitirá una lista de conexiones de cliente actuales al archivo OpenVPN-Status.registro Una vez por minuto.

    Uso de la interfaz de administración

    La interfaz de administración de OpenVPN permite una gran cantidad de control sobre un proceso en ejecución de OpenVPN. Puede usar la interfaz de administración directamente, mediante telneting al puerto de interfaz de administración, o indirectamente utilizando una GUI OpenVPN que se conecta a la interfaz de administración.

    Para habilitar la interfaz de administración en un servidor o cliente OpenVPN, agregue esto al archivo de configuración:

    gestión localhost 7505

    Esto le dice a OpenVPN que escuche en el puerto TCP 7505 para los clientes de la interfaz de administración (el puerto 7505 es una opción arbitraria: puede usar cualquier puerto gratuito).

    Una vez que se está ejecutando OpenVPN, puede conectarse a la interfaz de administración utilizando un telnet cliente. Por ejemplo:

    Ai: ~ # Telnet localhost 7505 intentando 127.0.0.1. Conectado a localhost. El personaje de escape es '^]'. > Información: Interfaz de administración de OpenVPN versión 1 - Escriba 'Ayuda' para obtener más información Interfaz de administración de ayuda para OpenVPN 2.0_RC14 i686-SUSE-LINUX [SSL] [LZO] [EPOLL] construido el 15 de febrero de 2005 comandos: Echo [ON | OFF] [N | ALL]: Like Log, pero solo muestra mensajes en Echo Buffer. Salir | Salir: Sesión de gestión cercana. Ayuda: imprima este mensaje. Hold [ON | OFF | Release]: SET/Show Hold Flag en estado de encendido/apagado, o del túnel de retención y inicio de retención de actualización. Kill CN: Mata a las instancias del cliente que tiene un nombre común CN. Kill IP: Puerto: Mata la instancia del cliente que se conecta desde IP: puerto. Registro [en | apagado] [n | all]: activar/desactivar la pantalla de registro de tiempo real + mostrar las últimas líneas o 'todos' para toda la historia. mute [n]: establecer el nivel de mute de registro en n, o mostrar nivel si n está ausente. NET: (solo Windows) Mostrar información de red y tabla de enrutamiento. Tipo de contraseña P: Ingrese la contraseña P para una contraseña de OpenVPN consultada. señal S: Enviar señal S al Daemon, S = SighUp | Sigterm | Sigusr1 | Sigusr2. Estado [ON | OFF] [N | ALL]: como log, pero muestra la historia del estado. Estado [N]: Muestre información actual de estado de demonio usando formato #N. Prueba N: Producir n líneas de salida para probar/depurar. Nombre de usuario Tipo U: Ingrese el nombre de usuario U para un nombre de usuario OpenVPN consultado. verbo [n]: establecer el nivel de verbosidad del registro en n, o mostrar si n está ausente. Versión: Mostrar número de versión actual. Conexión de salida final cerrada por anfitrión extranjero. ai: ~ #

    Ampliar el alcance de la VPN para incluir máquinas adicionales en la subred del cliente o del servidor.

    Incluyendo varias máquinas en el lado del servidor cuando se usa una VPN enrutada (Dev Tun)

    Una vez que la VPN está operativa en una capacidad punto a punto entre el cliente y el servidor, puede ser deseable expandir el alcance de la VPN para que los clientes puedan alcanzar múltiples máquinas en la red del servidor, en lugar de solo la máquina del servidor en sí.

    Para el propósito de este ejemplo, asumiremos que la LAN del lado del servidor usa una subred de 10.66.0.24/04y el grupo de direcciones IP de VPN usa 10.8.0.24/04 Como se cita en el servidor Directiva en el archivo de configuración del servidor OpenVPN.

    Primero, debes anunciar el 10.66.0.24/04 Los clientes de subred a VPN son accesibles a través de la VPN. Esto se puede hacer fácilmente con la siguiente Directiva del archivo de configuración del lado del servidor:

    Push "Ruta 10.66.0.0 255.255.255.0 "

    A continuación, debe configurar una ruta en la puerta de enlace LAN del lado del servidor para enrutar la subred del cliente VPN (10.8.0.24/04) al servidor OpenVPN (esto solo es necesario si el servidor OpenVPN y la puerta de enlace LAN son máquinas diferentes).

    Asegúrese de habilitar el reenvío IP y Tun/Tap en la máquina de servidor OpenVPN.

    Incluyendo múltiples máquinas en el lado del servidor cuando se usa una VPN puenteada (TAP de Dev)

    Uno de los beneficios de usar puente de Ethernet es que obtenga esto de forma gratuita sin necesidad de ninguna configuración adicional.

    Incluyendo varias máquinas en el lado del cliente cuando se usa una VPN enrutada (Dev Tun)

    En un escenario típico de acceso a la carretera o de acceso remoto, la máquina del cliente se conecta a la VPN como una sola máquina. Pero suponga que la máquina del cliente es una puerta de entrada para una LAN local (como una oficina en casa), y desea que cada máquina en la LAN del cliente pueda enrutar a través de la VPN.

    Para este ejemplo, asumiremos que la LAN del cliente está utilizando el 192.168.4.24/04 subred, y que el cliente VPN está utilizando un certificado con un nombre común de cliente2. Nuestro objetivo es configurar la VPN para que cualquier máquina en la LAN del cliente pueda comunicarse con cualquier máquina en la LAN del servidor a través de la VPN.

    Antes de la configuración, hay algunos requisitos previos básicos que deben seguirse:

    • La subred LAN cliente (192.168.4.4/24 en nuestro ejemplo) no debe ser exportado a la VPN por el servidor o cualquier otro sitio cliente que esté utilizando la misma subred. Cada subred que se une a la VPN a través del enrutamiento debe ser única.
    • El cliente debe tener un nombre común único en su certificado (“Client2” en nuestro ejemplo) y el duplicado-CN El indicador no debe usarse en el archivo de configuración del servidor OpenVPN.

    Primero, asegúrese de que el reenvío IP y Tun/Tap esté habilitado en la máquina del cliente.

    A continuación, trataremos los cambios de configuración necesarios en el lado del servidor. Si el archivo de configuración del servidor no hace referencia actualmente a un directorio de configuración del cliente, agregue uno ahora:

    cliente-config-dir CCD

    En la directiva anterior, CCD Debe ser el nombre de un directorio que se ha creado pre-creado en el directorio predeterminado donde se ejecuta el Daemon del servidor OpenVPN. En Linux esto tiende a ser /etc/openvpn y en las ventanas suele ser \ Archivos de programa \ OpenVpn \ config. Cuando un nuevo cliente se conecta al servidor OpenVPN, el Daemon verificará este directorio para un archivo que coincida con el nombre común del cliente de conexión. Si se encuentra un archivo coincidente, se leerá y procesará para las directivas de archivo de configuración adicionales que se aplicarán al cliente nombrado.

    El siguiente paso es crear un archivo llamado cliente2 en el CCD directorio. Este archivo debe contener la línea:

    Iroute 192.168.4.0 255.255.255.0

    Esto le dirá al servidor OpenVPN que el 192.168.4.La subred 0/24 debe enrutarse a cliente2.

    A continuación, agregue la siguiente línea al archivo de configuración del servidor principal (no el CCD/Client2 archivo):

    Ruta 192.168.4.0 255.255.255.0

    Por qué el redundante ruta y iroute declaraciones, puede preguntar? La razón es que ruta controla el enrutamiento desde el núcleo al servidor OpenVPN (a través de la interfaz TUN) mientras iroute controla el enrutamiento desde el servidor OpenVPN a los clientes remotos. Ambos son necesarios.

    A continuación, pregúntese si desea permitir el tráfico de red entre la subred de Client2 (192.168.4.4/24) y otros clientes del servidor OpenVPN. Si es así, agregue lo siguiente al archivo de configuración del servidor.

    Ruta 192 del cliente a cliente ".168.4.0 255.255.255.0 "

    Esto hará que el servidor OpenVPN anunciar Subred de Client2 a otros clientes de conexión.

    El último paso, y uno que a menudo se olvida, es agregar una ruta a la puerta de enlace LAN del servidor que dirige 192.168.4.0/24 al cuadro de servidor OpenVPN (no lo necesitará si el cuadro de servidor OpenVPN es la puerta de enlace para la LAN del servidor). Supongamos que le faltaron este paso e intentó hacer ping a una máquina (no el servidor OpenVPN) en la LAN del servidor desde 192.168.4.8? El ping saliente probablemente llegaría a la máquina, pero entonces no sabría cómo enrutar la respuesta de ping, porque no tendría idea de cómo llegar a 192.168.4.24/04. La regla general de usar es que al enrutar LAN enteros a través de la VPN (cuando el servidor VPN no sea la misma máquina que la puerta de enlace LAN), asegúrese de que la puerta de enlace para las rutas LAN todas las subredes VPN a la máquina del servidor VPN.

    Del mismo modo, si la máquina del cliente que ejecuta OpenVPN no es también la puerta de enlace para la LAN del cliente, entonces la puerta de enlace para la LAN del cliente debe tener una ruta que dirija todas las subredes que deben acceder a través de la VPN a la máquina del cliente OpenVPN.

    Incluyendo múltiples máquinas en el lado del cliente cuando se usa una VPN puente (TAP de Dev)

    Esto requiere una configuración más compleja (tal vez no más compleja en la práctica, pero más complicado de explicar en detalle):

    • Debe cerrar la interfaz de toque del cliente con la NIC conectada a LAN en el cliente.
    • Debe configurar manualmente la IP/Netmask de la interfaz TAP en el cliente.
    • Debe configurar máquinas del lado del cliente para usar una máscara IP/neteta que esté dentro de la subred puenteada, posiblemente consultando un servidor DHCP en el lado del servidor OpenVPN de la VPN de la VPN.

    Empujando las opciones de DHCP a los clientes

    El servidor OpenVPN puede presionar opciones de DHCP, como DNS y las direcciones de servidor gana a los clientes (algunas advertencias a tener en cuenta). Los clientes de Windows pueden aceptar opciones de DHCP empujadas de forma nativa, mientras que los clientes que no son de Windows pueden aceptarlas utilizando un lado del cliente arriba guión que analiza el extranjero_option_norteLista de variables ambientales. Vea la página del hombre para no tener ventana extranjero_option_norte documentación y ejemplos de guiones.

    Por ejemplo, suponga que desea conectar a los clientes para usar un servidor DNS interno a las 10.66.0.4 o 10.66.0.5 y un servidor gana a las 10.66.0.8. Agregue esto a la configuración del servidor OpenVPN:

    Push "DHCP-option DNS 10.66.0.4 "empuje" DHCP-option DNS 10.66.0.5 "Push" DHCP-option gana 10.66.0.8 "

    Para probar esta función en Windows, ejecute lo siguiente desde una ventana del símbolo del sistema después de que la máquina se haya conectado a un servidor OpenVPN:

    ipconfig / all

    La entrada para el adaptador de tapas de grifo debe mostrar las opciones DHCP que el servidor presionó.

    Configuración de reglas específicas del cliente y políticas de acceso

    Supongamos que estamos configurando una VPN de la empresa, y nos gustaría establecer políticas de acceso separadas para 3 clases diferentes de usuarios:

    • Administradores del sistema — acceso completo a todas las máquinas en la red
    • Empleados — Acceso solo al servidor de Samba/correo electrónico
    • Contratistas — Acceso solo a un servidor especial

    El enfoque básico que tomaremos es (a) segregar cada clase de usuario en su propio rango de direcciones IP virtuales, y (b) controlar el acceso a las máquinas configurando las reglas de firewall que califican la dirección IP virtual del cliente.

    En nuestro ejemplo, supongamos que tenemos un número variable de empleados, pero solo un administrador del sistema y dos contratistas. Nuestro enfoque de asignación de IP será poner a todos los empleados en un grupo de direcciones IP y luego asignar direcciones IP fijas para el administrador del sistema y los contratistas.

    Tenga en cuenta que uno de los requisitos previos de este ejemplo es que tiene un firewall de software que se ejecuta en la máquina del servidor OpenVPN que le brinda la capacidad de definir reglas específicas de firewall. Para nuestro ejemplo, asumiremos que el firewall es Linux iptables.

    Primero, creemos un mapa de dirección IP virtual de acuerdo con la clase de usuario:

    Clase Rango de IP virtual Acceso LAN permitido Nombres comunes
    Empleados 10.8.0.24/04 Samba/servidor de correo electrónico a las 10.66.4.4 [variable]
    Administradores del sistema 10.8.1.24/04 10 10.66.4.024 subred sysadmin1
    Contratistas 10.8.2.24/04 Servidor de contratistas a las 10.66.4.12 Contratista1, Contratista2

    A continuación, traducir este mapa en una configuración de servidor OpenVPN. En primer lugar, asegúrese de haber seguido los pasos anteriores para hacer los 10.66.4.Subred 0/24 disponible para todos los clientes (mientras configuraremos el enrutamiento para permitir el acceso al cliente a los 10 completos.66.4.Subred 0/24, luego impondremos restricciones de acceso utilizando las reglas de firewall para implementar la tabla de política anterior).

    Primero, defina un número de unidad estática para nuestro tonel interfaz, para que podamos referirnos a ella más adelante en nuestras reglas de firewall:

    Dev tun0

    En el archivo de configuración del servidor, defina el grupo de direcciones IP del empleado:

    servidor 10.8.0.0 255.255.255.0

    Agregue rutas para los rangos de IP de administrador del sistema y contratista:

    Ruta 10.8.1.0 255.255.255.0 Ruta 10.8.2.0 255.255.255.0

    Debido a que asignaremos direcciones IP fijas para administradores y contratistas específicos del sistema, utilizaremos un directorio de configuración del cliente:

    cliente-config-dir CCD

    Ahora coloque archivos de configuración especiales en el CCD subdirectorio para definir la dirección IP fija para cada cliente VPN no empleado.

    CCD/SYSADMIN1

    ifconfig-empush 10.8.1.1 10.8.1.2

    CCD/Contrator1

    ifconfig-empush 10.8.2.1 10.8.2.2

    CCD/Contrator2

    ifconfig-empush 10.8.2.5 10.8.2.6

    Cada par de ifconfig-empus Las direcciones representan los puntos finales IP del cliente y del servidor virtual. Deben tomarse de subredes sucesivas /30 para ser compatibles con los clientes de Windows y el controlador de tapas de grifos. Específicamente, el último octeto en la dirección IP de cada par de puntos finales debe tomarse de este conjunto:

    [1, 2] [5, 6] [9, 10] [13, 14] [17, 18] [21, 22] [25, 26] [29, 30] [33, 34] [37, 38] [41, 42] [45, 46] [49, 50] [53, 54] [57, 58] [61, 62] [65, 66] [69, 70] [73, 74] [77, 78] [81, 82] [85, 86] [89, 90] [93, 94] [97, 98] [101,102] [105,106] [109,110] [113,114] [117,118] [121,122] [125,126] [129,130] [ 133,134] [137,138] [141,142] [145,146] [149,150] [153,154] [157,158] [161,162] [165,166] [169,170] [173,174] [177,178] [181,182] 94] [197,198] [201,202] [205,206] [209,210] [213,214] [217,218] [221,222] [225,226] [229,230] [233,234] [237,238] [241,242] [245,246] [249,250] [253,254]

    Esto completa la configuración de OpenVPN. El paso final es agregar reglas de firewall para finalizar la política de acceso. Para este ejemplo, usaremos reglas de firewall en el Linux iptables sintaxis:

    # Regla del empleado iptable -A Forward -I Tun0 -S 10.8.0.4/24 -d 10.66.4.4 -J Aceptar # Sysadmin Rule iptables -A Forward -I Tun0 -S 10.8.1.4/24 -d 10.66.4.0/24 -J Aceptar # Regla del contratista iptable -A Forward -I Tun0 -S 10.8.2.4/24 -d 10.66.4.12 -J aceptar

    Utilizando métodos de autenticación alternativos

    OpenVPN 2.0 y posterior incluye una característica que permite que el servidor OpenVPN obtenga de forma segura un nombre de usuario y contraseña de un cliente de conexión, y utilizar esa información como base para autenticar al cliente.

    Para usar este método de autenticación, primero agregue el pasador de autores Directiva a la configuración del cliente. Dirigirá al cliente OpenVPN que consulte al usuario para un nombre de usuario/contraseña, transmitiéndolo al servidor a través del canal TLS seguro.

    A continuación, configure el servidor para usar un complemento de autenticación, que puede ser un script, un objeto compartido o dll. El servidor OpenVPN llamará al complemento cada vez que un cliente VPN intente conectarse, pasando el nombre de usuario/contraseña ingresado en el cliente. El complemento de autenticación puede controlar si el servidor OpenVPN permite o no al cliente conectar devolviendo un valor de falla (1) o éxito (0).

    Uso de complementos de script

    Los complementos de script se pueden usar agregando el auth-user-pass-verify Directiva al archivo de configuración del lado del servidor. Por ejemplo:

    auth-user-pass-verify auth-pam.PL Via-File

    usará el autentoso.por favor Script Perl para autenticar el nombre de usuario/contraseña de conectar clientes. Ver la descripción de auth-user-pass-verify en la página manual para más información.

    El autentoso.por favor El script se incluye en la distribución de archivos de origen de OpenVPN en el Scripts de muestrasubdirectorio. Autenticará a los usuarios en un servidor de Linux utilizando un módulo de autenticación PAM, que a su vez podría implementar la contraseña de sombra, el radio o la autenticación LDAP. autentoso.por favor está destinado principalmente a fines de demostración. Para la autenticación PAM del mundo real, use el OpenVPN-Auth-Pamcomplemento de objetos compartidos que se describe a continuación.

    Uso de objetos compartidos o complementos DLL

    El objeto compartido o los complementos de DLL generalmente se compilan módulos C que están cargados por el servidor OpenVPN en el momento de ejecución. Por ejemplo, si está utilizando un paquete OpenVPN basado en RPM en Linux, el OpenVPN-Auth-Pam El complemento ya debe ser construido. Para usarlo, agregue esto al archivo de configuración del lado del servidor:

    Plugin/usr/share/openvpn/plugin/lib/openvpn-auth-pam.Así que inicia sesión

    Esto le dirá al servidor OpenVPN que valida el nombre de usuario/contraseña ingresado por los clientes utilizando el accesoMódulo PAM.

    Para el uso de producción del mundo real, es mejor usar el OpenVPN-Auth-Pam complemento, porque tiene varias ventajas sobre el autentoso.por favor guion:

    • El objeto compartido OpenVPN-Auth-Pam El complemento utiliza un modelo de ejecución de privilegio dividido para una mejor seguridad. Esto significa que el servidor OpenVPN puede ejecutarse con privilegios reducidos utilizando las directivas usuario de nadie, no grupo de nadie, y croote, y aún podrá autenticarse con el archivo de contraseña de sombra legal-legible.
    • OpenVPN puede pasar el nombre de usuario/contraseña a un complemento a través de la memoria virtual, en lugar de a través de un archivo o el entorno, que es mejor para la seguridad local en la máquina del servidor.
    • Los módulos de complemento compilados en C generalmente se ejecutan más rápido que los scripts.

    Si desea obtener más información sobre cómo desarrollar sus propios complementos para su uso con OpenVPN, consulte el Readme archivos en el enchufar Subdirectorio de la distribución de fuente OpenVPN.

    Para construir el OpenVPN-Auth-Pam complemento en Linux, CD al Plugin/Auth-Pam Directorio en la distribución y ejecución de la fuente OpenVPN hacer.

    Uso de la autenticación de nombre de usuario/contraseña como la única forma de autenticación del cliente

    Por defecto, usando auth-user-pass-verify o un nombre de usuario/verificación de contraseña enchufar en el servidor habilitará la autenticación dual, que requiere que tanto la autenticación del cliente-certificado como el nombre de usuario/contraseña tengan éxito para que el cliente se autentique.

    Si bien se desaconseja desde una perspectiva de seguridad, también es posible deshabilitar el uso de certificados del cliente y forzar solo la autenticación de nombre de usuario/contraseña. En el servidor:

    cliente-cert-no requerido

    Dichas configuraciones generalmente también deberían establecer:

    nombre de usuario como nombre común

    que le dirá al servidor que use el nombre de usuario para fines de indexación, ya que usaría el nombre común de un cliente que se estaba autenticando a través de un certificado de cliente.

    Tenga en cuenta que cliente-cert-no requerido no obviará la necesidad de un certificado de servidor, por lo que un cliente se conecta a un servidor que usa cliente-cert-no requerido puede eliminar el certificado y llave directivas del archivo de configuración del cliente, pero no el California Directiva, porque es necesario que el cliente verifique el certificado del servidor.

    Cómo agregar autenticación de doble factor a una configuración de OpenVPN utilizando tarjetas inteligentes del lado del cliente

    • Acerca de la autenticación de doble factor
    • ¿Qué es PKC#11??
    • Encontrar la biblioteca de proveedores de PKC#11.
    • Cómo configurar un token criptográfico
    • Cómo modificar una configuración de OpenVPN para utilizar tokens criptográficos
      • Determinar el objeto correcto.
      • Uso de OpenVPN con PKC#11.
      • PKCS#11 Consideraciones de implementación.
      • Proveedor de PKCS#11 de OpenSC.

      Acerca de la autenticación de doble factor

      La autenticación de doble factor es un método de autenticación que combina dos elementos: algo que tienes y algo que sabes.

      Algo que tienes debe ser un dispositivo que no se puede duplicar; Tal dispositivo puede ser un token criptográfico que contiene una clave secreta privada. Esta clave privada se genera dentro del dispositivo y nunca la deja. Si un usuario que posee este token intenta acceder a los servicios protegidos en una red remota, el proceso de autorización que otorga o niega el acceso a la red puede establecer, con un alto grado de certeza, que el usuario que busca acceso está en posesión física de un token certificado conocido.

      Algo que sabe que puede ser una contraseña presentada al dispositivo criptográfico. Sin presentar la contraseña adecuada, no puede acceder a la clave secreta privada. Otra característica de los dispositivos criptográficos es prohibir el uso de la clave secreta privada si se hubiera presentado la contraseña incorrecta más de un número permitido de veces. Este comportamiento asegura que si un usuario perdiera su dispositivo, sería inviable que otra persona lo use.

      Los dispositivos criptográficos se llaman comúnmente “tarjetas inteligentes” o “tokens”, y se usan junto con un PKI (infraestructura de clave pública). El servidor VPN puede examinar una x.Certificado 509 y verifique que el usuario mantenga la clave secreta privada correspondiente. Dado que el dispositivo no puede duplicarse y requiere una contraseña válida, el servidor puede autenticar al usuario con un alto grado de confianza.

      La autenticación de doble factor es mucho más fuerte que la autenticación basada en contraseña, porque en el peor de los casos, solo una persona a la vez puede usar el token criptográfico. Las contraseñas se pueden adivinar y pueden expuestos a otros usuarios, por lo que en el peor de los casos, un número infinito de personas podría intentar obtener acceso no autorizado cuando los recursos están protegidos utilizando autenticación solo con contraseña.

      Si almacena la clave privada secreta en un archivo, la clave generalmente está encriptada por una contraseña. El problema con este enfoque es que la clave cifrada está expuesta a ataques de descifrado o spyware/malware que se ejecuta en la máquina del cliente. A diferencia de cuando se usa un dispositivo criptográfico, el archivo no puede borrarse automáticamente después de varios intentos de descifrado fallidos.

      ¿Qué es PKC#11??

      Este estándar especifica una API, llamada Cryptoki, a dispositivos que contienen información criptográfica y realizan funciones criptográficas. Cryptoki, pronunciado “Crypto-Key” y abreviatura de la interfaz de token criptográfico, sigue un enfoque simple basado en objetos, abordando los objetivos de la independencia de la tecnología (cualquier tipo de dispositivo) y el intercambio de recursos (múltiples aplicaciones que acceden a múltiples dispositivos), presentando las aplicaciones A A Vista lógica común del dispositivo llamada token criptográfico.

      Para resumir, PKCS#11 es un estándar que puede ser utilizado por el software de aplicación para acceder a tokens criptográficos como tarjetas inteligentes y otros dispositivos. La mayoría de los proveedores de dispositivos proporcionan una biblioteca que implementa la interfaz de proveedor PKCS#11: las aplicaciones pueden utilizar esta biblioteca para acceder a estos dispositivos. PKCS#11 es un estándar gratuito de plataforma multiplataforma e independiente del proveedor.

      Encontrar la biblioteca de proveedores de PKC#11

      Lo primero que debe hacer es encontrar la biblioteca del proveedor, debe instalarse con los controladores de dispositivos. Cada proveedor tiene su propia biblioteca. Por ejemplo, el proveedor de PKCS#11 de OpenSC está ubicado AT/USR/LIB/PKCS11/OpenSC-PKCS11.Entonces en Unix o en OpenSC-PKCS11.DLL en Windows.

      Cómo configurar el token criptográfico

      Debe seguir un procedimiento de inscripción:

      • Inicializar el token PKCS#11.
      • Genere un par de claves RSA en el token PKCS#11.
      • Cree una solicitud de certificado basada en el par de claves, puede usar OpenSC y OpenSSL para hacerlo.
      • Envíe la solicitud de certificado a una autoridad de certificado y reciba un certificado.
      • Cargue el certificado en el token, al tiempo que señala que los atributos de identificación y etiqueta del certificado deben coincidir con los de la clave privada.

      Un token configurado es un token que tiene un objeto de clave privada y un objeto de certificado, donde comparten los mismos atributos de ID y etiqueta.

      Una simple utilidad de inscripción es fácil-RSA 2.0 que es parte de OpenVPN 2.1 serie. Siga las instrucciones especificadas en el archivo ReadMe y luego use el PKITOOL para inscribir.

      Inicializar un token usando el siguiente comando:

      ps ./PKITOOL-PKCS11-SLOTS/USR/LIB/PKCS11/$ ./PKITOOL-PKCS11-INIT/USR/LIB/PKCS11/

      Inscribir un certificado utilizando el siguiente comando:

      ps ./PKITOOL -PKCS11/USR/LIB/PKCS11/  

      Cómo modificar una configuración de OpenVPN para utilizar tokens criptográficos

      Deberías tener OpenVpn 2.1 o superior para usar las características de PKC#11.

      Determinar el objeto correcto

      Cada proveedor de PKCS#11 puede admitir múltiples dispositivos. Para ver la lista de objetos disponible, puede usar el siguiente comando:

      $ OpenVPN --Show-PKCS11-IDS/USR/LIB/PKCS11/Los siguientes objetos están disponibles para su uso. Cada objeto que se muestra a continuación puede usarse como parámetro para-PKCS11-ID Opción Recuerde usar una sola marca de cotización. Certificado DN:/CN = Usuario1 Serial: 490B82C4000000000075 ID serializada: AAAA/BBB/41545F5349474E415455524581D2A1A1B23C4AA4CB17FAF7A4600

      Cada par de certificado/clave privado tiene una cadena única de “ID serializada”. La cadena de identificación serializada del certificado solicitado debe especificarse al PKCS11-ID opción Uso de marcas de cotización única.

      PKCS11-ID 'AAAA/BBB/41545F5349474E4154555524581D2A1A1B23C4AA4CB17FAF7A4600' 

      Uso de OpenVPN con PKC#11

      Un conjunto típico de opciones OpenVPN para PKC#11
      PKCS11-Providers/USR/Lib/PKCS11/PKCS11-ID 'AAAA/BBB/41545F5349474E415455524581D2A1A1B23C4AA4CB17FAF7A4600' 

      Esto seleccionará el objeto que coincide con la cadena PKCS11-ID.

      Opciones avanzadas de OpenVPN para PKC#11
      PKCS11-Providers/USR/LIB/PKCS11/Provider1.SO/USR/LIB/PKCS11/Provider2.Entonces PKCS11-ID 'AAAA/BBB/41545F5349474E4154555524581D2A1A1AB23C4AA4CBB17FAF7A4600' PKCS11-PIN-CACHE 300 Daemon Authrety Nointeract Management Managemento-Signal-Signal Management 127.0.0.1 8888 Management-Query-Passwords 

      Esto cargará dos proveedores en OpenVPN, usará el certificado especificado en PKCS11-ID opción, y use la interfaz de administración para consultar contraseñas. El demonio se reanudará en el estado de Hold en el evento cuando no se puede acceder a Token. El token se utilizará durante 300 segundos, después de lo cual se volverá a quemar la contraseña, la sesión se desconectará si la sesión de administración se desconecta.

      PKCS#11 Consideraciones de implementación

      Muchos proveedores de PKC#11 utilizan hilos, para evitar problemas causados ​​por la implementación de LinuxThreads (SetUid, Chroot), se recomienda actualizar a Native Posix Thread Library (NPTL) GLIBC si tiene la intención de usar PKC#11.

      Proveedor de PKCS#11 de OpenSC

      El proveedor de PKCS#11 de OpenSC se encuentra AT/USR/LIB/PKCS11/OpenSC-PKCS11.Entonces en Unix o en OpenSC-PKCS11.DLL en Windows.

      Diferencia entre PKC#11 y Microsoft Cryptogry API (Cryptoapi)

      PKCS#11 es un estándar independiente de proveedor multiplataforma gratuito. Cryptoapi es una API específica de Microsoft. La mayoría de los proveedores de tarjetas inteligentes brindan soporte para ambas interfaces. En el entorno de Windows, el usuario debe seleccionar qué interfaz usar.

      La implementación actual de OpenVPN que usa MS Cryptoapi (criptoapicert opción) funciona bien siempre que no ejecute OpenVPN como un servicio. Si desea ejecutar OpenVPN en un entorno administrativo utilizando un servicio, la implementación no funcionará con la mayoría de las tarjetas inteligentes debido a las siguientes razones:

      • La mayoría de los proveedores de tarjetas inteligentes no cargan certificados en la tienda de máquinas locales, por lo que la implementación no podrá acceder al certificado de usuario.
      • Si el cliente OpenVPN se ejecuta como un servicio sin interacción directa con el usuario final, el servicio no puede consultar al usuario que proporcione una contraseña para la tarjeta inteligente, lo que hace que el proceso de verificación de contraseña en la tarjeta inteligente falle.

      Usando la interfaz PKCS#11, puede usar tarjetas inteligentes con OpenVPN en cualquier implementación, ya que PKCS#11 no accede a Microsoft Stores y no necesariamente requiere una interacción directa con el usuario final.

      Enrutar todo el tráfico de clientes (incluido el tráfico web) a través de la VPN

      Descripción general

      Por defecto, cuando un cliente OpenVPN está activo, solo el tráfico de red hacia y desde el sitio del servidor OpenVPN pasará por encima de la VPN. La navegación web general, por ejemplo, se realizará con conexiones directas que omiten la VPN.

      En ciertos casos, este comportamiento puede no ser deseable: es posible que un cliente de VPN tunelice todo el tráfico de red a través de la VPN, incluida la navegación web general de Internet. Si bien este tipo de configuración de VPN exigirá una penalización de rendimiento en el cliente, le da al administrador VPN más control sobre las políticas de seguridad cuando un cliente está conectado simultáneamente tanto a Internet público como a la VPN al mismo tiempo.

      Implementación

      Agregue la siguiente directiva al archivo de configuración del servidor:

      Push "Redirect-Gateway Def1"

      Si su configuración de VPN está sobre una red inalámbrica, donde todos los clientes y el servidor están en la misma subred inalámbrica, agregue la local bandera:

      Push "Redirect-Gateway Local Def1"

      Empujando el redirección-gateway La opción para los clientes hará que todo el tráfico de red IP se origine en máquinas cliente pase a través del servidor OpenVPN. El servidor deberá configurarse para tratar este tráfico de alguna manera, como mediante la transmisión de Internet, o enriqueciéndolo a través del proxy HTTP del sitio del servidor.

      En Linux, puede usar un comando como este para nat el tráfico del cliente VPN a Internet:

      iptables -t nat -a postrating -s 10.8.0.0/24 -O eth0 -j mascarada

      Este comando supone que la subred VPN es 10.8.0.24/04 (Tomado de la servidor Directiva en la configuración del servidor OpenVPN) y que la interfaz Ethernet local es eth0.

      Cuando redirección-gateway se usa, los clientes OpenVPN enrutarán consultas DNS a través de la VPN, y el servidor VPN necesitará manejarlas. Esto se puede lograr presionando una dirección de servidor DNS a los clientes de conexión que reemplazará su configuración normal del servidor DNS durante el tiempo que la VPN está activa. Por ejemplo:

      Push "DHCP-option DNS 10.8.0.1 "

      Configurará los clientes de Windows (o los clientes que no son de Windows con una secuencia de comandos adicional del lado del servidor) para usar 10.8.0.1 como su servidor DNS. Cualquier dirección que se puede acumular de los clientes se puede utilizar como dirección del servidor DNS.

      Advertencias

      Redireccionar todo el tráfico de red a través de la VPN no es completamente una propuesta sin problemas. Aquí hay algunos de Gotchas típicos de tener en cuenta:

      • Muchas máquinas cliente OpenVPN que se conectan a Internet interactuarán periódicamente con un servidor DHCP para renovar sus arrendamientos de dirección IP. El redirección-gateway La opción puede evitar que el cliente llegue al servidor DHCP local (porque los mensajes DHCP se enrutarían a través de la VPN), lo que hace que pierda su arrendamiento de dirección IP.
      • Existen problemas con respecto a empujar las direcciones DNS a los clientes de Windows.
      • El rendimiento de la navegación web en el cliente será notablemente más lento.

      Para obtener más información sobre la mecánica del redirección-gateway Directiva, consulte la página Manual.

      Ejecutar un servidor OpenVPN en una dirección IP dinámica

      Si bien los clientes OpenVPN pueden acceder fácilmente al servidor a través de una dirección IP dinámica sin ninguna configuración especial, las cosas se vuelven más interesantes cuando el servidor en sí está en una dirección dinámica. Si bien OpenVPN no tiene problemas para manejar la situación de un servidor dinámico, se requiere una configuración adicional.

      El primer paso es obtener una dirección DNS dinámica que se pueda configurar para “seguir” el servidor cada vez que cambia la dirección IP del servidor. Hay varios proveedores de servicios DNS dinámicos disponibles, como Dyndns.organizar.

      El siguiente paso es configurar un mecanismo para que cada vez que cambie la dirección IP del servidor, el nombre DNS dinámico se actualice rápidamente con la nueva dirección IP, lo que permite a los clientes encontrar el servidor en su nueva dirección IP. Hay dos formas básicas de lograr esto:

      • Use un dispositivo de enrutador NAT con soporte DNS dinámico (como el Linksys Befsr41). La mayoría de los electrodomésticos de enrutador NAT económicos que están ampliamente disponibles tienen la capacidad de actualizar un nombre dinámico de DNS cada vez que se obtiene un nuevo contrato de arrendamiento DHCP del ISP. Esta configuración es ideal cuando la caja de servidor OpenVPN es una máquina de un solo NIC dentro del firewall.
      • Use una aplicación de cliente DNS dinámica como DDClient para actualizar la dirección DNS dinámica cada vez que cambia la dirección IP del servidor. Esta configuración es ideal cuando la máquina que ejecuta OpenVPN tiene múltiples NIC y está actuando como un firewall/puerta de enlace de todo el sitio. Para implementar esta configuración, debe configurar un script para ejecutar su software de cliente DHCP cada vez que ocurre un cambio de dirección IP. Este script debería (a) ejecutar ddclientPara notificar a su proveedor de DNS dinámico de su nueva dirección IP y (b) reiniciar el Daemon del servidor OpenVPN.

      El cliente OpenVPN de forma predeterminada sentirá cuándo ha cambiado la dirección IP del servidor, si la configuración del cliente está utilizando un remoto Directiva que hace referencia a un nombre dinámico de DNS. La cadena de eventos habitual es que (a) el cliente OpenVPN no recibe mensajes Keepalive oportunos de la dirección IP antigua del servidor, activando un reinicio, y (b) el reinicio provoca el nombre DNS en el Nombre de DNS en el remoto Directiva para volver a resolver, lo que permite al cliente volver a conectarse al servidor en su nueva dirección IP.

      Se puede encontrar más información en las preguntas frecuentes.

      Conectarse a un servidor OpenVPN a través de un proxy HTTP.

      OpenVPN admite conexiones a través de un proxy HTTP, con los siguientes modos de autenticación:

      • Sin autenticación proxy
      • Autenticación de proxy básica
      • Autenticación proxy de NTLM

      En primer lugar, el uso del proxy HTTP requiere que use TCP como protocolo de portador del túnel. Así que agregue lo siguiente a las configuraciones del cliente y del servidor:

      Proto TCP

      Asegúrate de que Proto UDP Se eliminan las líneas en los archivos de configuración.

      A continuación, agregue el http-proxy Directiva al archivo de configuración del cliente (consulte la página Manual para obtener una descripción completa de esta directiva).

      Por ejemplo, suponga que tiene un servidor proxy HTTP en la LAN del cliente en 192.168.4.1, que está escuchando las conexiones en el puerto 1080. Agregue esto a la configuración del cliente:

      http-proxy 192.168.4.1 1080

      Supongamos que el proxy HTTP requiere autenticación básica:

      http-proxy 192.168.4.1 1080 Stdin Basic

      Supongamos que el proxy HTTP requiere autenticación NTLM:

      http-proxy 192.168.4.1 1080 stdin ntlm

      Los dos ejemplos de autenticación anteriores harán que OpenVPN solicite un nombre de usuario/contraseña desde la entrada estándar. Si desea colocar estas credenciales en un archivo, reemplace stdin con un nombre de archivo y coloque el nombre de usuario en la línea 1 de este archivo y la contraseña en la línea 2.

      Conectarse a una acción de samba sobre OpenVPN

      Se pretende que este ejemplo muestre cómo los clientes OpenVPN pueden conectarse a un samba compartido a través de un enrutado tun túnel. Si es un puente de Ethernet (toque de desarrollo), probablemente no necesite seguir estas instrucciones, ya que los clientes de OpenVPN deberían ver máquinas del lado del servidor en su vecindario de red.

      Para este ejemplo, asumiremos que:

      • La LAN del lado del servidor utiliza una subred de 10.66.0.24/04,
      • El grupo de direcciones IP de VPN usa 10.8.0.24/04 (Como se cita en el servidor Directiva en el archivo de configuración del servidor OpenVPN),
      • el servidor samba tiene una dirección IP de 10.66.0.4, y
      • El servidor samba ya se ha configurado y es accesible desde la LAN local.

      Si los servidores Samba y OpenVPN se ejecutan en diferentes máquinas, asegúrese de seguir la sección para expandir el alcance de la VPN para incluir máquinas adicionales.

      A continuación, edite su archivo de configuración de Samba (SMB.confusión). Asegúrate que Los anfitriones permiten La directiva permitirá que los clientes OpenVPN provengan del 10.8.0.24/04 subred para conectarse. Por ejemplo:

      Los hosts permiten = 10.66.0.4/24 10.8.0.4/24 127.0.0.1

      Si está ejecutando los servidores Samba y OpenVPN en la misma máquina, es posible que desee editar el interfaces directiva en el SMB.confusión archivo para escuchar también en la subred de la interfaz tun de 10.8.0.24/04:

      interfaces = 10.66.0.4/24 10.8.0.24/04

      Si está ejecutando los servidores SAMBA y OpenVPN en la misma máquina, conéctese desde un cliente OpenVPN a un Samba Share usando el nombre de la carpeta:

      \\ 10.8.0.1 \\ sharename

      Si los servidores Samba y OpenVPN están en diferentes máquinas, use el nombre de la carpeta:

      \\ 10.66.0.4 \ sharename

      Por ejemplo, desde una ventana del símbolo del sistema:

      Neta usa z: \\ 10.66.0.4 \ Sharename /User: MyUserName

      Implementación de una configuración de equilibrio de carga/conmutación por error

      Cliente

      La configuración del cliente OpenVPN puede consultar varios servidores para el equilibrio de carga y la conmutación por error. Por ejemplo:

      servidor remoto1.Mydomain Remote Server2.Mydomain Remote Server3.mi dominio

      Dirigirá al cliente OpenVPN que intente una conexión con Server1, Server2 y Server3 en ese orden. Si se rompe una conexión existente, el cliente OpenVPN volverá a intentar el servidor conectado más recientemente, y si eso falla, pasará al siguiente servidor en la lista. También puede dirigir al cliente OpenVPN a aleatorizar su lista de servidores en el inicio, para que la carga del cliente se extienda probabilísticamente a través del grupo de servidores.

      aleatorio

      Si también desea que la resolución DNS fallen en hacer que el cliente OpenVPN se mueva al siguiente servidor en la lista, agregue lo siguiente:

      resolv-retry 60

      El 60 El parámetro le dice al cliente OpenVPN que intente resolver cada remoto Nombre de DNS durante 60 segundos antes de pasar al siguiente servidor en la lista.

      La lista de servidores también puede consultar múltiples demonios de servidor OpenVPN que se ejecutan en la misma máquina, cada una escuchando las conexiones en un puerto diferente, por ejemplo:

      SMP-servidor remoto.mydomain 8000 remoto smp-server1.mydomain 8001 remoto smp-servir2.mydomain 8000 remoto smp-server2.Mydomain 8001

      Si sus servidores son máquinas multiprocesador, ejecutar múltiples demonios OpenVPN en cada servidor puede ser ventajoso desde el punto de vista de rendimiento.

      OpenVPN también admite el remoto directiva que se refiere a un nombre de DNS que tiene múltiples A registros en la configuración de zona para el dominio. En este caso, el cliente OpenVPN elegirá aleatoriamente uno de los A registra cada vez que se resuelve el dominio.

      Servidor

      El enfoque más simple para una configuración de carga de carga/conmutación por error en el servidor es usar archivos de configuración equivalentes en cada servidor en el clúster, excepto que use un grupo de direcciones IP virtuales diferentes para cada servidor. Por ejemplo:

      servidor 1

      servidor 10.8.0.0 255.255.255.0

      servidor2

      servidor 10.8.1.0 255.255.255.0

      servidor3

      servidor 10.8.2.0 255.255.255.0

      Endurecimiento de la seguridad de OpenVPN

      Una de las máximas a menudo repetidas de seguridad de la red es que uno nunca debe confiar tanto en un solo componente de seguridad que su falla causa una violación de seguridad catastrófica. OpenVPN proporciona varios mecanismos para agregar capas de seguridad adicionales para protegerse contra dicho resultado.

      TLS-AUTH

      El TLS-AUTH La directiva agrega una firma HMAC adicional a todos los paquetes de apretón de manos SSL/TLS para la verificación de integridad. Cualquier paquete UDP que no tenga la firma HMAC correcta se puede eliminar sin procesamiento adicional. El TLS-AUTH HMAC Signature proporciona un nivel adicional de seguridad más allá del proporcionado por SSL/TLS. Puede proteger contra:

      • Ataques de DOS o inundaciones en el puerto OpenVPN UDP.
      • Escaneo de puertos para determinar qué puertos UDP del servidor se encuentran en un estado de escucha.
      • Vulnerabilidades de desbordamiento del búfer en la implementación SSL/TLS.
      • Iniciaciones de apretón de manos SSL/TLS de máquinas no autorizadas (mientras que tales apretones de manos no se autenticarían, TLS-AUTH puede cortarlos en un punto mucho anterior).

      Usando TLS-AUTH requiere que genere una clave de secreto compartido que se usa además del certificado/clave RSA estándar:

      OpenVPN - -Genkey --secret TA.llave

      Este comando generará una tecla estática OpenVPN y la escribirá en el archivo ejército de reserva.llave. Esta clave debe copiarse a través de un canal seguro preexistente al servidor y a todas las máquinas cliente. Se puede colocar en el mismo directorio que el RSA .llave y .CRT archivos.

      En la configuración del servidor, agregue:

      TLS-Auth TA.Clave 0

      En la configuración del cliente, agregue:

      TLS-Auth TA.Clave 1

      Proto UDP

      Mientras que OpenVPN permite que el protocolo TCP o UDP se use como conexión del portador VPN, el protocolo UDP proporcionará una mejor protección contra los ataques de DOS y el escaneo de puertos que TCP:

      Proto UDP

      Usuario/grupo (solamente sin ventanas)

      OpenVPN se ha diseñado muy cuidadosamente para permitir que los privilegios de raíz se eliminen después de la inicialización, y esta característica siempre debe usarse en Linux/BSD/Solaris. Sin privilegios raíz, un demonio de servidor OpenVPN en ejecución proporciona un objetivo mucho menos atractivo a un atacante.

      Usuario nadie agrupa nadie

      Modo no privilegiado (solo Linux)

      En Linux OpenVPN se puede ejecutar completamente sin privilegios. Esta configuración es un poco más compleja, pero proporciona la mejor seguridad.

      Para trabajar con esta configuración, OpenVPN debe configurarse para usar la interfaz IProute, esto se hace especificando –enable-iproute2 para configurar script. El paquete sudo también debe estar disponible en su sistema.

      Esta configuración utiliza la capacidad de Linux para cambiar el permiso de un dispositivo TUN, para que el usuario no privilegiado pueda acceder a él. También usa sudo para ejecutar iProute para que las propiedades de la interfaz y la tabla de enrutamiento puedan modificarse.

        • Escriba el siguiente script y colóquelo en:/usr/local/sbin/sinsev-ip:
        #!/bin/sh sudo/sbin/ip $* 
          • Ejecute Visudo y agregue los siguientes para permitir que el usuario ‘User1’ ejecute /SBIN /IP:
          user1 all = (all) nopasswd: /sbin /ip
              También puede habilitar un grupo de usuarios con el siguiente comando:
            %usuarios all = (todos) nopasswd: /sbin /ip
              • Agregue lo siguiente a su configuración OpenVPN:
              dev tunx/tapx ipproute/usr/local/sbin/sinsev-ip
                • Tenga en cuenta que debe seleccionar constante x y especificar tun o toque no ambos.
                • A medida que la raíz agrega interfaz persistente y permite que el usuario y/o el grupo lo administren, el siguiente crea Tunx (reemplace con la suya) y permita a los usuarios de usuarios1 y grupos acceder a él.
                OpenVPN - -MKTUN --DEV ​​TUNX --Type Tun --User User1 -Usuarios de Group
                • Ejecutar OpenVPN en el contexto del usuario no privilegiado.

                Se pueden agregar restricciones de seguridad adicionales examinando los parámetros en el script/usr/local/sbin/sinsev-ip.

                Chroot (solo sin ventanas)

                El croote La directiva le permite bloquear el demonio OpenVPN en un llamado cárcel, donde el demonio no podría acceder a ninguna parte del sistema de archivos del sistema de host, excepto el directorio específico dado como parámetro a la directiva. Por ejemplo,

                cárcel

                haría que el demonio de OpenVPN se CD en el celda subdirectorio en la inicialización, y luego reorientaría su sistema de archivos raíz a este directorio para que fuera imposible que el demonio acceda a cualquier archivo fuera de celda y su árbol subdirectorio. Esto es importante desde una perspectiva de seguridad, porque incluso si un atacante pudiera comprometer el servidor con una exploit de inserción de código, el exploit se bloquearía en la mayoría del sistema de archivos del servidor.

                Advertencias: porque croote Reorienta el sistema de archivos (desde la perspectiva del demonio), es necesario colocar cualquier archivo que OpenVPN pueda necesitar después de la inicialización en el celda directorio, como:

                • el CRL-Verify archivo, o
                • el cliente-config-dir directorio.

                Llaves RSA más grandes

                El tamaño de la tecla RSA está controlado por el KEY_SIZE variable en el fácil-rsa/vars archivo, que debe establecerse antes de generar las claves. Actualmente establecido en 1024 de forma predeterminada, este valor se puede aumentar razonablemente a 2048 sin impacto negativo en el rendimiento del túnel VPN, a excepción de un apretón de manos de renegociación SSL/TLS ligeramente más lento que ocurre una vez por cliente por hora, y un diferencial muy lento mucho más lento. Proceso de generación de parámetros de Hellman utilizando el fácil-rsa/build-dh guion.

                Teclas simétricas más grandes

                Por defecto, OpenVPN usa Pescado, un cifrado simétrico de 128 bits.

                OpenVPN admite automáticamente cualquier cifrado que sea compatible con la biblioteca OpenSSL, y como tal puede admitir cifras que usan tamaños de llave grandes. Por ejemplo, la versión de 256 bits de AES (estándar de cifrado avanzado) se puede usar agregando lo siguiente a los archivos de configuración del servidor y del cliente:

                cifrado AES-256-CBC

                Mantenga la tecla Root (California.llave) en una máquina independiente sin una conexión de red

                Uno de los beneficios de seguridad del uso de un X509 PKI (como lo hace OpenVPN) es que la tecla Root CA (California.llave) no necesita estar presente en la máquina del servidor OpenVPN. En un entorno de alta seguridad, es posible que desee designar especialmente una máquina para fines de firma clave, mantener la máquina bien protegida físicamente y desconectarla de todas las redes. Los discos de disquete se pueden usar para mover archivos clave de un lado a otro, según sea necesario. Dichas medidas hacen que sea extremadamente difícil para un atacante robar la llave raíz, sin robo físico de la máquina de firma de llave.

                Revocación de certificados

                Revocar un certificado significa invalidar un certificado firmado previamente para que ya no pueda usarse para fines de autenticación.

                Las razones típicas para querer revocar un certificado incluyen:

                • La clave privada asociada con el certificado está comprometida o robada.
                • El usuario de una clave privada cifrada olvida la contraseña en la clave.
                • Desea finalizar el acceso de un usuario de VPN.

                Ejemplo

                Como ejemplo, revocaremos el cliente2 certificado, que generamos anteriormente en la sección “Generación de claves” de HowTto.

                Primero abra una ventana de shell o solicitante del sistema y CD al fácil Directorio como lo hizo en la sección “Generación de clave” anterior. En Linux/BSD/Unix:

                . ./vars ./Revoke-Full Client2 
                Vars Revoke-Full Client2 

                Debería ver la salida similar a esta:

                Uso de la configuración de/root/openvpn/20/openvpn/tmp/easy-rsa/openssl.Debug CNF [Load_index]: unique_subject = "Sí" Certificado de revocación 04. Base de datos actualizada con la configuración de/root/openvpn/20/openvpn/tmp/easy-rsa/openssl.CNF Debug [Load_index]: unique_subject = "Sí" Client2.crt:/c = kg/st = na/o = OpenVPN-test/cn = client2/correo electrónicoaddress = [email protected] de mydomain 23 a 0 Búsqueda de profundidad: certificado revocado

                Tenga en cuenta el “error 23” en la última línea. Eso es lo que desea ver, ya que indica que falló una verificación de certificado del certificado revocado.

                El revocador El script generará un archivo CRL (lista de revocación de certificados) llamado CRL.pem en el llavessubdirectorio. El archivo debe copiarse en un directorio donde el servidor OpenVPN pueda acceder a él, entonces la verificación CRL debe habilitarse en la configuración del servidor:

                CRL-Verify CRL.pem

                Ahora todos los clientes de conexión tendrán sus certificados de cliente verificados contra el CRL, y cualquier coincidencia positiva dará como resultado que la conexión se elimine.

                Notas CRL

                • Cuando el CRL-Verify La opción se usa en OpenVPN, el archivo CRL se volverá a leer cada vez que un nuevo cliente se conecta o un cliente existente renegocia la conexión SSL/TLS (de forma predeterminada una vez por hora). Esto significa que puede actualizar el archivo CRL mientras se está ejecutando el Daemon del servidor OpenVPN, y hacer que el nuevo CRL haya entrado en vigencia de inmediato para los clientes recién conectados. Si el cliente cuyo certificado está revocando ya está conectado, puede reiniciar el servidor a través de una señal (Sigusr1 o SighUp) y descargar a todos los clientes, o puede telnet a la interface y la interface de administración matar explícitamente el objeto de instancia del cliente específico en el servidor sin molestar otros clientes.
                • Mientras que la CRL-Verify La directiva se puede utilizar tanto en el servidor OpenVPN, generalmente es innecesario distribuir un archivo CRL a los clientes a menos que se haya revocado un certificado de servidor. Los clientes no necesitan saber sobre otros certificados de clientes que han sido revocados porque los clientes no deberían aceptar conexiones directas de otros clientes en primer lugar.
                • El archivo CRL no es secreto, y debe ser legible para el mundo para que el demonio OpenVPN pueda leerlo después de que se hayan eliminado los privilegios de la raíz.
                • Si esta utilizando el crooteDirectiva, asegúrese de colocar una copia del archivo CRL en el directorio de chroot, ya que, a diferencia de la mayoría de los otros archivos que OpenVPN se lee, el archivo CRL se leerá después de ejecutar la llamada de chroot, no antes.
                • Una razón común por la cual los certificados deben ser revocados es que el usuario cifra su clave privada con una contraseña, luego olvida la contraseña. Al revocar el certificado original, es posible generar un nuevo certificado/par de claves con el nombre común original del usuario.

                Nota importante sobre el posible ataque de “hombre en el medio” si los clientes no verifican el certificado del servidor al que se están conectando.

                Para evitar un posible ataque de hombre en el medio donde un cliente autorizado intenta conectarse a otro cliente al hacerse pasar por el servidor, asegúrese de imponer algún tipo de verificación de certificado de servidor por parte de los clientes. Actualmente hay cinco formas diferentes de lograr esto, enumeradas en el orden de preferencia:

                  [OpenVPN 2.1 y superior]Cree los certificados de su servidor con un uso de clave específico y un uso de clave extendida. El RFC3280 determina que los siguientes atributos deben proporcionarse para las conexiones TLS:

                  Modo Uso clave Uso de llave extendida
                  Cliente firma digital Autenticación del cliente web TLS
                  keyagreement
                  DigitalSignature, KeyAgreement
                  Servidor DigitalSignature, KeyEnentament Autenticación del servidor web TLS
                  DigitalSignature, KeyAgreement

                  Puede construir sus certificados de servidor con el servir de llave de construcción Script (consulte la fácil-rsadocumentación para obtener más información). Esto designará el certificado como un certificado de solo servidor configurando los atributos correctos. Ahora agregue la siguiente línea a la configuración de su cliente:

                servidor remoto-tls
                servidor de tipo NS-CERT

                Setupvpn

                Pasar por alto cualquier sitio web que haya sido bloqueado por su gobierno, escuela o empresa con solo un solo clic. SetupVPN viene con ancho de banda ilimitado y es completamente gratis para todos!

                Asegure la actividad de su navegador con el cifrado de grado militar mientras utiliza puntos de acceso WiFi público, red de empresas o red escolar. SetupVPN ofrece seguridad de Wi-Fi de alto grado y privacidad en línea.

                Con más de 100 servidores repartidos por todo el mundo, SetupVpn le permite acceder a cualquier contenido que no esté disponible en su país, empresa o en su escuela. Simplemente cambie su ubicación, cifre su conexión y cambie su dirección IP.

                No se requiere conocimiento técnico. Simplemente descargue la extensión, cree una cuenta y esté hecho! Cambie su ubicación contra rastreadores en línea. Evitar que los sitios web recopilen su información personal.

                SETUPVPN la forma más fácil de configurar un servidor VPN!

                Setupvpn viene con:
                – Servidor VPN ilimitado y 100% gratuito
                – No hay limitaciones de ancho de banda o velocidad
                – 4096 Bit Cifrado de grado militar

                Actualizado en
                18 de julio de 2023

                Seguridad de datos

                Arrow_forward

                La seguridad comienza con la comprensión de cómo los desarrolladores recopilan y comparten sus datos. Las prácticas de privacidad y seguridad de datos pueden variar según su uso, región y edad. El desarrollador proporcionó esta información y puede actualizarla con el tiempo.

                Cómo configurar una VPN en un iPhone en 2023

                FacebookLinkedInGorjeoCorreo electrónico

                FacebookLinkedInGorjeoCorreo electrónico

                Una red privada virtual (VPN) es una herramienta que oculta su geolocalización y protege su privacidad mientras está en línea. Hace esto mediante la creación de un túnel encriptado desde su red doméstica a un servidor de proveedores de VPN.

                Cuando compra un plan de Internet, su proveedor de servicios de Internet (ISP) le da a su equipo (como su enrutador y módem) una dirección de protocolo de Internet (IP). Su dirección IP lo ayuda a comunicarse con el Internet más amplio al dejar que un sitio web sepa de dónde provienen los datos y dónde enviarlos.

                En otras palabras, su dirección IP le permite a las empresas en línea saber dónde está. La mayoría de las empresas en línea almacenan direcciones IP para el análisis de datos, pero los ciberdelincuentes pueden usar su IP para rastrear su actividad en línea, robar su información personal y dirigirlo para estafas.

                Una VPN redirige su Internet a través de una dirección de servidor con una IP diferente a la suya. De esa manera, nadie en línea puede rastrear su actividad de Internet. Una VPN también cifra sus datos de Internet para proteger su información personal.

                Sin embargo, las VPN no son solo para computadoras de escritorio. Todo tipo de dispositivos, desde iPads hasta televisores inteligentes, puede beneficiarse de una conexión VPN . Si usted es el tipo de persona que maneja sus finanzas o hace negocios en línea utilizando un dispositivo móvil, es aconsejable obtener una VPN para protegerse.

                Este artículo le mostrará cómo elegir e instalar una VPN en su iPhone .

                ¿Por qué usar una VPN??

                Estas son algunas de las principales formas en que obtener una VPN como McAfee Safe Connect VPN puede beneficiarlo:

                • Una VPN puede ayudarlo a acceder de forma remota a su trabajo Intranet. Una intranet es una pequeña subsección de Internet que no se conecta a la Internet más grande. Las empresas usan intranets, donde las empresas pueden almacenar archivos importantes solo internos, para brindar a sus empleados acceso rápido a las herramientas de trabajo de la empresa y mejorar la comunicación.
                • Una VPN utiliza cifrado de grado bancario para ocultar su información y acciones personales de los cibercriminales yanunciantes. Esto le permite comprar, banco y hacer todo lo demás en línea sin preocuparse de que alguien robe su información, incluso si está utilizando una red pública de Wi-Fi .
                • Una VPN puede mantener su navegación privada. Hace esto ocultando su dirección IP, por lo que su ubicación física, información bancaria e información de la tarjeta de crédito están protegidas mientras navega en línea.

                Cómo elegir un Proveedor de VPN

                La mejor VPN para usted depende de su situación y de lo que planea hacer en línea.

                Necesitará una VPN que sea compatible con todos sus dispositivos. Muchas VPN funcionan con Windows, Android, MacOS, Linux e iOS . Sin embargo, no todas las VPN son compatibles con cada sistema operativo. Por ejemplo, si tiene un iPhone pero alguien más en su hogar tiene un Android, es importante elegir un proveedor con una aplicación en Apple App Store y Google Play Store.

                Considere qué características necesitará:

                • ¿Viajarás?? Si es así, obtenga una VPN con ubicaciones de servidor a donde va.
                • ¿Tiene una familia numerosa con muchos dispositivos?? Entonces, una VPN basada en un enrutador puede ser una buena opción.
                • ¿Usarás tu VPN para cosas como transmitir películas enNetflixy juegos? Querrás una VPN con mucha velocidad y ancho de banda.

                Sin embargo, tenga cuidado al elegir un servicio VPN. Algunos servicios de VPN gratuitos aún transmitirán su información a las agencias de anuncios. Si la privacidad en línea es su objetivo principal, querrá encontrar una VPN que no almacene los registros de su actividad de Internet o transmita sus datos.

                Los protocolos VPN también son importantes, y varían en velocidad y seguridad. Por ejemplo, el protocolo de túnel punto a punto (PPTP) es un protocolo rápido, pero no es tan seguro como otros protocolos como OpenVPN o WireGuard. Algunos proveedores de VPN le permitirán usar múltiples protocolos.

                Finalmente, busque una VPN que sea fácil de usar. Algunas VPN tienen características convenientes como configuración virtual e interfaces intuitivas que hacen que usarlas sea más fácil. Algunos proveedores incluso le darán una prueba gratuita para probar la VPN antes de comprometerse con ella. Asegúrese de que su red VPN también tenga un equipo de soporte confiable para ayudarlo si alguna vez tiene problemas.

                Cómo configurar una VPN en un iPhone

                Le mostraremos cómo completar la configuración de VPN en su iPhone en las próximas secciones.

                Instala el iOS aplicación de un Proveedor de VPN

                Vaya a la Apple App Store en su iPhone y busque una aplicación para el proveedor de VPN que haya elegido. Toque “Obtener” e “Instalar” o verificar doble para instalar la aplicación en su teléfono.

                Crear una cuenta en el Aplicación VPN

                Abra la aplicación VPN . Crear una cuenta con el proveedor de VPN . Regístrese para el servicio.

                Abierto iPhone configuración y conectarse a la VPN

                Tendrá que ingresar su código de acceso después de crear su cuenta para permitir un cambio en la configuración de VPN de su teléfono y habilitar la VPN.

                Es posible que deba configurar manualmente su VPN si necesita acceso a una red privada en un negocio o escuela. Aquí le mostramos cómo habilitar manualmente una VPN para funcionar en su iPhone:

                1. Toque su aplicación “Configuración” en la pantalla de inicio de su iPhone .
                2. Elija “General.”
                3. Presione “VPN.”
                4. Toque “Agregar configuración de VPN .”
                5. Presione “Escriba” y elija el tipo de protocolo VPN que esté utilizando. Podría ser ikev2, iPsec o l2tp .
                6. Escriba una descripción, ID remota y un servidor para la VPN.
                7. Escriba su nombre de usuario y contraseña.
                8. Haga clic en “Manual” o “Auto” para habilitar su servidor proxy (si usa uno).
                9. Presione “Hecho.”

                Use la VPN en su iPhone

                Después de habilitar la VPN en la configuración de su iPhone, tendrá que activarlo cuando desee usarlo. Así es como puedes hacer que tu VPN activa:

                1. Vaya a la aplicación “Configuración” en su teléfono.
                2. Ir a “General.”
                3. Elija “VPN.”
                4. Toque el interruptor de estado en su VPN para encenderlo.

                Asegúrese de apagar su VPN cuando no lo use para que no use su batería. Es especialmente importante desactivar su VPN si está en un plan limitado de su proveedor.

                Mantenga su dispositivo seguro con la seguridad de McAfee para dispositivos móviles

                Una VPN es una gran herramienta para mantener su conexión a Internet privada. Cuando instala una VPN en su iPhone, puede disfrutar de Internet desde cualquier lugar sabiendo que su información personal tiene una capa adicional de protección contra anunciantes y hackers .

                Sin embargo, ya sea que use un dispositivo Android o un dispositivo iOS, McAfee puede ayudarlo a mantenerse a salvo en línea. Con la seguridad de McAfee para dispositivos móviles, puede acceder a herramientas de seguridad de calidad como una VPN y una navegación segura.

                Nuestra aplicación galardonada le permite conectarse de manera segura y perfecta al mundo digital mientras evita que los visitantes no entren en su espacio digital. Disfrute de una de nuestras tecnologías de seguridad más completas mientras vive su mejor vida en línea.