IBM Cloud Docs
Criando um Servidor VPN

Criando um Servidor VPN

Crie um servidor VPN para permitir que os clientes da Internet se conectem à rede VPC enquanto mantêm a conectividade segura.

É possível criar um servidor VPN usando o console, a CLI ou a API.

Antes de Iniciar

Antes de fornecer um servidor VPN, preencha os pré-requisitos a seguir nesta ordem:

  1. Revise Considerações de planejamento para servidores VPN.

  2. Decida qual modo de autenticação de cliente VPN usar: baseado em certificado, ID de usuário e código de acesso, ou ambos. Para obter mais informações, consulte Configurando a autenticação do cliente para site.

  3. Crie uma instância de serviço do Secrets Manager e gerencie certificados

    É recomendado criar um certificado privado com essas considerações em mente.

  4. Crie uma autorização IAM de serviço para serviço para seu servidor VPN e IBM Cloud Secrets Manager.

  5. Crie um VPC e pelo menos uma sub-rede em seu VPC selecionado

    Para obter alta disponibilidade, crie uma VPC e duas sub-redes em duas zonas diferentes. O servidor VPN reside nas duas sub-redes.

Criação de um servidor VPN no console

Para criar um servidor VPN cliente-para-site no console:

  1. Preencha todos os pré-requisitos na seção "Antes de começar".

  2. No seu navegador, abra o console IBM Cloud e faça login na sua conta.

  3. Selecione o ícone Menu de navegação Menu e clique em Infraestrutura > Rede > VPNs.

  4. Clique em Criar na parte superior direita da página.

  5. Na seção Tipo de VPN, clique em Servidores cliente-para-site.

    seção tipo VPN
    Seção de tipo de VPN

    A seção Locais mostra a região em que a VPC está localizada e onde o servidor VPN será provisionado.

  6. Na seção Detalhes, especifique as informações a seguir:

    • Nome do servidor VPN - Insira um nome para o servidor VPN, como my-vpn-server.

    • Grupo de recursos - Selecione um grupo de recursos para o servidor VPN.

    • Tags- Opcionalmente, adicione tags para organizar, rastrear custos de uso ou gerenciar o acesso aos seus recursos.

    • Tags de gerenciamento de acesso-Opcionalmente, adiciona tags de gerenciamento de acesso a recursos para ajudar a organizar as relações de controle de acesso. O único formato suportado para as tags de gerenciamento de acesso é key:value. Para obter mais informações, consulte Controlando o acesso aos recursos usando tags.

    • Nuvem privada virtual - Selecione a VPC para o servidor VPN.

    • Conjunto de endereços IPv4 do cliente - Insira uma faixa CIDR. Um endereço IP é designado ao cliente para sua sessão deste conjunto de endereços.

      seção detalhes VPN
      Seção de detalhes VPN

  7. Na seção Sub-redes, especifique as informações a seguir:

    • Selecione um modo de servidor VPN:

      • Modo de alta disponibilidade - Implementa o servidor VPN por meio de duas sub-redes em diferentes zonas. É melhor para implementações em várias zonas e soluções nas quais o acesso à VPN do cliente é essencial.
      • Modo independente - Implementa o servidor VPN em uma única sub-rede e zona. É melhor para implementações de zona única nas quais a resiliência multizona não é necessária.
    • Especifique a sub-rede (modo independente) ou sub-redes (modo HA) para sua VPC.

      Seção de sub-redes VPN
      Seção de sub-redes VPN

  8. Na seção Autenticação, especifique as informações a seguir:

    • Autenticação de servidor VPN-Selecione o certificado SSL do servidor do Secrets Manager. Preencha todos os campos obrigatórios.

      seção de autenticação do servidor VPN
      Seção de autenticação do servidor VPN

    • Modos de autenticação do cliente - Selecione para configurar a autenticação do usuário por meio do uso de um certificado de cliente, ID e senha do usuário, ou ambos.

      • Certificado de cliente - É possível selecionar um certificado de cliente e configurar um ID e senha de usuário para segurança ideal. Um ID de usuário e uma senha fornecem uma camada adicional de segurança que exige credenciais de login adicionais para acesso à conta.

        Opcionalmente, é possível fazer o upload de uma Lista de Revocação de Certificados (CRL) no formato PEM. Depois de fazer upload de uma CRL, o arquivo PEM é exibido como o nome do servidor VPN.

      • ID do usuário e senha-Configurar autenticação adicionada para usuários clientes VPN. Esse método de autenticação oferece uma camada adicional de segurança que se integra ao IBM Cloud IAM para concluir a autenticação do cliente. Quando a autenticação é concluída, o sistema passa o código para o cliente openVPN para autenticação.

      Seção de autenticação de cliente VPN
      Seção de autenticação de cliente VPN

  9. Na seção Grupos de segurança, selecione pelo menos um grupo de segurança.

    Para configurar um ou mais grupos de segurança e suas regras ou, opcionalmente, para configurar listas de controle de acesso (ACLs) na sub-rede em que você planeja implantar o servidor VPN e outras sub-redes VPC que se comunicam pelo túnel VPN, consulte Configuração de ACLs para uso com um servidor VPN.

    seção de grupos de segurança VPN
    Seção de grupos de segurança VPN

    É possível anexar grupos de segurança após o fornecimento a partir da página de detalhes do servidor VPN (guia Grupos de Segurança).

  10. Na seção Configuração adicional, especifique as informações a seguir:

    • Endereço IP do servidor DNS - Opcionalmente, especifique um ou dois endereços IP do servidor DNS para resolução de nome de domínio.

    • Sessão de tempo limite inativo (segundos) - Se o servidor VPN não tiver tráfego antes deste intervalo expirar, ele será automaticamente desconectado. Este valor pode variar entre 0 a 28800 segundos. O valor padrão é 600 segundos.

    • Protocolo de transporte - Selecione um dos protocolos a seguir e insira uma porta VPN válida (1 - 65535).

      • UDP é um protocolo sem conexão que executa a verificação de erros, mas descarta pacotes errados. Mais rápido que o TCP.
      • TCP é um protocolo orientado a conexão com verificação de erros e recuperação de erros. Mais confiável do que UDP.
    • Modo túnel - Especifique um dos seguintes:

      • Full tunnel - Todos os fluxos de tráfego por meio da interface VPN para o túnel VPN.

      • Split tunnel - O tráfego privado flui por meio da interface VPN para o túnel VPN e o tráfego público flui por meio da interface LAN existente.

        Seção de configuração adicional VPN
        Seção de configuração adicional VPN

