IBM Cloud Docs
Creación de un servidor VPN

Creación de un servidor VPN

Cree un servidor VPN para permitir que los clientes de Internet se conecten a la red VPC manteniendo una conectividad segura.

Puede crear un servidor VPN utilizando la consola, la CLI o la API.

Antes de empezar

Antes de suministrar un servidor VPN, complete los siguientes requisitos previos en el orden indicado:

  1. Revise Consideraciones de planificación para servidores VPN.

  2. Decida qué modo de autenticación de cliente VPN va a utilizar: basado en certificado, ID de usuario y código de acceso, o ambos. Para obtener más información, consulte Configuración de la autenticación de cliente a sitio.

  3. Cree una instancia de servicio de Secrets Manager y gestione certificados.

    Se recomienda crear un certificado privado teniendo en cuenta estas consideraciones.

  4. Cree una autorización de servicio a servicio de IAM para su servidor VPN y IBM Cloud Secrets Manager.

  5. Cree una VPC y al menos una subred en la VPC seleccionada.

    Para la alta disponibilidad, cree una VPC y dos subredes en dos zonas diferentes. El servidor VPN reside en las dos subredes.

Crear un servidor VPN en la consola

Para crear un servidor VPN cliente-sitio en la consola:

  1. Complete todos los requisitos previos de la sección "Antes de empezar".

  2. Desde su navegador, abra la consola IBM Cloud y conéctese a su cuenta.

  3. Seleccione el icono Menú de navegación y, a continuación, haga clic en Infraestructura > Red > VPNs.

  4. Pulse Crear en la parte superior derecha de la página.

  5. En la sección Tipo de VPN, haga clic en Servidores de cliente a sitio.

    Sección Tipo de VPN
    Sección Tipo de VPN

    La sección Ubicaciones muestra la región donde se encuentra la VPC y donde se aprovisionará el servidor VPN.

  6. En la sección Detalles, especifique la información siguiente:

    • Nombre de servidor VPN: especifique un nombre para el servidor VPN, como my-vpn-server.

    • Grupo de recursos: seleccione un grupo de recursos para el servidor VPN.

    • Etiquetas- Opcionalmente, añada etiquetas para organizar, realizar un seguimiento de los costes de uso o gestionar el acceso a sus recursos.

    • Etiquetas de gestión de acceso-Opcionalmente, añada etiquetas de gestión de acceso a los recursos para ayudar a organizar las relaciones de control de acceso. El único formato admitido para las etiquetas de gestión de accesos es key:value. Para obtener más información, consulte Control del acceso a los recursos mediante etiquetas.

    • Nube privada virtual: seleccione la VPC para el servidor VPN.

    • Agrupación de direcciones IPv4 de cliente: especifique un rango de CIDR. Al cliente, se le asigna una dirección IP para su sesión desde esta agrupación de direcciones.

      Sección Detalles de VPN
      Sección Detalles de VPN

  7. En la sección Subredes, especifique la información siguiente:

    • Seleccione una modalidad de servidor VPN:

      • Modalidad de alta disponibilidad: despliega el servidor VPN a través de dos subredes en distintas zonas. Se recomienda para despliegues de varias zonas y para soluciones en las que el acceso a la VPN del cliente resulta fundamental.
      • Modalidad autónoma: despliega el servidor VPN en una única subred y zona. Se recomienda para despliegues de una sola zona en los que no se necesita resiliencia de varias zonas.
    • Especifique la subred (modalidad autónoma) o subredes (modalidad de alta disponibilidad) para la VPC.

      Sección de subredes VPN
      Sección de subredes VPN

  8. En la sección Autenticación, especifique la información siguiente:

    • Autenticación de servidor VPN: Seleccione el certificado SSL de servidor en Secrets Manager. Complete todos los campos necesarios.

      Sección de autenticación del servidor VPN
      Sección de autenticación del servidor VPN

    • Modalidades de autenticación de cliente: seleccione esta opción para configurar la autenticación de usuario mediante el uso de un certificado de cliente, un ID de usuario y una clave de acceso o ambas opciones.

      • Certificado de cliente: puede seleccionar un certificado de cliente y configurar un ID de usuario y una clave de acceso para conseguir la mayor seguridad. Un identificador de usuario y un código de acceso proporcionan una capa adicional de seguridad que requiere credenciales de inicio de sesión adicionales para acceder a la cuenta.

        Si lo desea, puede cargar una lista de revocación de certificados (CRL) en formato PEM. Después de cargar una CRL, el archivo PEM se muestra con el nombre del servidor VPN.

      • ID de usuario y código de acceso-Configure la autenticación añadida para los usuarios de cliente VPN. Este método de autenticación ofrece una capa adicional de seguridad que se integra con IBM Cloud IAM para completar la autenticación del cliente. Una vez completada la autenticación, el sistema pasa el código al cliente openVPN para que se autentique.

      Sección de autenticación de cliente VPN
      Sección de autenticación de cliente VPN

  9. En la sección Grupos de seguridad, seleccione al menos un grupo de seguridad.

    Para configurar uno o más grupos de seguridad y sus reglas o, opcionalmente, para configurar listas de control de acceso (ACL) en la subred donde planea implementar el servidor VPN y otras subredes VPC que se comunican a través del túnel VPN, consulte Configuración de ACL para usar con un servidor VPN.

    Sección Grupos de seguridad de VPN
    Sección Grupos de seguridad de VPN

    Puede conectar grupos de seguridad después de suministrar desde la página de detalles del servidor VPN (separador Grupos de seguridad).

  10. En la sección Configuración adicional, especifique la información siguiente:

    • Dirección IP de servidor DNS: si lo desea, especifique una o dos direcciones IP de servidor DNS para la resolución del nombre de dominio.

    • Sesión de tiempo de espera inactivo (segundos): si el servidor VPN no presenta tráfico antes de que se agote este intervalo, se desconectará automáticamente. Este valor puede oscilar entre 0 y 28800 segundos. El valor predeterminado es de 600 segundos.

    • Protocolo de transporte: seleccione uno de los protocolos siguientes y especifique un puerto VPN válido (1 - 65535).

      • UDP es un protocolo sin conexión que realiza la comprobación de errores, pero descarta los paquetes erróneos. Más rápido que TCP.
      • TCP es un protocolo orientado a conexiones con comprobación de errores y recuperación de errores. Más fiable que UDP.
    • Modalidad de túnel: especifique una de las opciones siguientes:

      • Túnel completo: todo el tráfico fluye a través de la interfaz VPN al túnel VPN.

      • Túnel dividido: el tráfico privado fluye a través de la interfaz VPN al túnel VPN y el tráfico público fluye a través de la interfaz LAN existente.

        Sección de configuración adicional de VPN
        Sección de configuración adicional de VPN

