세션 매개변수:

세션 매개변수:

CheckPoint SSL Network Extender VPN 설정을 위한 공식 Checkpoint 명령줄 도구는 더 이상 Linux 명령줄에서 실행되지 않습니다. CheckPoint는 더 이상 이를 적극적으로 지원하지 않습니다.

snx그러나 이라는 명령줄 유틸리티를 인증하고 통신하는 Java 애플릿을 복제하려는 유망한 프로젝트가 있습니다 snxconnect.

나는 snxconnectDebian Buster에서 텍스트 유틸리티를 사용하여 다음을 수행하려고 합니다:

sudo pip install snxvpn

그리고

export PYTHONHTTPSVERIFY=0
snxconnect -H checkpoint.hostname -U USER 

그러나 대부분 다음 HTTP 오류로 인해 충돌이 발생합니다.

HTTP/1.1 301 Moved Permanently:

또는:

Got HTTP response: HTTP/1.1 302 Found

또는:

Unexpected response, try again.

무엇을 해야 할까요?

추신. 공식 EndPoint Security VPN 클라이언트는 Mac High Sierra 및 Windows 10 Pro에서 제대로 실행됩니다.

답변1

2012년의 SNX 빌드 800007075는 Linux 명령줄을 통해 CheckPoint VPN을 지원합니다. 그래서 테스트해 보았는데, 최신 배포판과 커널 4.x/5.x에서 여전히 작동합니다.

따라서 궁극적으로 SNX 빌드 800007075를 얻을 수 없다면 이 스레드의 다른 대답은 정확합니다.또는해당 특정 버전의 SNX가 현재 Linux 버전에서 작동하지 않는 경우(가까운 미래에 발생할 수 있음)또는OTP 지원이 필요한 경우.

현재 해결책은 최신 버전의 SNX를 설치하는 것입니다.아직명령줄에서 VPN 실행을 지원합니다.

  1. 빌드 800007075를 설치하려면 snx다음에서 얻으세요.
wget https://starkers.keybase.pub/snx_install_linux30.sh?dl=1 -O snx_install.sh

Debian 및 Debian 기반 64비트 시스템(예: Ubuntu 및 Linux Mint)의 경우 32비트 아키텍처를 추가해야 할 수 있습니다.

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

다음 32비트 패키지를 설치해야 했습니다.

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

snx그런 다음 설치 스크립트를 실행합니다 .

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

이제 /usr/bin/snx32비트 클라이언트 바이너리 실행 파일이 생겼습니다. 동적 라이브러리가 누락되었는지 확인하세요.

sudo ldd /usr/bin/snx

모든 종속성이 충족된 후에만 아래에서 진행할 수 있습니다.

자동화된 사용 스크립트를 작성하기 전에 먼저 수동으로 실행하여 snx -s CheckpointURLFQDN -u USER서명된 VPN을 /etc/snx/USER.db.

  1. ~/.snxrc file, using your regular user (not root) 사용하기 전에 다음 내용이 포함된 파일을 만들어야 합니다 .

    server IP_address_of_your_VPN
    username YOUR_USER
    reauth yes
    
  2. 연결하려면 다음을 입력하세요.snx

    $ snx Check Point Linux SNX 빌드 800007075 비밀번호를 입력하세요:

    SNX-연결되었습니다.

    세션 매개변수:

    오피스 모드 IP: 10.xxx DNS 서버: 10.xxx 보조 DNS 서버: 10.xxx DNS 접미사: xxx.xx, xxx.xx 시간 초과: 24시간

VPN 비밀번호를 스크립트에 하드코딩하는 것의 보안 위험을 이해한다면 다음과 같이 사용할 수도 있습니다.

echo 'Password' | snx
  1. VPN을 끄거나 연결을 끊으려면 중지/종료할 수 있지만 snx더 좋고 공식적인 방법은 다음 명령을 실행하는 것입니다.
    $snx -d
    SNX - Disconnecting...
     done.

