

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Como usar o proxy local
<a name="how-use-local-proxy"></a>

Você pode executar o proxy local nos dispositivos de origem e destino para transmitir dados para os endpoints de encapsulamento seguro. Se seus dispositivos estiverem em uma rede que usa um proxy da Web, o proxy da Web poderá interceptar as conexões antes de encaminhá-las para a Internet. Nesse caso, você precisará configurar seu proxy local para usar o proxy da web. Para obter mais informações, consulte [Configurar o proxy local para dispositivos que usam proxy da web](configure-local-proxy-web-proxy.md). 

## Fluxo de trabalho do proxy local
<a name="local-proxy-workflow"></a>

As etapas a seguir mostram como o proxy local é executado nos dispositivos de origem e destino.

1. 

**Conecte o proxy local para proteger o encapsulamento**  
O proxy local primeiro estabelece uma conexão com o serviço de encapsulamento seguro. Ao iniciar o proxy local, use os seguintes argumentos:
   + O `-r` argumento para especificar o local Região da AWS em que o túnel é aberto.
   + O argumento `-t` para transmitir o token de acesso do cliente de origem ou de destino retornado do `OpenTunnel`.
**nota**  
Dois proxies locais que usam o mesmo valor de token de acesso do cliente não podem ser conectados ao mesmo tempo.

1. 

**Executar ações de origem ou de destino**  
Depois que a WebSocket conexão é estabelecida, o proxy local executa ações no modo de origem ou no modo de destino, dependendo de sua configuração.

   Por padrão, o proxy local tenta se reconectar ao tunelamento seguro se ocorrer algum erro input/output (E/S) ou se a WebSocket conexão for fechada inesperadamente. Isso faz com que a conexão TCP seja fechada. Se ocorrerem erros de soquete TCP, o proxy local enviará uma mensagem pelo túnel a fim de notificar o outro lado para fechar sua conexão TCP. Por padrão, o proxy local sempre usa comunicação SSL.

1. 

**Iniciar o proxy local**  
Depois de usar o túnel, é seguro encerrar o processo de proxy local. Recomendamos que você feche explicitamente o túnel chamando `CloseTunnel`. Os clientes de túnel ativos podem não ser fechados logo após a chamada `CloseTunnel`.

Para obter mais informações sobre como usar o Console de gerenciamento da AWS para abrir um túnel e iniciar uma sessão SSH, consulte[Abra um túnel e inicie a sessão SSH no dispositivo remoto](secure-tunneling-tutorial-open-tunnel.md).

## Melhores práticas de proxy local
<a name="local-proxy-security"></a>

Ao executar o proxy local, siga estas melhores práticas:
+ Evite o uso do `-t` argumento de proxy local para transmitir em um token de acesso. Recomendamos que você use a `AWSIOT_TUNNEL_ACCESS_TOKEN` variável de ambiente para definir o token de acesso para o proxy local.
+ Execute o executável do proxy local com menos privilégios no sistema operacional ou ambiente.
  + Evite executar o proxy local como administrador no Windows.
  + Evite executar o proxy local como raiz no Linux e no macOS.
+ Considere executar o proxy local em hosts, contêineres, sandboxes, prisão chroot separados ou em um ambiente virtualizado.
+ Crie o proxy local com sinalizadores de segurança relevantes, dependendo da cadeia de ferramentas.
+ Em dispositivos com várias interfaces de rede, use o argumento `-b` para vincular o soquete TCP à interface de rede usada para se comunicar com o aplicativo de destino. 

## Exemplo de comando e saída
<a name="example-cmd-output-localproxy"></a>

Veja a seguir um exemplo de comando executado e a saída correspondente. O exemplo mostra como o proxy local pode ser configurado nos modos `source` e `destination`. O proxy local atualiza o protocolo HTTPS WebSockets para estabelecer uma conexão de longa duração e, em seguida, começa a transmitir dados por meio da conexão aos terminais do dispositivo de tunelamento seguro.

