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:
-
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.
-
Crie uma instância de serviço do Secrets Manager e gerencie certificados
É recomendado criar um certificado privado com essas considerações em mente.
-
Crie uma autorização IAM de serviço para serviço para seu servidor VPN e IBM Cloud Secrets Manager.
-
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:
-
Preencha todos os pré-requisitos na seção "Antes de começar".
-
No seu navegador, abra o console IBM Cloud e faça login na sua conta.
-
Selecione o
Menu de navegação Menu e clique em Infraestrutura > Rede > VPNs.
-
Clique em Criar na parte superior direita da página.
-
Na seção Tipo de VPN, clique em Servidores cliente-para-site.
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.
-
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 de detalhes VPN
-
-
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
-
-
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 -
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 -
-
-
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 É 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).
-
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
a28800
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
-
-
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:
-
Configure o seu Ambiente de API com as variáveis direitas.
-
Armazene quaisquer variáveis adicionais a serem usadas nos comandos da API, por exemplo:
-
ResourceGroupId
- Localize o ID do grupo de recursos usando o comandoget resource groups
e, em seguida, preencha a variável:export ResourceGroupId=<your_resourcegroup_id>
-
SubnetId
- Encontre o ID de sub-rede usando o comandoget subnet
e, em seguida, preencha a variável:export SubnetId=<your_subnet_id>
-
-
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
- 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 sejaHealthy
. - Criar rotas VPN.
- Configure um ambiente do cliente VPN e conecte-se ao servidor VPN.