당신은 또한 볼 수 있습니다Linux 체크포인트 SNX 도구 구성 문제사용할 snx버전에 대한 몇 가지 지침입니다 .

  1. 자동 로그인하고 새 서명을 수락하고 보안에 미치는 영향을 이해하려면 expect스크립트를 작성했는데 snx_login.exp매우 안전하지는 않지만 자동 로그인이 가능하며 비밀번호를 인수로 사용하여 호출할 수 있습니다. :

    #!/usr/bin/expect는 /usr/bin/snx를 생성합니다.

    비밀번호 설정 [linindex $argv 0]

    예상되는"?비밀번호:"보내기 -- "$password\r"

    {"o:"{send "y\r" exp_continue}eof}를 기대하세요

추신. 별도의 OTP를 지원하지 않으므로 이를 사용하려면 다른 답변에 있는 스크립트를 snx사용해야 합니다 .snxconnect

PPS @gibies는 etoken을 사용하면 비밀번호 필드에 고정 비밀번호가 아닌 비밀번호와 첨부된 etoken이 추가된다는 점을 지적했습니다.

답변2

문제의 Firefox 공식 SSL VPN Extender 인터페이스를 설치할 때Firefox의 VPN SSL 네트워크 확장기, 나는 이 문제에 대한 더 많은 퍼즐을 발견하고 해결했습니다.

분명히 체크포인트의 명령줄 사용이 snx중단되었지만 링크된 게시물에 설명된 웹 기반 클라이언트는 여전히 작동합니다. 그러나 클라이언트 위에 Web+Java 인터페이스를 복제하려고 시도하는 Python 명령줄 클라이언트가 있으며 snx이 문서에서는 이를 작동하도록 설정하는 방법에 대해 설명합니다.

첫째, snxvp설치된 버전이 python pip작동하지 않습니다. 최신 패치 버전을 사용할 수 있습니다.https://github.com/agnis-mateuss/snxvpn서명되지 않은 인증서 및/또는 만료된 인증서를 무시하는 옵션을 포함하여 몇 가지 유용한 패치가 있으며 더 흥미롭게도 python2입니다.그리고Python3과 호환됩니다.

또한 모든 URL은 `` snxconnect.py에서 변경되어야 합니다 sslvpn/.


따라서 단계별 지침은 대략 다음과 같습니다.

  1. 먼저 snx설정을 설치합니다.

VPN을 사용 중인 경우 설치 파일을 얻으려면 다음을 수행하십시오.

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

그렇지 않으면 링크된 답변에 언급된 대로 웹 인터페이스에서 가져와야 합니다.

데비안의 경우 다음이 필요할 수 있습니다:

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

다음을 설치해야했습니다.

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

그런 다음 다음을 실행하십시오.

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

이제 /usr/bin/snx32비트 클라이언트 바이너리 실행 파일이 생겼습니다. 동적 라이브러리가 누락되었는지 확인하세요.

sudo ldd /usr/bin/snx

모든 종속성이 충족된 후에만 아래에서 진행할 수 있습니다.

서명 VPN snx -s CheckpointURLFQDN -u USER이 .snxconnect/etc/snx/USER.db

  1. snxconnect이제 Python 유틸리티가 생겼습니다 . 이러한 유형의 프로그램은 웹 인터페이스를 에뮬레이트하려고 시도하며 더 흥미롭게도 인증을 위해 Java가 필요하지 않습니다.

따라서 설치 및 설정하려면 snxconnect루트로 실행하십시오.

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  

. 그런 다음 python3의 경우 루트로 실행합니다. (권장)

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

. 또는대신에, 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. 설치한 후에는 권한이 없는 사용자로 실행할 수 있습니다.

    /usr/local/bin/snxconnect -H CheckpointURLFQDN -U USER --skip-cert --save-cookies