Creación de un servidor VPN desde la CLI

Antes de empezar, configure el entorno de CLI.

Para crear un servidor VPN desde la CLI, introduzca el siguiente comando:

ibmcloud is vpn-server-create --subnets SUBNETS --client-ip-pool CLIENT_IP_POOL --cert CERT (--client-auth-methods certificate | username | certificate,username | username,certificate) [--client-ca CLIENT_CA] [--client-crl CLIENT_CRL] [--client-dns CLIENT_DNS] [--client-idle-timeout CLIENT_IDLE_TIMEOUT] [--enable-split-tunnel false | true] [--port PORT] [--protocol udp | tcp] [--security-group SECURITY_GROUP1 --security-group SECURITY_GROUP2 ...] [--name NAME] [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] [--output JSON] [-q, --quiet]

Opciones de mandato

  • --subnets: ID separados por comas de las subredes en las que suministrar este servidor VPN. Utilice subredes en diferentes zonas para acceder a la alta disponibilidad. Se pueden establecer dos subredes como máximo.
  • --client-ip-pool: agrupación de direcciones IPv4 de cliente VPN, expresada en formato CIDR. La solicitud no debe solaparse con ninguno de los prefijos de dirección existentes en la VPC ni con ninguno de los rangos de direcciones reservadas siguientes: 127.0.0.0/8 (direcciones IPv4 de bucle de retorno), 161.26.0.0/16 (servicios de IBM), 166.8.0.0/14 (puntos finales del servicio de nube), 169.254.0.0/16 (direcciones IPv4 de enlace local), 224.0.0.0/4 (direcciones IPv4 de multidifusión). La longitud del prefijo del CIDR de la agrupación de direcciones IP del cliente debe encontrarse entre /9 (8.388.608 direcciones) y /22 (1024 direcciones). Se recomienda que el bloque de CIDR contenga el doble de direcciones IP que las necesarias para habilitar el número máximo de conexiones simultáneas.
  • --cert: CRN de la instancia de certificado para este servidor VPN.
  • --client-auth-methods: lista separada por comas de métodos de autenticación de cliente. Uno de los siguientes: certificate, username, certificate,username, username,certificate.
  • --client-ca: CRN de la instancia de certificado que se debe utilizar para la entidad emisora de certificados (CA) de cliente de VPN.
  • --client-crl: CRL | @CRL-file. Contenido de la lista de revocación de certificados, codificado en formato PEM.
  • --client-dns: lista separada por comas de direcciones de servidor DNS que se proporcionará a los clientes de VPN que se conecten a este servidor VPN. Se pueden establecer dos servidores DNS, como máximo.
  • --client-idle-timeout: segundos que un cliente de VPN puede estar desocupado antes de que este servidor VPN lo desconecte. Especifique 0 para impedir que el servidor desconecte los clientes desocupados (valor predeterminado: 600).
  • --enable-split-tunnel: indica si se ha habilitado la modalidad de túnel dividido en este servidor VPN. Uno de los siguientes: false, true (valor predeterminado: false).
  • --port: número de puerto que se utiliza con este servidor VPN (valor predeterminado: 443).
  • --protocol: protocolo de transporte que se debe utilizar para este servidor VPN. Uno de los siguientes: udp, tcp (valor predeterminado: udp).
  • --security-group: ID del grupo de seguridad.
  • --name: nuevo nombre para el servidor VPN.
  • --resource-group-id: ID del grupo de recursos. Esta opción es mutuamente excluyente con --resource-group-name.
  • --resource-group-name: Nombre del grupo de recursos. Esta opción es mutuamente excluyente con --resource-group-id.
  • --output: especifica el formato de salida, sólo se admite JSON. Valores posibles: JSON.
  • -q, --quiet: Suprimir la salida detallada.

