A ferramenta de linha de comando oficial Checkpoint out da CheckPoint, para configurar uma VPN SSL Network Extender não está mais funcionando na linha de comando do Linux. Também não é mais suportado ativamente pelo CheckPoint.
No entanto, existe um projeto promissor, que tenta replicar o applet Java para autenticação, que conversa com o snx
utilitário de linha de comando, chamado snxconnect
.
Eu estava tentando colocar o snxconnect
utilitário de texto para funcionar no Debian Buster, fazendo:
sudo pip install snxvpn
e
export PYTHONHTTPSVERIFY=0
snxconnect -H checkpoint.hostname -U USER
No entanto, estava morrendo principalmente com um erro HTTP de:
HTTP/1.1 301 Moved Permanently:
ou:
Got HTTP response: HTTP/1.1 302 Found
ou:
Unexpected response, try again.
O que fazer sobre isso?
PS. O cliente oficial do EndPoint Security VPN está funcionando bem no Mac High Sierra e no Windows 10 Pro.
SNX build 800007075 de 2012, usado para dar suporte ao CheckPoint VPN a partir da linha de comando do Linux. Então eu testei, e vejam só, ele ainda funciona com as últimas distribuições e kernel(s) 4.x/5.x.
Então, em última análise, minha outra resposta neste tópico é verdadeira, se você não conseguir obter o SNX build 800007075 ou se essa versão específica do SNX parar de funcionar com as versões atuais do Linux (pode acontecer em um futuro próximo) ou se você precisar de suporte OTP .
Atualmente, a solução é instalar esta última versão específica do SNX que ainda suporta fazer a VPN a partir da linha de comando.
snx
compilação 800007075, obtenha-a em:Para sistemas de 64 bits baseados em Debian e Debian, como Ubuntu e Linux Mint, pode ser necessário adicionar a arquitetura de 32 bits:
Eu tive que instalar os seguintes pacotes de 32 bits:
Execute então o
snx
script de instalação:Você terá agora um
/usr/bin/snx
executável binário do cliente de 32 bits. Verifique se alguma biblioteca dinâmica está faltando com:Você só pode prosseguir para os seguintes pontos quando todas as dependências estiverem satisfeitas.
Talvez seja necessário executar manualmente primeiro
snx -s CheckpointURLFQDN -u USER
, antes de criar scripts de qualquer uso automático, para que a assinatura VPN seja salva em/etc/snx/USER.db
.Antes de usá-lo, você cria um
~/.snxrc file, using your regular user (not root)
com o seguinte conteúdo:Para conectar, digite
snx
$ snx Check Point Linux SNX build 800007075 Digite sua senha:
SNX - conectado.
Parâmetros da sessão:
IP do modo de escritório: 10.xxx Servidor DNS: 10.xxx Servidor DNS secundário: 10.xxx Sufixo DNS: xxx.xx, xxx.xx Tempo limite: 24 horas
Se você entender os riscos de segurança de codificar uma senha de VPN em um script, também poderá usá-la como:
snx
, a maneira melhor e oficial é emitir o comando:veja também problemas de configuração da ferramenta Linux Checkpoint SNX para alguns esclarecimentos sobre qual
snx
versão usar.Se automatizando o login e aceitando uma nova assinatura (e entendendo as implicações de segurança), escrevi um
expect
script, que chamei de scriptsnx_login.exp
; não muito seguro, porém você pode automatizar seu login, chamando-o com a senha como argumento:#!/usr/bin/expect spawn /usr/bin/snx
definir senha [lindex $argv 0]
expect " ?assword: " send -- "$senha\r"
expect { "o:" { enviar "y\r" exp_continue } eof }
PS. Cuidado
snx
não suporta OTP sozinho, você terá que usar osnxconnect
script presente na outra resposta se estiver usando.O PPS @gibies me chamou a atenção que, usando um etoken, o campo de senha obtém a senha mais o etoken anexado e não uma senha fixa.
Ao trabalhar para instalar a interface oficial do Firefox SSL VPN Extender na questão VPN SSL Network Extender no Firefox , descobri e resolvi mais algumas peças do quebra-cabeça desta questão.
Aparentemente, embora o uso da linha de comando
snx
do ponto de verificação tenha sido descontinuado, o cliente baseado na Web, conforme descrito no post vinculado, ainda funciona. No entanto, existe um cliente de linha de comando python, que tenta replicar a interface Web+Java em cima dosnx
cliente, e este post é sobre como configurá-lo para funcionar.Em primeiro lugar, o
snxvp
instalado depython pip
não funciona. Existe uma versão atualizada com patch em https://github.com/agnis-mateuss/snxvpn , que possui alguns patches úteis, incluindo uma opção para ignorar certificados não assinados e/ou expirados e, mais interessante, ser compatível com python2 e python3.Além disso, todos os URLs
snxconnect.py
devem ser alterados desslvpn/
``.Portanto, as instruções passo a passo são aproximadamente:
snx
configuração:Se estiver na VPN, para obter o arquivo de instalação, faça:
Caso contrário, você terá que obtê-lo na interface da web, conforme descrito na resposta vinculada.
Para o Debian, você pode precisar de:
Tive que instalar o seguinte:
Execute então:
Você terá agora um
/usr/bin/snx
executável binário do cliente de 32 bits. Verifique se alguma biblioteca dinâmica está faltando com:Você só pode prosseguir para os seguintes pontos quando todas as dependências estiverem satisfeitas.
Não tenho certeza se você precisa executar primeiro
snx -s CheckpointURLFQDN -u USER
antes de usarsnxconnect
, pois a assinatura VPN deve ser salva em/etc/snx/USER.db
.snxconnect
utilitário python. Tal programa tenta emular a interface web e, mais interessante, não precisa de Java para autenticar.Então, para instalar e configurar
snxconnect
, execute como root:. então faça como root, para python3: (recomendado)
. ou em vez disso , faça como root, para python2:
Depois de instalá-lo, você pode executar como usuário não privilegiado:
/usr/local/bin/snxconnect -H CheckpointURLFQDN -U USER --skip-cert --save-cookies
Se tudo correu bem, ele pedirá a senha e exibirá:
Se você está tendo problemas para receber esta mensagem e, em vez disso, está recebendo várias vezes seguidas, a mensagem: "Resposta inesperada, tente novamente.", execute o método Firefox e Desconecte-se e faça logout corretamente, aguardando alguns minutos antes de tentar o
snxconnect
comando novamente.Depois que a VPN for estabelecida, você pode verificar
ip address
ouifconfig
agora tem umatunsnx
interface:ip route
também mostrará novas rotas passando pelatunsnx
interface.Para fechar/desconectar a VPN, embora você possa parar/matar
snxconnect
, a maneira melhor e oficial é emitir o comando:$snx -d
SNX - Desconectando... feito.
Além disso, também descobri:
snxconnect
parece se comportar melhor ao desconectar a conexão VPN anterior e fazer logout na interface web oficial se houver algum problema estranho (tenho que tentar fazersnx -d
para ver se produz o mesmo resultado);snx
lo, conformesnxconnect
conversa comsnx
o uso;snxconnect
/snx
é tratado como um host virtual e, como tal, você não pode usar diretamente o endereço IP da VPN;snx_install.sh
script;python2
uma compensação por menos espaço, no entanto, como o python2 está sendo descontinuado,snxconnect
em um futuro próximo pode não suportá-lo;/sslvpn
strings , pois meus URLs não começam com/sslvpn
. Gostaria de verificar o seu caso particular. Eu não tenho absolutamente nenhuma idéia se a presença dessa string no código é devido a uma versão antiga, adoraria algum feedback;snxconnect
nome de host do CheckPoint deve ser o nome exato que a interface da web está mostrando a você uma vez autenticado lá, pois é um host virtual da web. Caso contrário, você não conseguirá estabelecer a VPN;snx
for usado, será criado um arquivo com a assinatura do servidor VPN/Checkpoint em/etc/snx/USER.db
;snxconnect
, poissnx
sozinho não o suporta.