모든 것이 정상이면 비밀번호를 묻고 다음이 표시됩니다.

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

이 메시지를 받는 데 문제가 있고 "예기치 않은 응답입니다. 다시 시도하십시오."라는 메시지가 연속으로 여러 번 표시되는 경우 Firefox 방법을 수행하고 올바르게 연결을 끊은 후 로그아웃한 후 snxconnect다시 시도하기 전에 몇 분 정도 기다리십시오.

  1. 성공적으로 사용되면 ~/.snxcookies에 쿠키 파일이 생성됩니다.

VPN이 설정되면 다음을 확인하거나 ip address이제 ifconfig인터페이스를 사용할 수 있습니다 tunsnx.

$ 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 routetunsnx인터페이스를 통해 새로운 경로 도 표시됩니다 .

  1. VPN을 끄거나 연결을 끊으려면 중지/종료할 수 있지만 snxconnect더 좋고 공식적인 방법은 다음 명령을 실행하는 것입니다.

    $snx-d

    SNX - 연결 끊기... 완료되었습니다.


추가적으로 나는 다음과 같은 사실을 배웠습니다.

  • snxconnect이전 VPN 연결을 끊고 공식 웹 인터페이스에서 로그아웃하면 성능이 더 좋아지는 것 같습니다.이상한 문제가 있다면snx -d( 동일한 결과가 나오는지 확인하려면 이것을 시도해야 합니다 .)
  • PYTHONHTTPSVERIFY=0은 python2 버전에만 영향을 미칩니다.
  • 웹 인터페이스가 보조 CheckPoint 위치로 HTML 리디렉션을 수행하는 경우 리디렉션의 호스트 이름을 직접 가리키면 더 나은 결과를 얻을 수 있습니다.
  • 방화벽의 인증서가 자체 서명된 경우(일반적으로 그렇습니다) --skip-cert 옵션을 사용해야 합니다. 그렇지 않으면 인증이 실패합니다.
  • 재인증과 관련된 너무 많은 문제를 방지하려면 사용자가 원격 VPN 지점에 로그인되어 있는 동안(x시간의 시간 초과) --save-cookies를 사용하여 인증 쿠키를 사용해야 합니다.
  • 이전 질문에서 언급한 대로 스크립트가 제대로 작동하려면 "로그인 시 SSL Network Extender 시작" 옵션을 "자동"으로 변경해야 합니다.
  • snxlocalhost의 7776/TCP를 사용 snxconnect하려면 자유롭게 사용할 수 있어야 합니다 snx.
  • snxconnect/에 전달된 호스트 이름은 snx가상 호스트로 간주되므로 VPN IP 주소를 직접 사용할 수 없습니다.
  • 이 스크립트를 실행하려면 32비트 아키텍처를 설치해야 하는 것으로 보입니다 snx_install.sh.
  • python2더 적은 공간에 대한 절충안 으로 실행하도록 선택할 수 있지만 python2는 단계적으로 중단되므로 snxconnect가까운 시일 내에 지원되지 않을 수 있습니다.
  • 웹 클라이언트 인터페이스를 사용하면 /sslvpn내 URL이 /sslvpn. 코드에 해당 문자열이 존재하는 것이 이전 버전 때문인지 전혀 알 수 없으며 피드백을 받고 싶습니다.
  • CheckPoint 호스트 이름의 이름은 snxconnect웹 가상 호스트이기 때문에 웹 인터페이스가 인증 후 표시하는 정확한 이름이어야 합니다. 그렇지 않으면 VPN을 성공적으로 설정할 수 없습니다.
  • 처음 snx사용할 때 VPN/체크포인트 서버에서 서명한 파일이 에 생성됩니다 /etc/snx/USER.db.
  • snxconnect명령줄에서 OTP를 사용해야 하는 경우 에는 snx지원하지 않으므로 별도로 수행해야 합니다 .

관련 정보