Table of Contents

OpenVPN

O OpenVPN é um software de código aberto que implementa técnicas de rede privada virtual (VPN) para criar conexões seguras de ponto a ponto ou site para site em configurações roteadas de bridge e instalações de acesso remoto. Ele usa um protocolo de segurança personalizado que utiliza SSL/TLS para troca de chaves. É capaz de atravessar tradutores de endereços de rede (NATs) e firewalls. Foi escrito por James Yonan e é publicado sob a Licença Pública Geral GNU (GPL).

O OpenVPN permite que os pares se autentiquem usando uma chave secreta, certificados ou nome de usuário pré-compartilhados. Quando usado em uma configuração multiclient-server, ele permite que o servidor libere um certificado de autenticação para cada cliente, usando a assinatura e a autoridade de certificação. Ele usa a biblioteca de criptografia OpenSSL extensivamente, bem como o protocolo SSLV3/TLSV1 e contém muitos recursos de segurança e controle.

Como usar o OpenVPN

É muito simples se você já recebeu uma configuração pronta para qualquer provedor OpenVPN.

# openvpn --config yourconfig.ovpn

Se você não tiver uma configuração que você pode usar, você precisa dar uma olhada em /etc/openvpn. O Slackware tem um exemplo de configuração com algumas boas dicas lá.

Usando OpenVPN com a barra de status do i3

Eu estou usando o i3 window manager com dmenu e i3statusbar. Você pode configurar a barra para mostrar se você está executando o OpenVPN ou não. O i3status.conf está em /etc se instalado com o Slackbuild.

Você precisa iniciar o openvpn com a opção –writepid /path/to/your.pid.

Por examplo:

openvpn --config /etc/openvpn/vpn.ovpn --writepid /var/run/pid/openvpn.pid

Para usar o este recurso por padrão, você deve editar o arquivo de configuração. Procure pelo bloco:

run_watch VPN {
        pidfile = "/var/run/something.pid"
}

e mude “something” para o pid name escolhido. Neste caso:

run_watch VPN
        pidfile = "/var/run/openvpn.pid"
}

Recontruindo o OpenVPN para o login a partir de um arquivo

Como eu queria que minha conexão OpenVPN iniciasse automaticamente quando eu conectar meu ThinkPad ao dock, achei que seria útil adicionar o recurso 'password safe'. (A configuração de 'password safe' permite que você armazene seu nome de usuário e senha em um arquivo para script) Esse recurso não é instalado por padrão. Você tem que adicioná-lo ao slackbuild e recompilar o pacote.

Comece pegando a fonte e Slackbuild de um dos mirrors do Slackware.

http://mirrors.slackware.com/slackware/slackware64-14.0/source/n/openvpn/

Altere o mirror para suas necessidades, por exemplo para o -current.

Na próxima etapa, vamos alterar o arquivo OpenVPN.SLackBuild.

Abra o arquivo Slackbuild com seu editor de escolha.

Para vim, faça:

$ vim openvpn.SlackBuild

Agora, procure por esse bloco de código:

./configure \
    --prefix=/usr \
    --libdir=/usr/lib${LIBDIRSUFFIX} \
    --sysconfdir=/etc/openvpn \
    --localstatedir=/var \
    --docdir=/usr/doc/openvpn-${VERSION} \
    --enable-lzo \
    --enable-iproute2 \
    --build=$ARCH-slackware-linux

Acrescente a linha identificada:

./configure \
    --prefix=/usr \
    --libdir=/usr/lib${LIBDIRSUFFIX} \
    --sysconfdir=/etc/openvpn \
    --localstatedir=/var \
    --docdir=/usr/doc/openvpn-${VERSION} \
    --enable-lzo \
    --enable-iproute2 \
    --enable-password-save \ #adicione essa linha!
    --build=$ARCH-slackware-linux

Salve o arquivo, faça dele um executável e reconstrua o pacote com

$ chmod +x openvpn.SlackBuild && ./openvpn.SlackBuild

o novo pacote estará na pasta /tmp.

Instale-o com:

# upgradepkg --install-new /tmp/yourpackage.tgz

Agora você deverá ser capaz de carregar seu login e senha de um arquivo. O arquivo deve conter duas linhas de texto:

username
password

Salve o arquivo e faça ele legível apenas para o proprietário:

$ chmod 700 yourfile

Por fim, adicione a linha abaixo à sua configuração OpenVPN.

auth-user-pass /path/to/your/passwordfile

Agora você deve ser capaz de fazer login sem digitar sua senha toda vez.

Fontes