AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 450229
Accepted
Rui F Ribeiro
Rui F Ribeiro
Asked: 2018-06-17 15:33:06 +0800 CST2018-06-17 15:33:06 +0800 CST 2018-06-17 15:33:06 +0800 CST

obtendo o Checkpoint VPN SSL Network Extender funcionando na linha de comando

  • 772

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 snxutilitário de linha de comando, chamado snxconnect.

Eu estava tentando colocar o snxconnectutilitá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.

debian vpn
  • 2 2 respostas
  • 83539 Views

2 respostas

  • Voted
  1. Best Answer
    Rui F Ribeiro
    2018-07-06T12:01:04+08:002018-07-06T12:01:04+08:00

    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.

    1. Para instalar a snxcompilação 800007075, obtenha-a em:
    wget https://starkers.keybase.pub/snx_install_linux30.sh?dl=1 -O snx_install.sh
    

    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:

    sudo dpkg --add-architecture i386
    sudo apt-get update    
    

    Eu tive que instalar os seguintes pacotes de 32 bits:

    sudo apt-get install libstdc++5:i386 libx11-6:i386 libpam0g:i386
    

    Execute então o snxscript de instalação:

    chmod a+rx snx_install.sh
    sudo ./snx_install.sh`
    

    Você terá agora um /usr/bin/snxexecutável binário do cliente de 32 bits. Verifique se alguma biblioteca dinâmica está faltando com:

    sudo ldd /usr/bin/snx
    

    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.

    1. Antes de usá-lo, você cria um ~/.snxrc file, using your regular user (not root) com o seguinte conteúdo:

      server IP_address_of_your_VPN
      username YOUR_USER
      reauth yes
      
    2. Para conectar, digitesnx

      $ 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:

    echo 'Password' | snx
    
    1. Para fechar/desconectar a VPN, embora você possa parar/matar snx, a maneira melhor e oficial é emitir o comando:
        $snx -d
        SNX - Disconnecting...
         done.
    

    veja também problemas de configuração da ferramenta Linux Checkpoint SNX para alguns esclarecimentos sobre qual snxversão usar.

    1. Se automatizando o login e aceitando uma nova assinatura (e entendendo as implicações de segurança), escrevi um expectscript, que chamei de script snx_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 snxnão suporta OTP sozinho, você terá que usar o snxconnectscript 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.

    • 36
  2. Rui F Ribeiro
    2018-06-17T15:33:06+08:002018-06-17T15:33:06+08:00

    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 snxdo 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 do snxcliente, e este post é sobre como configurá-lo para funcionar.

    Em primeiro lugar, o snxvpinstalado de python pipnã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.pydevem ser alterados de sslvpn/``.


    Portanto, as instruções passo a passo são aproximadamente:

    1. Em primeiro lugar, instalando a snxconfiguração:

    Se estiver na VPN, para obter o arquivo de instalação, faça:

    wget --no-check-certificate https://VPN_FW_HOSTNAME/SNX/INSTALL/snx_install.sh 
    

    Caso contrário, você terá que obtê-lo na interface da web, conforme descrito na resposta vinculada.

    Para o Debian, você pode precisar de:

    sudo dpkg --add-architecture i386
    sudo apt-get update    
    

    Tive que instalar o seguinte:

    sudo apt-get install libstdc++5:i386 libx11-6:i386 libpam0g:i386
    

    Execute então:

    chmod a+rx snx_install.sh
    sudo ./snx_install.sh`
    

    Você terá agora um /usr/bin/snxexecutável binário do cliente de 32 bits. Verifique se alguma biblioteca dinâmica está faltando com:

    sudo ldd /usr/bin/snx
    

    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 USERantes de usar snxconnect, pois a assinatura VPN deve ser salva em /etc/snx/USER.db.

    1. Agora temos o snxconnectutilitá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:

    apt-get -y install git make libxml2-dev libxslt1-dev zlib1g-dev
    apt-get -y install python-pip
    pip install pytz
    git clone https://github.com/agnis-mateuss/snxvpn
    git clone  git://git.code.sf.net/p/sfreleasetools/code releasetools
    cd snxvpn   
    
    Now, as for taking out the /sslvpn URL, some Checkpoint appliances need it, some do not. I am not still aware of why the difference. I need it, @WileyMarques does not.
    
    sed -i "s/sslvpn\///g" snxconnect.py  
    

    . então faça como root, para python3: (recomendado)

    apt-get install python3-pip python3-docutils python3-pip python3-libxml2 python3-dev python3-crypto python3-bs4
    pip install rsa
    make
    python3 setup.py install --prefix=/usr/local
    

    . ou em vez disso , faça como root, para python2:

    apt-get install python-docutils python-libxml2 python-lxml python-dev python-bs4 python-beautifulsoup
    sed -i "s/distutils.core/setuptools/g" setup.py
    make
    python setup.py install --prefix=/usr/local
    
    1. 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á:

    SNX connected, to leave VPN open, leave this running!
    

    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 snxconnectcomando novamente.

    1. O(s) arquivo(s) de cookie(s) será(ão) criado(s) em ~/.snxcookies, após um uso bem sucedido.

    Depois que a VPN for estabelecida, você pode verificar ip addressou ifconfigagora tem uma tunsnxinterface:

    $ ip addr show dev tunsnx
    14: tunsnx: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
        link/none
        inet 10.x.x.x peer 10.x.x.x/32 scope global tunsnx
           valid_lft forever preferred_lft forever
        inet6 fe80::acfe:8fce:99a4:44b7/64 scope link stable-privacy
           valid_lft forever preferred_lft forever
    

    ip routetambém mostrará novas rotas passando pela tunsnxinterface.

    1. 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:

    • snxconnectparece 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 fazer snx -dpara ver se produz o mesmo resultado);
    • PYTHONHTTPSVERIFY=0 afeta apenas a versão python2;
    • se a interface da web estiver fazendo um redirecionamento HTML para um local de CheckPoint secundário, apontando diretamente para esse nome de host redirecionado, terá melhores resultados;
    • se os certificados dos firewalls forem autoassinados (geralmente são), a opção --skip-cert deve ser usada, ou a autenticação falhará;
    • por não ter tantos problemas de reautenticação, tive que usar --save-cookies para usar cookies de autenticação, enquanto o usuário está logado no ponto VPN remoto (tem um timeout de x horas);
    • conforme descrito na última pergunta, para que o script funcione, a opção "Ao entrar, inicie o SSL Network Extender" deve ser alterada para "automaticamente";
    • 7776/TCP em localhost tem que ser gratuito, para possuí- snxlo, conforme snxconnectconversa com snxo uso;
    • o nome do host passado para snxconnect/ snxé tratado como um host virtual e, como tal, você não pode usar diretamente o endereço IP da VPN;
    • instalar uma arquitetura de 32 bits parece ser um requisito para executar o snx_install.shscript;
    • você pode optar por executar como python2uma compensação por menos espaço, no entanto, como o python2 está sendo descontinuado, snxconnectem um futuro próximo pode não suportá-lo;
    • de usar a interface do cliente da web, fica claro que preciso corrigir/excluir todas as /sslvpnstrings , 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;
    • no snxconnectnome 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;
    • Na primeira vez que snxfor usado, será criado um arquivo com a assinatura do servidor VPN/Checkpoint em /etc/snx/USER.db;
    • Se você precisar usar o OTP a partir da linha de comando, terá que usar snxconnect, pois snxsozinho não o suporta.
    • 12

relate perguntas

  • Configuração do GRUB para reconhecer diferentes ambientes de desktop (instalações) da mesma distribuição Linux

  • astyle não altera a formatação do arquivo de origem

  • Recebendo e-mail em um novo Debian fresco

  • Debian Stretch: gnome-software segfault em libgs_plugin_systemd-updates.so

  • Como digitar ü no Pinyin IME?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve