Openconnect - Conexão de VPN Paloalto no Debian [Artigo]
Para conexão VPN à plataforma Paloalto é disponibilizado um cliente chamado globalprotect, disponível apenas para Windows. A fim de realizar a conexão no Linux, utilizei o openconnect com suporte ao protocolo GP. Existem outras soluções não testadas, como o network-manager-openconnect, este utilizando ambiente gráfico, e o strongsWan, esse também pode ser utilizado como servidor de conexão.
[ Hits: 12.930 ]
Por: Rodolfo Danilo Nunes em 07/05/2018
O pacote do openconnect do repositório oficial foi originalmente escrito para suportar os servidores VPN AnyConnect da Cisco e, desde então, foi ampliado com suporte experimental para o Juniper Network Connect e servidores VPN Junos Pulse (--protocol = nc).
Para suporte à plataforma PAN GlobalProtect (--protocol = gp) é necessário compilar o source obtido em:https://github.com/lins05/openconnect
Há também a necessidade de instalar o java jre e jdk para compilar o source.
A fim de resolver melhor dependências, prefiro utilizar o aptitude, mas pode ser instalado via apt-get.
# aptitude install gnutls-bin gnutls-dev java-common default-jre gcj-jre gcj-6-jre libopenconnect-dev libopenconnect5 openconnect openconnect-dbg automake make gcc g++ binutils libtool libtool-bin openjdk-8-jre-dcevm openjdk-8-source openjdk-8-jdk libconvert-nls-date-format-perl liblocale-msgfmt-perl gettext default-jre openjdk-8-jre openjdk-8-dbg openjdk-8-demo oathtool liboath0 liboath-dev libsasl2-dev libsasl2-modules-gssapi-heimdal libpam-oath oath-dbg mlocate libxml2-utils uml-utilities bridge-utils net-tools git
Instalação do Openconnect
Adicionar suporte ao JAVA.
A variável $JAVA_HOME contém o caminho do diretório de instalação do java no sistema, para verificar executar:
Caso não retorne valor algum, realizar os procedimentos abaixo:
Localizar diretório do java com o comando:
# readlink -f /usr/bin/java | sed "s:bin/java::"
O resultado será o caminho da instalação, então realizar o export da variável JAVA_HOME.
O source do openconnect utiliza a biblioteca jni.h para suporte ao java, localizado no subdiretório /source no home do java. Então, o caminho tem que estar apontando para ele.
Caso ocorra algum erro na compilação, instalar o mlocate (aptitude install mlocate), executar o comando updatedb, e depois locate jni.h, o caminho onde esta biblioteca for encontrada deve ser o caminho $JAVA_HOME.
Caso não seja encontrada, deve ser reinstalado o jdk.
Compilando o fonte:
Sugiro realizar o clone dentro do diretório /usr/src:
# git clone https://github.com/lins05/openconnect.git
Se baixar o fonte zip, copiar para o mesmo diretório e descompactá-lo:
# gunzip master.zip
Atribuir permissão de execução aos arquivos fonte:
# chmod -R +x openconnect/
# cd openconnect/
Já no diretório descompactado ou clonado do git, realizar os seguintes procedimentos:
# ./configure --with-java
Depois de compilado, existirão dois binários do openconnect, a versão instalada via apt-get (aptitude) em /usr/bin/openconnect e a versão compilada com suporte ao protocolo gp em /usr/local/sbin/openconnect.
Será necessário compilar as novas bibliotecas para a pasta lib do sistema:
# cp /usr/local/lib/libopenconnect.so.5.5.0 /usr/lib/x86_64-linux-gnu/
* dependendo do sistema o diretório lib de destino pode estar em outro lugar
E para matar a duvida da localização, execute o comando abaixo, depois de instalar o mlocate e executar o updatedb:
# locate libopenconnect.so.5
Então renomear a versão antiga da biblioteca nativa e copiar a nova:
# mv /usr/lib/x86_64-linux-gnu/libopenconnect.so.5 /usr/lib/x86_64-linux-gnu/libopenconnect.so.5.old
# cp /usr/local/lib/libopenconnect.so.5.5.0 /usr/lib/x86_64-linux-gnu/libopenconnect.so.5
1. Instalação de dependências
2. Realizando a conexão
[1] Comentário enviado por vinyanalista em 16/03/2020 - 13:43h
Parabéns pelo excelente artigo! Apenas observo que desde a versão 8.0 do OpenConnect, lançada em janeiro de 2019, foi incorporado oficialmente o suporte à VPN da Palo Alto Networks GlobalProtect (fonte: https://lists.infradead.org/pipermail/openconnect-devel/2019-January/005178.html ). Essa versão já está disponível nos repositórios oficiais do Debian 10.0 Buster e do Ubuntu 19.04 Disco Dingo (e versões mais recentes do Ubuntu). Assim, sendo, a parte 1 (Instalação de dependências) poderia ser substituída por um simples apt-get. Entendo que o texto é de maio de 2018, apenas estou contribuindo uma atualização. Abraço!