SSH: Túneis
Os túneis SSH são uma ferramenta poderosa para comunicação segura, para contornar restrições de rede e para dar acesso remoto a recursos locais.
Redirecionamento de porta local
Seção intitulada “Redirecionamento de porta local”O redirecionamento de porta local permite redirecionar uma porta da sua máquina local para um endereço e uma porta remotos. Imagine que você tem uma aplicação web rodando em um servidor remoto no endereço 127.0.0.1:8000. Para acessar essa aplicação web da sua máquina local, você pode usar o redirecionamento de portas do SSH:
ssh -L 8080:127.0.0.1:8000 example.comAgora, no navegador da máquina local, acesse http://localhost:8080 e você deve receber os dados (ou ver a página web) do seu servidor remoto.
8080- o número da porta no computador local com o cliente ssh127.0.0.1:8000- o endereço IP e o número da porta no computador remoto-fNT- opções adicionais para executar o cliente SSH em segundo plano
Redirecionamento reverso de porta
Seção intitulada “Redirecionamento reverso de porta”O redirecionamento reverso de porta permite redirecionar uma porta do servidor remoto para um serviço local. Por exemplo, para redirecionar a porta remota 9090 para a porta 3000 da sua máquina local:
ssh -R 9090:localhost:3000 example.comAgora todas as requisições feitas no servidor remoto à porta 9090 serão redirecionadas para a porta 3000 na sua máquina local.
SSH Proxy Jump
Seção intitulada “SSH Proxy Jump”O ProxyJump é outro mecanismo útil. Ele permite conectar a um servidor remoto através de um servidor SSH intermediário, também conhecido como “jump host”.
Para conectar ao server2 através do server1:
ssh -J user@server1 server2Como alternativa, você pode ativá-lo de forma permanente para um host específico no arquivo de configuração do SSH ~/.ssh/config:
Host server2 ProxyJump user@server1Agora basta usar:
ssh server2Exemplos
Seção intitulada “Exemplos”Acesso seguro a um banco de dados remoto
Seção intitulada “Acesso seguro a um banco de dados remoto”Cenário: você tem um banco de dados MySQL rodando em um servidor remoto e quer acessá-lo da sua máquina local. Crie um túnel SSH para redirecionar a porta remota do MySQL para a sua máquina local:
ssh -L 3306:localhost:3306 example.comDepois de executar esse comando, você pode conectar ao banco de dados MySQL remoto usando um cliente MySQL local, assim:
mysql -h 127.0.0.1 -P 3306 -u db_user -pTúnel para várias portas
Seção intitulada “Túnel para várias portas”Cenário: você precisa acessar um banco de dados remoto na porta 5432 e uma aplicação web na porta 8080 do servidor remoto.
ssh -L 8080:localhost:8080 -L 5432:localhost:5432 example.comDepois de executar esse comando, você pode acessar a aplicação web remota em http://localhost:8080 e o banco de dados remoto em localhost:5432.
Túnel com um arquivo de configuração SSH
Seção intitulada “Túnel com um arquivo de configuração SSH”Se você monta túneis SSH com frequência, pode configurar o cliente SSH para simplificar o processo usando o arquivo de configuração ~/.ssh/config.
Host example.com LocalForward 5432 localhost:5432 LocalForward 8080 localhost:8080Essa configuração permite criar túneis SSH rapidamente com opções predefinidas, usando apenas os apelidos.
Acesso a uma câmera IP em uma rede privada
Seção intitulada “Acesso a uma câmera IP em uma rede privada”Cenário: você tem uma câmera IP em uma rede privada que transmite vídeo por RTSP em rtsp://192.168.1.10:554/stream1. Você precisa acessar esse stream RTSP da sua máquina local.
ssh -L 8554:192.168.1.10:554 example.comDepois de executar esse comando, você pode acessar o stream RTSP da sua máquina local usando um cliente RTSP (por exemplo, o VLC media player), conectando-se a rtsp://localhost:8554/stream1.
- Abra o VLC Media Player
- Vá em “Media” e clique em “Open Network Stream”.
- Digite a URL
rtsp://localhost:8554/stream1. - Clique em “Play”.
O VLC vai conectar ao stream RTSP através do túnel SSH, permitindo que você veja a imagem da câmera como se estivesse na mesma rede privada dela.