**Antes de executar esses comandos:**  
Você deve ter aberto um túnel e obtido os tokens de acesso do cliente para a origem e o destino. Você também deve ter criado o proxy local conforme descrito anteriormente. Para criar o proxy local, abra o [código-fonte do proxy local](https://github.com/aws-samples/aws-iot-securetunneling-localproxy) no GitHub repositório e siga as instruções para criar e instalar o proxy local.

**nota**  
Os comandos a seguir usados nos exemplos usam o sinalizador `verbosity` para ilustrar uma visão geral das diferentes etapas descritas anteriormente após a execução do proxy local. Recomendamos que você use esse sinalizador apenas para fins de teste.

**Rodar o proxy local no modo de origem**  
Os comandos a seguir exibem como executar o proxy local no modo de origem.

------
#### [ Linux/macOS ]

No Linux ou no macOS, execute os seguintes comandos no terminal para configurar e iniciar o proxy local na sua fonte.

```
export AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
./localproxy -s 5555 -v 5 -r us-west-2
```

Onde:
+ `-s` é a porta de escuta de origem, que inicia o proxy local no modo de origem.
+ `-v` é a verbosidade da saída, que pode ser um valor entre zero e seis.
+ `-r` é a região do endpoint em que o túnel é aberto.

Para obter mais informações sobre os parâmetros, consulte [Opções definidas usando argumentos de linha de comando](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via-command-line-arguments).

------
#### [ Windows ]

No Windows, você configura o proxy local da mesma forma que você faz para Linux ou macOS, mas a forma como você define as variáveis de ambiente é diferente das outras plataformas. Execute os comandos a seguir na janela `cmd` para configurar e iniciar o proxy local em sua origem.

```
set AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
.\localproxy -s 5555 -v 5 -r us-west-2
```

Onde:
+ `-s` é a porta de escuta de origem, que inicia o proxy local no modo de origem.
+ `-v` é a verbosidade da saída, que pode ser um valor entre zero e seis.
+ `-r` é a região do endpoint em que o túnel é aberto.

Para obter mais informações sobre os parâmetros, consulte [Opções definidas usando argumentos de linha de comando](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via-command-line-arguments).

------

**nota**  
Ao usar a versão mais recente do proxy local no modo de origem, você deve incluir o AWS CLI parâmetro `--destination-client-type V1` no dispositivo de origem para compatibilidade com versões anteriores. Isso se aplica ao se conectar a qualquer um desses modos de destino:  
AWS IoT Cliente do dispositivo
AWS IoT Componente de tunelamento seguro ou componente de tunelamento AWS IoT Greengrass Version 2 seguro
Qualquer código de demonstração do AWS IoT Secure Tunneling escrito antes de 2022
Versões 1.X do proxy local
Esse parâmetro garante a comunicação adequada entre o proxy de origem atualizado e os clientes de destino mais antigos. Para obter mais informações sobre as versões de proxy local, consulte [AWS IoT Secure Tunneling on](https://github.com/aws-samples/aws-iot-securetunneling-localproxy/blob/main/README.md#as-of-312-may-2024-update---destination-client-type-v1-will-be-a-required-parameter-when-connecting-with-the-following). *GitHub*

Veja a seguir um exemplo de saída da execução do proxy local no modo `source`.

```
...
...

Starting proxy in source mode
Attempting to establish web socket connection with endpoint wss://data.tunneling.iot.us-west-2.amazonaws.com:443
Resolved proxy  server IP: 10.10.0.11
Connected successfully with proxy server
Performing SSL handshake with proxy server	
Successfully completed SSL handshake with proxy server
HTTP/1.1 101 Switching Protocols

...

Connection: upgrade
channel-id: 01234567890abc23-00001234-0005678a-b1234c5de677a001-2bc3d456
upgrade: websocket

...

Web socket session ID: 01234567890abc23-00001234-0005678a-b1234c5de677a001-2bc3d456
Web socket subprotocol selected: aws.iot.securetunneling-2.0
Successfully established websocket connection with proxy server: wss://data.tunneling.iot.us-west-2.amazonaws.com:443
Setting up web socket pings for every 5000 milliseconds
Scheduled next read:

...

Starting web socket read loop continue reading...
Resolved bind IP: 127.0.0.1
Listening for new connection on port 5555
```

**Como executar o proxy local no modo de destino**  
Os comandos a seguir exibem como executar o proxy local no modo de destino.

------
#### [ Linux/macOS ]

No Linux ou no macOS, execute os seguintes comandos no terminal para configurar e iniciar o proxy local no seu destino.

```
export AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
./localproxy -d 22 -v 5 -r us-west-2
```

Em que:
+ `-d` é o aplicativo de destino que inicia o proxy local no modo de destino.
+ `-v` é a verbosidade da saída, que pode ser um valor entre zero e seis.
+ `-r` é a região do endpoint em que o túnel é aberto.

Para obter mais informações sobre os parâmetros, consulte [Opções definidas usando argumentos de linha de comando](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via-command-line-arguments).

------
#### [ Windows ]

No Windows, você configura o proxy local da mesma forma que você faz para Linux ou macOS, mas a forma como você define as variáveis de ambiente é diferente das outras plataformas. Execute os comandos a seguir na janela `cmd` para configurar e iniciar o proxy local em sua origem.

```
set AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
.\localproxy -d 22 -v 5 -r us-west-2
```

Em que:
+ `-d` é o aplicativo de destino que inicia o proxy local no modo de destino.
+ `-v` é a verbosidade da saída, que pode ser um valor entre zero e seis.
+ `-r` é a região do endpoint em que o túnel é aberto.

Para obter mais informações sobre os parâmetros, consulte [Opções definidas usando argumentos de linha de comando](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via-command-line-arguments).

------

**nota**  
Ao usar a versão mais recente do proxy local no modo de destino, você deve incluir o AWS CLI parâmetro `--destination-client-type V1` no dispositivo de destino para compatibilidade com versões anteriores. Isso se aplica ao se conectar a um destes modos de origem:  
Tunelamento seguro baseado em navegador a partir do console. AWS 
Versões 1.X do proxy local
Esse parâmetro garante a comunicação adequada entre o proxy de destino atualizado e os clientes de destino mais antigos. Para obter mais informações sobre as versões de proxy local, consulte [AWS IoT Secure Tunneling on](https://github.com/aws-samples/aws-iot-securetunneling-localproxy/blob/main/README.md#as-of-312-may-2024-update---destination-client-type-v1-will-be-a-required-parameter-when-connecting-with-the-following). *GitHub*

Veja a seguir um exemplo de saída da execução do proxy local no modo `destination`.

```
...
...

Starting proxy in destination mode
Attempting to establish web socket connection with endpoint wss://data.tunneling.iot.us-west-2.amazonaws.com:443
Resolved proxy  server IP: 10.10.0.11
Connected successfully with proxy server
Performing SSL handshake with proxy server	
Successfully completed SSL handshake with proxy server
HTTP/1.1 101 Switching Protocols

...

Connection: upgrade
channel-id: 01234567890abc23-00001234-0005678a-b1234c5de677a001-2bc3d456
upgrade: websocket

...

Web socket session ID: 01234567890abc23-00001234-0005678a-b1234c5de677a001-2bc3d456
Web socket subprotocol selected: aws.iot.securetunneling-2.0
Successfully established websocket connection with proxy server: wss://data.tunneling.iot.us-west-2.amazonaws.com:443
Setting up web socket pings for every 5000 milliseconds
Scheduled next read:

...

Starting web socket read loop continue reading...
```