Ejemplos de mandato

  • ibmcloud is vpn-server-create --subnets 0717-a7191f77-7c87-4ad4-bb11-a37f9e9fc0f0,0736-4b871e22-e819-4f87-bb17-e457a88246a2 --cert crn:v1:bluemix:public:cloudcerts:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:1862b0b4-c1f8-4eef-a6b5-e9c00c9f593d:certificate:6c801ef768c139d986b4c6f91175e8cc --client-ip-pool 190.165.7.0/20 --client-auth-methods certificate --client-ca crn:v1:bluemix:public:cloudcerts:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:1862b0b4-c1f8-4eef-a6b5-e9c00c9f593d:certificate:6c801ef768c139d986b4c6f91175e8cc
  • ibmcloud is vpn-server-create --name myvpnserver --subnets 0717-a7191f77-7c87-4ad4-bb11-a37f9e9fc0f0,0736-4b871e22-e819-4f87-bb17-e457a88246a2 --cert crn:v1:bluemix:public:cloudcerts:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:1862b0b4-c1f8-4eef-a6b5-e9c00c9f593d:certificate:6c801ef768c139d986b4c6f91175e8cc --client-ip-pool 190.166.7.0/20 --client-auth-methods username
  • ibmcloud is vpn-server-create --name myvpnserver2 --subnets 0717-a7191f77-7c87-4ad4-bb11-a37f9e9fc0f0 --cert crn:v1:bluemix:public:cloudcerts:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:1862b0b4-c1f8-4eef-a6b5-e9c00c9f593d:certificate:6c801ef768c139d986b4c6f91175e8cc --client-ip-pool 190.167.7.0/20 --client-auth-methods username --client-dns 9.9.9.9,8.8.8.8 --protocol tcp --port 8888 --enable-split-tunnel true --client-idle-timeout 1200
  • ibmcloud is vpn-server-create --name myvpnserver3 --subnets 0717-a7191f77-7c87-4ad4-bb11-a37f9e9fc0f0 --cert crn:v1:bluemix:public:cloudcerts:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:1862b0b4-c1f8-4eef-a6b5-e9c00c9f593d:certificate:6c801ef768c139d986b4c6f91175e8cc --client-ip-pool 190.168.7.0/20 --client-auth-methods username --security-group r006-e32f671c-463d-4f93-88e3-2dd0413476b4 --security-group r006-3af7a9db-d9bc-43d4-bced-93e0a33fee25
  • ibmcloud is vpn-server-create --subnets 0736-4b871e22-e819-4f87-bb17-e457a88246a2 --client-ip-pool 192.170.0.0/22 --client-dns 172.34.1.100 --cert crn:v1:bluemix:public:cloudcerts:us-south:a/0046b57b897f419080c4ed3e011b86d4:5f1a72bc-b4c2-413f-bd22-011cfa4be5db:certificate:c81627a1bf6f766379cc4b98fd21ccd6 --client-auth-methods certificate,username --client-ca crn:v1:bluemix:public:cloudcerts:us-south:a/0046b57b897f419080c4ed3e011b86d4:5f1a72bc-b4c2-413f-bd22-011cfa4be5db:certificate:c81627a1bf6f766379cc4b98fd21ccd6 --client-crl @./openvpn/crl.pem --name vpnswithcrl --security-group r006-5744b689-e5c4-461d-9f9b-ce5e7e8dbed6

