Libreswan

Libreswan é uma implementação IPSec de código aberto baseada em FreeS/WAN e Openswan. A maioria das distribuições Linux inclui Libreswan ou facilita a instalação desse software. Você pode instalá-lo em hosts na sua rede local ou em uma rede de provedor de nuvem. Para obter um exemplo de como configurar um host Libreswan em outro provedor de nuvem para estabelecer conexão com a sua VCN do Oracle Cloud Infrastructure, consulte Acesso a Outras Nuvens com o Libreswan.

Este tópico fornece a configuração para o CPE que está executando o Libreswan. O suporte a VTI (virtual tunnel interface) para essa configuração baseada em rota requer no mínimo o Libreswan versão 3.18 e um kernel Linux 3.x ou 4.x recente. Essa configuração foi validada com o Libreswan 3.29.

Importante

A Oracle fornece instruções de configuração para um conjunto testado de fornecedores e dispositivos. Use a configuração correta do seu fornecedor e da versão do software.

Se a versão do dispositivo ou do software que o sistema Oracle usou para verificar a configuração não corresponder exatamente ao seu dispositivo ou software, você ainda poderá criar a configuração necessária no seu dispositivo. Consulte a documentação do fornecedor e faça os ajustes necessários.

Se o seu dispositivo for destinado a um fornecedor que não está na lista de fornecedores e dispositivos verificados ou se você já estiver familiarizado com a configuração do seu dispositivo para IPSec, consulte a lista de parâmetros IPSec suportados e consulte a documentação do fornecedor para obter ajuda.

O Oracle Cloud Infrastructure oferece a VPN Site a Site, uma conexão IPSec segura entre a sua rede on-premises e uma rede virtual na nuvem (VCN).

O diagrama a seguir mostra uma conexão IPSec básica com o Oracle Cloud Infrastructure que tem túneis redundantes. Os endereços IP usados neste diagrama são apenas exemplos.

Esta imagem resume o layout geral da sua rede on-premises, dos túneis IPSec da VPN Site a Site e da VCN.

Melhores Práticas

Esta seção trata das melhores práticas gerais e de considerações para o uso da VPN Site a Site.

Configurar Todos os Túneis para Todas as Conexões IPSec

O sistema Oracle implanta dois headends IPSec para cada uma das suas conexões, a fim de fornecer alta disponibilidade para as suas cargas de trabalho de missão crítica. No lado Oracle, esses dois headends estão em roteadores distintos para fins de redundância. A Oracle recomenda a configuração de todos os túneis disponíveis para redundância máxima. Essa é uma parte essencial da filosofia "Design para Falhas".

Ter CPEs Redundantes nas Suas Redes Locais

Cada um dos seus sites que utilizam IPSec para conexão com o Oracle Cloud Infrastructure deve ter dispositivos de borda redundantes (também conhecidos como CPE (customer-premises equipment)). Você adiciona cada CPE à Console do Oracle e cria uma conexão IPSec separada entre o seu DRG (Dynamic Routing Gateway) e cada CPE. Para cada conexão IPSec, o sistema Oracle provisiona dois túneis em headends IPSec redundantes geograficamente. Para obter mais informações, consulte o Connectivity Redundancy Guide (PDF).

Considerações sobre o Protocolo de Roteamento

Quando você cria uma conexão IPSec da VPN Site a Site, ela tem dois túneis IPSec redundantes. A Oracle incentiva você a configurar o seu CPE para usar ambos os túneis (se o seu CPE suportar essa configuração). Anteriormente, a Oracle criava conexões IPSec com até quatro túneis IPSec.

Os três tipos de roteamento a seguir estão disponíveis e você escolhe o tipo de roteamento separadamente para cada túnel na VPN Site a Site:

  • Roteamento dinâmico BGP: as rotas disponíveis são obtidas dinamicamente por meio de BGP. O DRG obtém dinamicamente as rotas provenientes da sua rede local. No lado Oracle, o DRG propaga as sub-redes da VCN.
  • Roteamento estático: ao configurar a conexão IPSec com o DRG, você determina para a sua rede local as rotas específicas que a VCN deverá reconhecer. Você também deve configurar o seu dispositivo CPE com rotas estáticas para as sub-redes da VCN. Essas rotas não são obtidas dinamicamente.
  • Roteamento baseado em política: Ao configurar a conexão IPSec com o DRG, você especifica determinadas rotas para a sua rede on-premises que a VCN deverá reconhecer. Você também deve configurar o seu dispositivo CPE com rotas estáticas para as sub-redes da VCN. Essas rotas não são obtidas dinamicamente.

