

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Risoluzione dei problemi delle connessioni AWS Client VPN con client basati su Linux
<a name="linux-troubleshooting"></a>

Le sezioni seguenti contengono informazioni sulla registrazione e sui problemi che potrebbero verificarsi durante l'utilizzo di client basati su Linux. Verifica di eseguire la versione più recente di questi client. 

**Topics**
+ [AWS ha fornito i registri degli eventi del client](#aws-provided-client)
+ [Le query DNS vanno a un nameserver predefinito](#aws-client-dns-nameserver)
+ [OpenVPN (riga di comando)](#open-vpn-command-line)
+ [OpenVPN tramite Network Manager (GUI)](#open-vpn-network-manager-gui)

## AWS ha fornito i registri degli eventi del client
<a name="aws-provided-client"></a>

Il client AWS fornito archivia i file di registro e i file di configurazione nella seguente posizione sul sistema:

```
/home/username/.config/AWSVPNClient/
```

Il processo daemon client AWS fornito archivia i file di registro nella seguente posizione sul sistema:

```
/var/log/aws-vpn-client/
```

Ad esempio, è possibile controllare i seguenti file di registro per trovare errori negli up/down script DNS che causano l'interruzione della connessione:
+ `/var/log/aws-vpn-client/configure-dns-up.log`
+ `/var/log/aws-vpn-client/configure-dns-down.log`

## Le query DNS vanno a un nameserver predefinito
<a name="aws-client-dns-nameserver"></a>

**Problema**  
In alcuni casi, dopo aver stabilito una connessione VPN, le query DNS continueranno a passare al server dei nomi di sistema predefinito anziché ai server dei nomi configurati per l'endpoint Client VPN.

**Causa**  
Il Client interagisce con **systemd-resolved**, un servizio disponibile sui sistemi Linux, che funge da elemento centrale della gestione DNS. Viene utilizzato per configurare i server DNS che vengono spinti dall'endpoint Client VPN. Il problema si verifica perché **systemd-resolved** non imposta la priorità più alta per i server DNS forniti dall'endpoint Client VPN. Al contrario, i server vengono aggiunti all'elenco esistente dei server DNS configurati nel sistema locale. Di conseguenza, i server DNS originali potrebbero ancora avere la priorità più alta e quindi essere utilizzati per risolvere le query DNS. 

**Soluzione**

1. Aggiungi la seguente direttiva nel file di configurazione di OpenVPN per essere certo che tutte le query DNS vengano inviate nel tunnel VPN.

   ```
   dhcp-option DOMAIN-ROUTE .
   ```

1. Utilizza il resolver stub fornito da **systemd-resolved**. Per far ciò, collegare simbolicamente `/etc/resolv.conf` a `/run/systemd/resolve/stub-resolv.conf` emettendo il seguente comando sul sistema.

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

1. (Facoltativo) Se non vuoi che **systemd-resolved** utilizzi un proxy per le query DNS ma desideri che le query vengano inviate direttamente ai server dei nomi DNS reali, stabilisci un collegamento simbolico da `/etc/resolv.conf` a `/run/systemd/resolve/resolv.conf`.

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

   Potresti voler eseguire questa procedura per aggirare la configurazione **risolta dal sistema**, ad esempio per la memorizzazione nella cache delle risposte DNS, la configurazione DNS per interfaccia, l'applicazione e così via. DNSSec Questa opzione è particolarmente utile quando è necessario sovrascrivere un record DNS pubblico con un record privato quando si è connessi a VPN. Ad esempio, è possibile che nel VPC privato sia presente un resolver DNS privato con un record per www.example.com, che viene risolto in un IP privato. Questa opzione può essere utilizzata per sovrascrivere il record pubblico di www.example.com, che si risolve in un IP pubblico.

## OpenVPN (riga di comando)
<a name="open-vpn-command-line"></a>

**Problema**  
La connessione non funziona correttamente perché la risoluzione DNS non funziona.

**Causa**  
Il server DNS non è configurato nell'endpoint Client VPN o non viene accettato dal software client.

**Soluzione**  
Utilizzare le fasi seguenti per verificare che il server DNS sia configurato e funzioni correttamente.

1. Accertarsi che una voce del server DNS sia presente nei log. Nell'esempio seguente, il server DNS `192.168.0.2` (configurato nell'endpoint Client VPN) viene restituito nell'ultima riga.

   ```
   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 non è specificato alcun server DNS, chiedi all'amministratore Client VPN di modificare l'endpoint Client VPN assicurandosi che per l'endpoint Client VPN sia specificato un server DNS (ad esempio il server DNS VPC). Per ulteriori informazioni, consulta [Endpoint Client VPN](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-working-endpoints.html) nella *Guida per l'amministratore di AWS Client VPN * .

1. Per accertarsi che il pacchetto `resolvconf` sia installato, eseguire il comando seguente.

   ```
   sudo apt list resolvconf
   ```

   Viene restituito l'output seguente.

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

   Se non è installato, installarlo utilizzando il seguente comando.

   ```
   sudo apt install resolvconf
   ```

1. Apri il file di configurazione Client VPN (il file.ovpn) in un editor di testo e aggiungi le seguenti righe.

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

   Controllare i log per verificare che lo script `resolvconf` sia stato richiamato. I log devono contenere una riga simile alla seguente.

   ```
   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 tramite Network Manager (GUI)
<a name="open-vpn-network-manager-gui"></a>

**Problema**  
Quando si utilizza il client Network Manager OpenVPN, la connessione non riesce con il seguente errore.

```
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**  
Il flag `remote-random-hostname` non è rispettato e il client non può connettersi utilizzando il pacchetto `network-manager-gnome`.

**Soluzione**  
Consulta la soluzione [Impossibile risolvere il nome DNS dell'endpoint Client VPN](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/troubleshooting.html#resolve-host-name) nella *Guida per l'amministratore di AWS Client VPN *.