OpenVPN SSH Proxy

● Ativo

Container Docker que executa um cliente OpenVPN isolado e expõe um túnel SSH para acessar recursos privados.

Docker OpenVPN SSH Alpine Linux

OpenVPN SSH Proxy

Container para executar um cliente OpenVPN isolado e expor um túnel SSH para acessar recursos privados atrás dessa VPN.

O problema

Acessar recursos atrás de VPNs corporativas é doloroso — clientes pesados, conflitos de rede, e a impossibilidade de conectar em mais de uma VPN ao mesmo tempo. Cada VPN instalada no host reescreve a tabela de rotas, gerando conflitos imprevisíveis.

A solução

Isolar o OpenVPN dentro de um container Docker e expor apenas um servidor SSH. O host não precisa de nenhum cliente VPN instalado — basta abrir um túnel SSH para acessar qualquer recurso da rede privada.

Funcionalidades

  • Cliente OpenVPN containerizado com isolamento total do host
  • Servidor SSH integrado para SOCKS proxy e port forwarding
  • Suporte a múltiplas VPNs simultâneas em portas diferentes
  • Configuração via variáveis de ambiente
  • Compatível com qualquer sistema que rode Docker
  • Imagem leve baseada em Alpine Linux

Como funciona

Host (seu computador)
  |
  |--- ssh -p 1180 proxy@localhost -D 1080  (SOCKS proxy)
  |--- ssh -p 1180 proxy@localhost -L 8080:app.internal:80  (port forward)
  |
  v
Docker Container (OpenVPN + SSH)
  |
  |--- tun0 (túnel VPN)
  |
  v
Rede Privada (recursos corporativos)

Quick Start

docker run --rm -it \
  --device /dev/net/tun --cap-add NET_ADMIN \
  -p 1180:1180 \
  -v ./client.ovpn:/vpn/client.ovpn:ro \
  -e OVPN_FILE_PATH=/vpn/client.ovpn \
  -e SSH_TUNNEL_PORT=1180 \
  -e SSH_TUNNEL_USER=proxy \
  -e SSH_TUNNEL_PASS=proxy@123 \
  mauricioj/openvpn-ssh-proxy:latest

Série de posts

Documentei todo o processo em uma série de 3 posts:

  1. O Problema e a Solução — conceito e arquitetura
  2. Implementação Passo a Passo — tutorial completo
  3. Segurança e Lições Aprendidas — boas práticas e casos de uso