[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

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

 pt-br:howtos:security:openvpn ()