1

Pitch: lazyovpn - um TUI pra gerenciar OpenVPN no Linux (estilo lazygit/lazydocker)

Toda vez que eu precisava subir uma VPN OpenVPN no Linux era a mesma dança:
sudo openvpn --config algum-arquivo.ovpn, cola a senha, e o terminal fica
preso cuspindo log. Quer trocar de conexão? Ctrl+C, acha o outro arquivo,
repete. Quer saber se subiu mesmo? Lê o log na mão procurando
"Initialization Sequence Completed".

Cansei e fiz um TUI pra isso, no espírito do lazygit/lazydocker: o lazyovpn.

Repo: https://github.com/omartelo/lazyovpn

O que ele faz

  • Lista os configs que você já tem (/etc/openvpn/client, /etc/openvpn e
    ~/.config/lazyovpn/connections).
  • Conecta/desconecta com uma tecla. Badge de estado mostrando
    connecting → connected → disconnected/error, ele detecta o "connected"
    de verdade lendo o sinal do próprio openvpn, não pelo processo ter subido.
  • Log ao vivo por conexão, num painel que dá pra rolar pra trás (tab pra focar,
    ou a rodinha do mouse).
  • Pergunta usuário/senha nos configs auth-user-pass. A senha fica mascarada e
    nunca vai pra arquivo em texto puro. Se você quiser, dá pra salvar no
    keyring do SO (Secret Service/libsecret) pra pular o prompt na próxima, é
    opt-in explícito, nunca por padrão.
  • Importa um .ovpn novo pelo seletor de arquivos nativo (zenity/kdialog).

Decisão de design

O TUI roda sem privilégio. Só o openvpn sobe como root, via pkexec
(polkit). O processo da interface nunca escala privilégio, essa fronteira é o
projeto inteiro. Você digita a senha do polkit no prompt gráfico de sempre, e o
processo que fica com root é só o openvpn, não a aplicação.

Senha de VPN segue a mesma régua: enquanto a conexão está de pé, as credenciais
vão pra um arquivo 0600 em tmpfs ($XDG_RUNTIME_DIR), apagado quando a conexão
cai. Em disco durável, em texto puro, nunca. A única persistência possível é o
keyring, e só quando você liga o toggle.

Stack

Go + Cobra (CLI) + Bubble Tea/Lipgloss v2 (TUI). Keyring via
zalando/go-keyring (D-Bus puro, sem cgo).

Requisitos / limitações honestas

  • Linux com openvpn e pkexec no PATH.
  • Uma conexão por vez (por enquanto).
  • pkexec hard-coded, sem fallback pra sudo.
  • Auth é só auth-user-pass (usuário+senha) — sem passphrase de chave ainda.

Como Instalar

go install github.com/omartelo/lazyovpn@latest

Ou pega um binário pronto em: https://github.com/omartelo/lazyovpn/releases.


É isso. Fiz pra mim, mas se você vive trocando de VPN no Linux talvez te sirva, ou, se você quer ver rodar em Mac e Windows...

Feedback, issue e PR são bem-vindos.

Carregando publicação patrocinada...