Creación de un servidor VPN con la API

Para crear un servidor VPN cliente-sitio con la API, siga estos pasos:

  1. Configure el entorno de la API con las variables adecuadas.

  2. Almacene las variables adicionales que se van a utilizar en los mandatos de la API; por ejemplo:

    • ResourceGroupId: localice el ID de grupo de recursos con el mandato get resource groups y luego rellene la variable:

      export ResourceGroupId=<your_resourcegroup_id>
      
    • SubnetId: localice el ID de subred con el mandato get subnet y luego rellene la variable:

      export SubnetId=<your_subnet_id>
      
  3. Cuando estén inicializadas todas variables, cree el servidor VPN:

       curl -X POST "$vpc_api_endpoint/v1/vpn_servers?version=$api_version&generation=2" \
         -H "Authorization: $iam_token" \
         -d '{
            "certificate": {
                "crn": "crn:v1:bluemix:public:cloudcerts:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:1862b0b4-c1f8-4eef-a6b5-e9c00c9f593d:certificate:6c801ef768c139d986b4c6f91175e8cc"
             },
            "client_ip_pool": "192.168.50.0/22",
            "name": "my-new-vpn-server",
            "subnets": [
                {
                      "id": "0716-046c3fd3-1cc5-40f6-b0ad-bbc305308f6d"
                },
                {
                      "id": "0717-30ff71ff-3e90-42a9-aa93-96a062081f18"
                }
             ],
            "client_authentication": [
                {
                      "method": "certificate",
                      "client_ca": {
                         "crn": "crn:v1:bluemix:public:cloudcerts:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:1862b0b4-c1f8-4eef-a6b5-e9c00c9f593d:certificate:6c801ef768c139d986b4c6f91175e8cc"
                      }
                },
                {
                      "method": "username",
                      "identity_provider": {
                         "provider_type": "iam"
                      }
                }
             ]
            "resource_group": {
              "id": "'$ResourceGroupId'"
            }
          }'
    

Próximos pasos

  1. Para validar que el servidor VPN se ha creado correctamente, espere unos minutos y, a continuación, vaya a la tabla Servidores cliente-sitio para asegurarse de que el estado del servidor VPN es Stable y el estado de salud es Healthy.
  2. Cree rutas de VPN.
  3. Configure un entorno de cliente de VPN y conéctese al servidor VPN.