OpenConnect (Português)

Status de tradução:
Esse artigo é uma tradução de
OpenConnect
. Data da última tradução: 2019-03-20. Você pode ajudar a sincronizar a tradução, se houver
alterações
na versão em inglês.
OpenConnect
é um cliente para o
AnyConnect SSL VPN
[
link inativo
2022-09-22 ⓘ]
da Cisco e o
Pulse Connect Secure
da Pulse Secure.
Instalação
Instale
o pacote
openconnect
.
Uso
Veja
openconnect(8)
. Basta executar
openconnect
como root e inserir seu nome de usuário e senha quando solicitado:
# openconnect
vpnserver
Invocação mais avançada com nome de usuário e senha. Insira a senha após executar o comando.
# openconnect -u
user
--passwd-on-stdin
vpnserver
Muitas vezes, o provedor de VPN oferece diferentes grupos de autenticação para diferentes configurações de acesso, como, por exemplo, para um túnel completo ou uma conexão de túnel dividida. Para mostrar os diferentes grupos de autenticação oferecidos e obter mais informações sobre a conexão com o servidor em geral, use:
# openconnect --authenticate
servidorvpn
Cliente Juniper Pulse
Para conectar a um servidor
Pulse Connect Secure
, você precisa saber a SHA-1 de seu certificado.
# openconnect --servercert=sha1:<HASH> --authgroup="single-Factor Pulse Clients" --protocol=nc <ENDEREÇO_SERVIDOR_VPN>/dana-na/auth/url_6/welcome.cgi --pid-file="/var/run/work-vpn.pid" --user=<NOME_DE_USUÁRIO>
Roteamento dividido
O roteamento dividido pode ser obtido usando-se
vpn-slice-git
AUR
no lugar do
vpnc-script
, para que você possa acessar seletivamente os hosts através da VPN, mas permanecer em sua própria LAN. Exemplo:
sh
   $ sudo openconnect gateway.bigcorp.com -u user1234 \
       -s 'vpn-slice 192.168.1.0/24 hostname1 alias2=alias2.bigcorp.com=192.168.1.43'
   $ cat /etc/hosts
   ...
   192.168.1.1 dns0.tun0					# vpn-slice-tun0 AUTOCREATED
   192.168.1.2 dns1.tun0					# vpn-slice-tun0 AUTOCREATED
   192.168.1.57 hostname1 hostname1.bigcorp.com		# vpn-slice-tun0 AUTOCREATED
   192.168.1.43 alias2 alias2.bigcorp.com		# vpn-slice-tun0 AUTOCREATED
Integração
NetworkManager
Instale
o pacote
networkmanager-openconnect
. Então, configure e conecte com o
nm-applet
(utilitário de área de notificação do NetworkManager de
network-manager-applet
) ou utilitário similar.
Após a instalação,
reinicie
o
NetworkManager.service
.
Veja
NetworkManager
para detalhes.
netctl
Um
netctl.profile(5)
simples de
tuntap
pode ser usado para integrar o OpenConnect no fluxo de trabalho normal do
Netctl
. Por exemplo:
/etc/netctl/vpn
Description='VPN'
Interface=vpn
Connection=tuntap
Mode=tun
#User=root
#Group=root

BindsToInterfaces=(enp0s25 wlp2s0)
IP=no

PIDFILE=/run/openconnect_${Interface}.pid
SERVER=vpn.example.net
AUTHGROUP='<GRUPO_DE_AUTH>'
LOCAL_USERNAME=<NOME_DE_USUÁRIO_LOCAL>
REMOTE_USERNAME=<NOME_DE_USUÁRIO_VPN>
# Assuming the use of pass(1): 
PASSWORD_CMD="su ${LOCAL_USERNAME} -c \"pass ${REMOTE_USERNAME} | head -n 1\""

ExecUpPost="${PASSWORD_CMD} | /usr/bin/openconnect --background --pid-file=${PIDFILE} --interface='${Interface}' --authgroup='${AUTHGROUP}' --user='${REMOTE_USERNAME}' --passwd-on-stdin ${SERVER}"
ExecDownPre="kill -INT $(cat ${PIDFILE}) ; resolvconf -d ${Interface} ; ip link delete ${Interface}"
Isso permite uma execução como:
$ netctl start vpn
$ netctl restart vpn
$ netctl stop vpn
Observe que isso depende de
LOCAL_USERNAME
ter um
gpg-agent
em execução, com a senha para a chave PGP já em cache.
Se uma consulta interativa do
pass
for desejado, use a seguinte linha para
PASSWORD_CMD
:
DISPLAY=":0"
PASSWORD_CMD="su ${LOCAL_USERNAME} -c \"DISPLAY=${DISPLAY} pass ${REMOTE_USERNAME} | head -n 1\""
Ajuste a variável
DISPLAY
conforme necessário.