Para obter mais informações sobre roteamento com a VPN Site a Site, incluindo recomendações da Oracle sobre como manipular o algoritmo de seleção de melhor caminho do BGP, consulte Roteamento da VPN Site a Site.

Outras Configurações Importantes do CPE

Verifique se as listas de acesso do seu CPE estão configuradas corretamente para não bloquear o tráfego necessário de origem ou destino do Oracle Cloud Infrastructure.

Se houver vários túneis ativos simultaneamente, você poderá experimentar um roteamento assimétrico. Para permitir o roteamento assimétrico, certifique-se de que o seu CPE esteja configurado para tratar o tráfego proveniente da sua VCN em qualquer um dos túneis. Por exemplo, você precisa desativar a inspeção do ICMP e configurar o bypass de estado do TCP. Para obter mais detalhes sobre a configuração apropriada, entre em contato com o suporte do fornecedor do CPE. Para configurar o roteamento para ser simétrico, consulte Roteamento da VPN Site a Site.

Cuidados e Limitações

Esta seção trata de características e limitações gerais importantes da VPN Site a Site que você deve conhecer. Consulte Limites do Serviço para obter uma lista dos limites e instruções aplicáveis para solicitar um aumento de limite.

Roteamento Assimétrico

O sistema Oracle usa o roteamento assimétrico entre os diversos túneis que compõem a conexão IPSec. Configure os seus firewalls de forma adequada. Caso contrário, os testes de ping ou o tráfego de aplicativos na conexão não funcionarão de forma confiável.

Quando você usa vários túneis para o Oracle Cloud Infrastructure, a Oracle recomenda configurar o roteamento para conduzir o tráfego especificamente por meio do túnel preferencial. Se quiser usar um túnel IPSec como principal e outro como backup, configure rotas mais específicas para o túnel principal (BGP) e rotas menos específicas (rota padrão ou resumida) para o túnel de backup (BGP/estático). Caso contrário, se você divulgar a mesma rota (por exemplo, uma rota padrão) por meio de todos os túneis, retorne o tráfego da sua VCN para as suas rotas de rede on-premises para qualquer um dos túneis disponíveis. Isso acontece porque o sistema Oracle usa roteamento assimétrico.

Para obter recomendações específicas de roteamento da Oracle sobre como impor o roteamento simétrico, consulte Roteamento da VPN Site a Site.

VPN Site a Site Baseada em Rota ou em Política

O protocolo IPSec usa SAs (Security Associations) para determinar como criptografar pacotes. Dentro de cada SA, você define domínios de criptografia para mapear o tipo de protocolo e o endereço IP de origem e de destino de um protocolo até uma entrada no banco de dados SA, a fim de definir como criptografar ou decriptografar um pacote.

Observação

A documentação de outros fornecedores ou setores de mercado pode usar os termos ID do proxy, índice de parâmetro de segurança (SPI) ou seletor de tráfego ao fazer referência a SAs ou domínios de criptografia.

Há dois métodos gerais para implementar túneis IPSec:

  • Túneis baseados em rota: também chamados de túneis baseados no próximo salto. Uma pesquisa de tabela de roteamento é executada no endereço IP de destino de um pacote. Se a interface de saída da rota for um túnel IPSec, o pacote será criptografado e enviado para a outra extremidade do túnel.
  • Túneis baseados em política: o protocolo e o endereço IP de origem e de destino do pacote são validados em relação a uma lista de instruções de política. Se não houver uma correspondência, o pacote será criptografado com base nas regras dessa instrução de política.

Os head-ends da VPN Site a Site da Oracle usam túneis baseados em rota, mas podem funcionar com túneis baseados em política, com algumas limitações listadas nas seções a seguir.