Criação de um servidor VPN a partir da CLI

Antes de iniciar, configure o seu ambiente da CLI.

Para criar um servidor VPN na CLI, digite o seguinte 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]

Opções de comando

  • -- subnets: IDs das sub-redes separados por vírgula nas quais provisionar este servidor VPN. Use sub-redes em diferentes zonas para alta disponibilidade; no máximo, duas sub-redes podem ser definidas.
  • --client-ip-pool: o conjunto de endereços IPv4 do cliente VPN, expresso em formato CIDR. A solicitação não deve se sobrepor a nenhum prefixo de endereço existente na VPC e nem a nenhum dos intervalos de endereço reservados a seguir: 127.0.0.0/8 (endereços de loopback IPv4), 161.26.0.0/16 (serviços IBM), 166.8.0.0/14 (terminais de serviço de nuvem), 169.254.0.0/16 (endereços locais de link IPv4), 224.0.0.0/4 (endereços multicast IPv4). O comprimento de prefixo do CIDR do conjunto de endereços IP do cliente deve ficar entre /9 (8.388.608 endereços) e /22 (1.024 endereços). Recomenda-se um bloco de CIDR que contenha o dobro do número necessário de endereços IP para permitir o estabelecimento do número máximo de conexões simultâneas.
  • --cert: o CRN da instância do certificado para este servidor VPN.
  • --client-auth-methods: lista separada por vírgula de métodos de autenticação de cliente. Um de: certificate, username, certificate,username, username,certificate.
  • --client-ca: o CRN da instância de certificado a utilizar para a autoridade de certificação (CA) de cliente VPN.
  • --client-crl: CRL | @CRL-file. O conteúdo da lista de revogação de certificado, codificado em formato PEM.
  • --client-dns: endereços de servidor DNS separados por vírgula que são fornecidos a clientes VPN conectados a este servidor VPN. No máximo, dois servidores DNS podem ser configurados.
  • --client-idle-timeout: os segundos que um cliente VPN pode ficar inativo antes que este servidor VPN desconecte-o. Especifique 0 para evitar que o servidor desconecte clientes inativos (padrão: 600).
  • --enable-split-tunnel: indica se o split tunneling está ativado neste servidor VPN. Um de: false, true (padrão: false).
  • -- port: o número da porta a usar para este servidor VPN (padrão: 443).
  • -- protocol: o protocolo de transporte a usar para este servidor VPN. Um de: udp, tcp (padrão: udp).
  • -- security-group: ID do grupo de segurança.
  • -- name: novo nome para o servidor VPN.
  • --resource-group-id: o ID do grupo de recursos. Essa opção é mutuamente exclusiva com --resource-group-name.
  • --resource-group-name: o nome do grupo de recursos. Essa opção é mutuamente exclusiva com --resource-group-id.
  • --output: especificar o formato de saída; apenas JSON é suportado. Um dos seguintes: JSON.
  • -q, --quiet: suprimir a saída detalhada.

Exemplos de comando

  • 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

Criação de um servidor VPN com a API

Para criar um servidor VPN cliente-para-site com a API, siga estas etapas:

  1. Configure o seu Ambiente de API com as variáveis direitas.

  2. Armazene quaisquer variáveis adicionais a serem usadas nos comandos da API, por exemplo:

    • ResourceGroupId - Localize o ID do grupo de recursos usando o comando get resource groups e, em seguida, preencha a variável:

      export ResourceGroupId=<your_resourcegroup_id>
      
    • SubnetId - Encontre o ID de sub-rede usando o comando get subnet e, em seguida, preencha a variável:

      export SubnetId=<your_subnet_id>
      
  3. Quando todas as variáveis forem iniciadas, crie o 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óximas etapas

  1. Para validar que o servidor VPN foi criado com êxito, aguarde alguns minutos e, em seguida, acesse a tabela Client-to-site servers para garantir que o status do servidor VPN seja Stable e o status de saúde seja Healthy.
  2. Criar rotas VPN.
  3. Configure um ambiente do cliente VPN e conecte-se ao servidor VPN.