Solução de problemas Linux - VPN do cliente da AWS

Solução de problemas Linux

As seções a seguir contêm informações sobre registro em log e sobre problemas que você pode ter ao usar clientes baseados em Linux. Certifique-se de que esteja executando a versão mais recente desses clientes.

AWScliente fornecido pela

O cliente fornecido pela AWS armazena arquivos de log e arquivos de configuração no seguinte local em seu sistema:

/home/username/.config/AWSVPNClient/

O processo do daemon do cliente fornecido pela AWS armazena arquivos de log no seguinte local em seu sistema:

/var/log/aws-vpn-client/username/

Problema

Em algumas circunstâncias, depois que uma conexão VPN é estabelecida, as consultas DNS ainda irão para o servidor de nomes do sistema padrão, em vez dos servidores de nomes que estão configurados para o endpoint da cliente VPN.

Causa

A VPN do cliente da AWS interage com o systemd-resolve, um serviço disponível em sistemas Linux, que serve como uma peça central do gerenciamento DNS. Ele é usado para configurar servidores DNS que são enviados do endpoint da cliente VPN. O problema ocorre porque systemd-resolve não define a prioridade mais alta para servidores DNS que são fornecidos pelo endpoint da cliente VPN. Em vez disso, anexa os servidores à lista existente de servidores DNS configurados no sistema local. Como resultado, os servidores DNS originais ainda podem ter a prioridade mais alta e, portanto, podem ser usados para resolver consultas de DNS.

Solução

  1. Adicione a seguinte diretiva na configuração do OpenVPN para garantir que todas as consultas de DNS sejam enviadas para o túnel da VPN.

    dhcp-option DOMAIN-ROUTE .
  2. Use o resolvedor de stub fornecido por systemd-resolve. Para fazer isso, symlink /etc/resolv.conf para /run/systemd/resolve/stub-resolv.conf executando o seguinte comando no sistema.

    sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
  3. (Opcional) Se não quiser systemd-resolve para consultas de DNS de proxy e, em vez disso, gostaria que as consultas fossem enviadas para os servidores de nomes DNS reais diretamente, crie um symlink /etc/resolv.conf para /run/systemd/resolve/resolv.conf.

    sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

    Você pode querer fazer esse procedimento para ignorar o rsystemd-resolved, por exemplo, para cache de resposta DNS, configuração de DNS por interface, imposição de DNSsec e assim por diante. Esta opção é especialmente útil quando você precisa substituir um registro DNS público por um registro privado quando conectado à VPN. Por exemplo, você pode ter um resolvedor DNS privado em sua VPC privada com um registro para www.example.com, que é resolvido para um IP privado. Esta opção pode ser usada para substituir o registro público de www.example.com, que resolve para um IP público.

OpenVPN (linha de comando)

Problema

A conexão não funciona corretamente porque a resolução DNS não está funcionando.

Causa

O servidor DNS não está configurado no endpoint da VPN do Cliente ou não está sendo honrado pelo software cliente.

Solução

Use as etapas a seguir para verificar se o servidor DNS está configurado e funcionando corretamente.

  1. Certifique-se de que uma entrada de servidor DNS esteja presente nos logs. No exemplo a seguir, o servidor DNS 192.168.0.2 (configurado no endpoint da VPN do Cliente) é retornado na última linha.

    Mon Apr 15 21:26:55 2019 us=274574 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1) WRRMon Apr 15 21:26:55 2019 us=276082 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 192.168.0.2,route-gateway 10.0.0.97,topology subnet,ping 1,ping-restart 20,auth-token,ifconfig 10.0.0.98 255.255.255.224,peer-id 0

    Se não houver nenhum servidor DNS especificado, peça ao administrador de VPN do Cliente para modificar o endpoint da VPN do Cliente e verifique se um servidor DNS (por exemplo, o servidor DNS da VPC) foi especificado para o endpoint da VPN do Cliente. Para obter mais informações, consulte Endpoints da cliente VPN no Guia do administrador da AWS Client VPN.

  2. Certifique-se de que o pacote resolvconf esteja instalado executando o comando a seguir.

    sudo apt list resolvconf

    A saída deve retornar o seguinte:

    Listing... Done resolvconf/bionic-updates,now 1.79ubuntu10.18.04.3 all [installed]

    Se não estiver instalado, instale-o usando o comando a seguir.

    sudo apt install resolvconf
  3. Abra o arquivo de configuração de VPN do Cliente (o arquivo .ovpn) em um editor de texto e adicione as linhas a seguir.

    script-security 2 up /etc/openvpn/update-resolv-conf down /etc/openvpn/update-resolv-conf

    Confira os logs para verificar se o script resolvconf foi chamado. Os logs devem conter uma linha semelhante à seguinte:

    Mon Apr 15 21:33:52 2019 us=795388 /etc/openvpn/update-resolv-conf tun0 1500 1552 10.0.0.98 255.255.255.224 init dhcp-option DNS 192.168.0.2

OpenVPN pelo gerenciador de rede (GUI)

Problema

Ao usar o cliente OpenVPN do Gerenciador de rede, há falha na conexão com o erro a seguir.

Apr 15 17:11:07 OpenVPN 2.4.4 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Sep 5 2018 Apr 15 17:11:07 library versions: OpenSSL 1.1.0g 2 Nov 2017, LZO 2.08 Apr 15 17:11:07 RESOLVE: Cannot resolve host address: cvpn-endpoint-1234.prod.clientvpn.us-east-1.amazonaws.com:443 (Name or service not known) Apr 15 17:11:07 RESOLVE: Cannot resolve host Apr 15 17:11:07 Could not determine IPv4/IPv6 protocol

Causa

O sinalizador remote-random-hostname não é honrado e o cliente não consegue se conectar usando o pacote network-manager-gnome.

Solução

Consulte a solução para Não é possível resolver o nome DNS do endpoint da cliente VPN no Guia do administrador da AWS Client VPN.