Limitações do Libreswan 3.25

Se o seu dispositivo CPE usar o Libreswan 3.25 ou anterior e você tentar configurar uma conexão IKEv1 com seu CPE como respondente, será necessário definir explicitamente o parâmetro da fase 2 na configuração do CPE para que o túnel IPSec seja ativado. Por exemplo, usando o algoritmo de criptografia recomendado atual AES-256-gcm e o PFS group5, configure o parâmetro da fase 2 phase2alg="aes_gcm256;modp1536" no dispositivo CPE.

Esse problema não é visto em versões posteriores do Libreswan.

Domínio de criptografia para túneis baseados em rota

Se o seu CPE suportar túneis baseados em rota, use esse método para configurar o túnel. É a configuração mais simples que tem a maior interoperabilidade com o headend da Oracle VPN.

O IPSec baseado em rota usa um domínio de criptografia com os seguintes valores:

  • Endereço IP de origem: qualquer um (0.0.0.0/0)
  • Endereço IP de destino: qualquer um (0.0.0.0/0)
  • Protocolo: IPv4

Se você precisar ser mais específico, poderá usar uma única rota resumida para os seus valores de domínio de criptografia, em vez de uma rota padrão.

Domínio de criptografia para túneis baseados em política

Quando você usa túneis baseados em política, cada entrada de política (um bloco CIDR em um lado da conexão IPSec) que você define gera uma associação de segurança (SA) IPSec com cada entrada elegível na outra extremidade do túnel. Esse par é chamado de domínio de criptografia.

Neste diagrama, a extremidade do DRG da Oracle do túnel IPSec tem entradas de política para três blocos CIDR IPv4 e um bloco CIDR IPv6. A extremidade do CPE on-premises do túnel tem entradas de política em dois blocos CIDR IPv4 e dois blocos CIDR IPv6. Cada entrada gera um domínio de criptografia com todas as entradas possíveis na outra extremidade do túnel. Os dois lados de um par de SA devem usar a mesma versão de IP. O resultado é um total de oito domínios de criptografia.

Diagrama mostrando vários domínios de criptografia e como determinar o número deles.
Importante

Se o seu CPE suportar apenas túneis baseados em política, conheça as restrições a seguir.

  • A VPN Site a Site suporta vários domínios de criptografia, mas tem um limite máximo de 50 domínios.
  • Se você tivesse uma situação semelhante ao exemplo acima e tivesse configurado apenas três dos seis domínios de criptografia IPv4 possíveis na parte do CPE, o link seria listado em um estado "Parcial UP", uma vez que todos os domínios de criptografia possíveis são sempre criados na parte do DRG.
  • O roteamento baseado em política depende da VPN Site a Site v2. Consulte Serviço de VPN Site a Site Atualizado para obter mais informações sobre a VPN Site a Site v2.
  • Dependendo de quando o seu túnel foi criado, talvez você não consiga editar um túnel existente para usar o roteamento baseado em política e talvez precise substituir o túnel por um novo túnel IPSec.
  • Os blocos CIDR usados na extremidade do DRG da Oracle do túnel não podem sobrepor os blocos CIDR usados na extremidade do CPE on-premises do túnel.
  • Um domínio de criptografia deve sempre estar entre dois blocos CIDR da mesma versão de IP.

Se o Seu CPE Estiver Atrás de um Dispositivo NAT

Em geral, o identificador IKE de CPE configurado na sua extremidade da conexão deve corresponder ao identificador IKE do CPE que o sistema Oracle está usando. Por padrão, o sistema Oracle usa o endereço IP público do CPE, que você fornece ao criar o objeto CPE na Console do sistema Oracle. No entanto, se o seu CPE estiver atrás de um dispositivo NAT, o identificador IKE do CPE configurado na sua extremidade poderá ser o endereço IP privado do CPE, conforme mostrado no diagrama a seguir.

Esta imagem mostra o CPE atrás de um dispositivo NAT, os endereços IP público e privado e o identificador IKE do CPE.
Observação

