Resumo do Processo para Criar Acesso Remoto via Túnel SSH Reverso (autossh) em Link 4G

1. Problema original

  • A conexão 4G da Vivo bloqueia todas as portas de entrada, mesmo com IP público.
  • A solução necessária era acesso remoto via túnel reverso, iniciado de dentro para fora.
 

 

2. Preparação no Debian (servidor atrás do 4G)

2.1 Criar chave SSH

ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N ""
 

2.2 Copiar chave para a VPS

ssh-copy-id -i ~/.ssh/id_ed25519.pub root@VPS
 

 

3. Configuração do SSH na VPS

3.1 Ajustes essenciais

No arquivo /etc/ssh/sshd_config:

markdown

 
AllowTcpForwarding yes
GatewayPorts yes
Port 2200
 

(Importante: não usar a mesma porta do túnel reverso.)

 

Reiniciar:

systemctl restart ssh
 

 

4. Problema encontrado

A porta 7022 estava configurada no sshd_config do Debian 4G, o que impedia o túnel reverso de usar essa porta.

Solução

→ Remover Port 7022 do sshd_config do Debian que contem o 4G
→ Recarregar o SSH do Debian

 

 

5. Criar o túnel reverso (manual para teste)

No Debian 4G:

ssh -p 2200 -R 7022:localhost:22 root@VPS
 

Depois testar na VPS:

ssh -p 7022 root@localhost
 

Se entrar no Debian 4G → está funcionando.

 

 

6. Confirmar que a porta do túnel está aberta externamente

Na VPS:

ss -ltnp | grep 7022
 

Resultado esperado:

0.0.0.0:7022
 

 

7. Acesso remoto final

De qualquer lugar:

ssh -p 7022 root@VPS
 

→ Isso conecta diretamente ao Debian 4G.

 

 

8. Observação importante

  • O IP do 4G pode mudar, mas não interfere, porque:
    • O Debian inicia a conexão para o VPS (saída sempre permitida)
    • O túnel reverso é mantido pelo autossh, independente do IP público

9. Auto SSH

apt install autossh

nano /etc/systemd/system/autossh-reverso.service

[Unit]
Description=SSH reverso permanente
After=network-online.target
Wants=network-online.target

[Service]
User=root
Environment="AUTOSSH_GATETIME=0"
ExecStart=/usr/bin/autossh -M 0 -N \
    -b 192.168.10.100 \
    -o "ServerAliveInterval 30" \
    -o "ServerAliveCountMax 3" \
    -p 2200 \
    -R 7022:localhost:2200 \
    This email address is being protected from spambots. You need JavaScript enabled to view it.
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

Mudar a porta 7022 para cada servidor
Deixei 2200 para não travar quando o servidor não tem a porta 22

Toda vez que alterar os arquivos do systemd precisa rodar esse comando

Recarregar e reiniciar serviço

 
systemctl daemon-reload
systemctl restart autossh-reverso
systemctl status autossh-reverso


 
 
 
 

 

✔ Regra simples

Para cada servidor 4G que você quiser acessar através da mesma VPS:

 
  • cada túnel reverso deve usar uma porta diferente
  • todas as portas devem estar livres no VPS
 

Exemplo prático:

 
Servidor Porta SSH na VPS Comando no Debian 4G
Servidor A 7022 ssh -p 2200 -R 7022:localhost:22 root@VPS
Servidor B 7023 ssh -p 2200 -R 7023:localhost:22 root@VPS
Servidor C 7024 ssh -p 2200 -R 7024:localhost:22 root@VPS

 

✔ Como acessar depois

Servidor A:

ssh -p 7022 root@VPS
 

Servidor B:

ssh -p 7023 root@VPS
 

Servidor C:

ssh -p 7024 root@VPS
 

 

✔ O que não precisa mudar

  • Porta 2200 (porta SSH da VPS) → continua igual
  • Configuração GatewayPorts yes → continua igual
  • AllowTcpForwarding yes → continua igual
  • autossh → muda só a porta do -R
  • arquivo systemd → só duplicar mudando a porta




 — Criar serviço systemd que roda a rota após a rede subir

Crie:

/etc/systemd/system/tunel4g-route.service
 
 
[Unit]
Description=Rota dedicada para VPS via 4G
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/sbin/ip route add 194.35.13.199 via 192.168.10.254 dev enp0s31f6
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
 
 
 
systemctl daemon-reload
systemctl enable tunel4g-route.service