Algumas plataformas CPE não permitem que você altere o identificador IKE local. Se não puder alterar, altere o ID de IKE remoto na Console do sistema Oracle de modo a corresponder ao seu ID de IKE local do CPE. Você pode fornecer o valor quando configurar a conexão IPSec ou posteriormente, editando a conexão IPSec. O sistema Oracle espera que o valor seja um endereço IP ou um nome de domínio totalmente qualificado (FQDN), como cpe.example.com. Para obter instruções, consulte Alterando o Identificador IKE do CPE Usado pelo Sistema Oracle.

Parâmetros IPSec Suportados

Para obter uma lista não dependente de fornecedor contendo parâmetros IPSec suportados para todas as regiões, consulte Parâmetros IPSec Suportados.

O ASN do BGP da Oracle para o realm do Cloud do setor governamental é 31898. Se você estiver configurando a VPN Site a Site para a Nuvem do Governo dos EUA, consulte Parâmetros Obrigatórios da VPN Site a Site para a Nuvem do Governo e também ASN de BGP da Oracle. Para a Nuvem do Governo do Reino Unido, consulte ASN de BGP da Oracle.

Configuração do CPE

Importante

As instruções de configuração nesta seção são fornecidas pelo Oracle Cloud Infrastructure para o seu CPE. Se precisar de suporte ou assistência adicional, entre em contato com o suporte do fornecedor do CPE diretamente.

A figura a seguir mostra o layout básico da conexão IPSec.

Esta imagem resume o layout geral dos túneis e da conexão IPSec.

Arquivo de Configuração Padrão do Libreswan

A instalação padrão do Libreswan cria os seguintes arquivos:

  • etc/ipsec.conf: a raiz da configuração do Libreswan.
  • /etc/ipsec.secrets: a raiz do local onde o Libreswan procura segredos (as chaves pré-compartilhadas do túnel).
  • /etc/ipsec.d/: um diretório para armazenar os arquivos .conf e .secrets dos seus túneis Oracle Cloud Infrastructure (por exemplo: oci-ipsec.conf e oci-ipsec.secrets). Os desenvolvedores do Libreswan recomendam criar esses arquivos nessa pasta.

O arquivo etc/ipsec.conf padrão inclui esta linha:

include /etc/ipsec.d/*.conf

O arquivo etc/ipsec.secrets padrão inclui esta linha:

include /etc/ipsec.d/*.secrets

As linhas anteriores mesclam automaticamente todos os arquivos .conf e .secrets do diretório /etc/ipsec.d nos arquivos principais de configuração e segredos que o Libreswan utiliza.

Sobre a Utilização do IKEv2

O sistema Oracle suporta o Internet Key Exchange versão 1 (IKEv1) e versão 2 (IKEv2). Se você configurar a conexão IPSec na Console para usar o IKEv2, deverá configurar o seu CPE para usar somente os parâmetros IKEv2 e os parâmetros de criptografia IKEv2 e relacionados suportados pelo seu CPE. Para obter uma lista de parâmetros que o Oracle suporta para IKEv1 ou IKEv2, consulte Parâmetros IPSec Suportados.

Especifique a versão do IKE ao definir o arquivo de configuração IPSec na tarefa 3 da seção a seguir. Neste arquivo de exemplo, há um comentário que mostra como configurar o IKEv1 em comparação com o IKEv2.

Processo de Configuração

O Libreswan suporta túneis baseados em rota e em política. Os tipos de túnel podem coexistir sem interferir uns com os outros. Os headends da Oracle VPN usam túneis baseados em rota. A Oracle recomenda que você configure o Libreswan com a sintaxe de configuração Virtual Tunnel Interface (VTI).

Para obter detalhes sobre os parâmetros específicos usados neste documento, consulte Parâmetros IPSec Suportados.

Tarefa 1: Preparar a instância do Libreswan

Dependendo da distribuição do Linux que você está usando, pode ser necessário ativar o encaminhamento de IP na sua interface para permitir que os clientes enviem e recebam o tráfego por meio do Libreswan. No arquivo /etc/sysctl.conf, defina os valores a seguir e aplique as atualizações com sudo sysctl -p.

Se estiver usando uma interface diferente de eth0, altere eth0 no exemplo a seguir para a sua interface (linhas 5 e 7).

net.ipv4.ip_forward=1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
Tarefa 2: Determinar os valores de configuração necessários

A configuração do Libreswan usa as variáveis a seguir. Determine os valores antes de continuar a configuração.

  • ${cpeLocalIP}: o endereço IP do seu dispositivo Libreswan.
  • ${cpePublicIpAddress}: o endereço IP público do Libreswan. Este é o endereço IP da sua interface externa. Dependendo da sua topologia de rede, o valor poderá ser diferente de ${cpeLocalIP}.
  • ${oracleHeadend1}: Para o primeiro túnel, o ponto final IP público Oracle obtido da Console do sistema Oracle.
  • ${oracleHeadend2}: Para o segundo túnel, o ponto final IP público Oracle obtido da Console do sistema Oracle.
  • ${vti1}: o nome da primeira VTI usada. Por exemplo, vti1.
  • ${vti2}: O nome da segunda VTI usada. Por exemplo, vti2.
  • ${sharedSecret1}: a chave pré-compartilhada para o primeiro túnel. Você pode usar a chave pré-compartilhada fornecida pela Oracle ou pode fornecer a sua própria chave ao configurar a conexão IPSec na Console do sistema Oracle.
  • ${sharedSecret2}: a chave pré-compartilhada para o segundo túnel. Você pode usar a chave pré-compartilhada fornecida pela Oracle ou pode fornecer a sua própria chave ao configurar a conexão IPSec na Console do sistema Oracle.
  • ${vcnCidrNetwork}: o intervalo de IP da VCN.
Tarefa 3: Configurar o arquivo de configuração: /etc/ipsec.d/oci-ipsec.conf

A configuração do Libreswan usa o conceito à esquerda e à direita para definir os parâmetros de configuração para o seu dispositivo CPE local e o gateway remoto. Ambos os lados da conexão (conn na configuração do Libreswan) poderão estar à esquerda ou à direita, mas a configuração dessa conexão deve ser consistente. Nesse exemplo:

  • esquerda: o CPE do seu Libreswan local
  • direita: o headend da Oracle VPN

Use o modelo a seguir para o seu arquivo /etc/ipsec.d/oci-ipsec.conf. O arquivo define os dois túneis que o sistema Oracle cria quando você configura a conexão IPSec.

Importante

Se o seu CPE estiver atrás de um dispositivo NAT 1-1, remova o comentário do parâmetro leftid e defina-o como igual a ${cpePublicIpAddress}.

conn oracle-tunnel-1
     left=${cpeLocalIP}
     # leftid=${cpePublicIpAddress} # See preceding note about 1-1 NAT device
     right=${oracleHeadend1}
     authby=secret
     leftsubnet=0.0.0.0/0 
     rightsubnet=0.0.0.0/0
     auto=start
     mark=5/0xffffffff # Needs to be unique across all tunnels
     vti-interface=${vti1}
     vti-routing=no
     ikev2=no # To use IKEv2, change to ikev2=insist 
     ike=aes_cbc256-sha2_384;modp1536
     phase2alg=aes_gcm256;modp1536
     encapsulation=yes
     ikelifetime=28800s
     salifetime=3600s
conn oracle-tunnel-2
     left=${cpeLocalIP}
     # leftid=${cpePublicIpAddress} # See preceding note about 1-1 NAT device
     right=${oracleHeadend2}
     authby=secret
     leftsubnet=0.0.0.0/0
     rightsubnet=0.0.0.0/0
     auto=start
     mark=6/0xffffffff # Needs to be unique across all tunnels
     vti-interface=${vti2}
     vti-routing=no
     ikev2=no # To use IKEv2, change to ikev2=insist 
     ike=aes_cbc256-sha2_384;modp1536
     phase2alg=aes_gcm256;modp1536 
     encapsulation=yes
     ikelifetime=28800s
     salifetime=3600s
Tarefa 4: Configurar o arquivo de segredos: /etc/ipsec.d/oci-ipsec.secrets

Use o modelo a seguir para o seu arquivo /etc/ipsec.d/oci-ipsec.secrets. Ele contém duas linhas por conexão IPSec (uma linha por túnel).

${cpePublicIpAddress} ${oracleHeadend1}: PSK "${sharedSecret1}"
${cpePublicIpAddress} ${oracleHeadend2}: PSK "${sharedSecret2}"
Tarefa 5: Reiniciar o serviço Libreswan

Após definir a sua configuração e os arquivos de segredos, você deverá reiniciar o serviço Libreswan.

Importante

A Reinicialização do serviço Libreswan pode afetar os túneis existentes.

O comando a seguir lê novamente o arquivo de configuração e reinicia o serviço Libreswan.

service ipsec restart
Tarefa 6: Configurar roteamento de IP

Use o comando ip a seguir para criar rotas estáticas que enviam tráfego para a sua VCN por meio de túneis IPSec. Se você estiver conectado com uma conta de usuário sem privilégios, talvez seja necessário usar sudo antes do comando.

Importante

As rotas criadas com o comando ip route não persistem após uma reinicialização. Para determinar como tornar as suas rotas persistentes, consulte a documentação da distribuição do Linux desejada.
ip route add ${VcnCidrBlock} nexthop dev ${vti1} nexthop dev ${vti2}
ip route show

Verificação

O serviço Monitoring também está disponível no Oracle Cloud Infrastructure para monitorar de forma ativa e passiva os seus recursos de nuvem. Para obter informações sobre o monitoramento da sua VPN Site a Site, consulte Métricas da VPN Site a Site.

Se você tiver problemas, consulte Diagnóstico e Solução de Problemas da VPN Site a Site.

Verificação do Status do Libreswan

Verifique o estado atual dos seus túnel Libreswan usando o comando a seguir.

ipsec status

O túnel terá sido estabelecido se você vir uma linha contendo o seguinte:

STATE_MAIN_I4: ISAKMP SA established

Se você estiver usando o IKEv2, verá o seguinte:

STATE_V2_IPSEC_I (IPsec SA established)

No futuro, se você precisar abrir um ticket de suporte na Oracle sobre o seu túnel Libreswan, inclua a saída do comando ipsec status anterior.

Verificando o Status da Interface do Túnel

Verifique se as interfaces do túnel virtual estão ativas ou inativas usando o comando ifconfig ou o comando ip link show. Também é possível usar aplicativos, como o tcpdump, com as interfaces.

Este é um exemplo da saída ifconfig com uma implementação do Libreswan em funcionamento que mostra as VTIs disponíveis.

ifconfig
<output trimmed>
				
vti01: flags=209<UP,POINTOPOINT,RUNNING,NOARP> mtu 8980
     inet6 fe80::5efe:a00:2 prefixlen 64 scopeid 0x20<link>
     tunnel txqueuelen 1000 (IPIP Tunnel)
     RX packets 0 bytes 0 (0.0 B)
     RX errors 0 dropped 0 overruns 0 frame 0
     TX packets 0 bytes 0 (0.0 B)
     TX errors 10 dropped 0 overruns 0 carrier 10 collisions 0

vti02: flags=209<UP,POINTOPOINT,RUNNING,NOARP> mtu 8980
     inet6 fe80::5efe:a00:2 prefixlen 64 scopeid 0x20<link>
     tunnel txqueuelen 1000 (IPIP Tunnel)
     RX packets 0 bytes 0 (0.0 B)
     RX errors 0 dropped 0 overruns 0 frame 0
     TX packets 0 bytes 0 (0.0 B)
     TX errors 40 dropped 0 overruns 0 carrier 40 collisions 0

Este é um exemplo da saída do comando ip link show:

ip link show
<output trimmed>

9: vti01@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 8980 qdisc noqueue
state UNKNOWN mode DEFAULT group default qlen 1000
   link/ipip 10.0.0.2 peer 129.213.240.52

10: vti02@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 8980 qdisc noqueue
state UNKNOWN mode DEFAULT group default qlen 1000
   link/ipip 10.0.0.2 peer 129.213.240.51

Além disso, na Console do sistema Oracle, cada túnel IPSec deve agora estar no estado UP.