CheckPoint SSL Network Extender VPN 설정을 위한 공식 Checkpoint 명령줄 도구는 더 이상 Linux 명령줄에서 실행되지 않습니다. CheckPoint는 더 이상 이를 적극적으로 지원하지 않습니다.
snx
그러나 이라는 명령줄 유틸리티를 인증하고 통신하는 Java 애플릿을 복제하려는 유망한 프로젝트가 있습니다 snxconnect
.
나는 snxconnect
Debian 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 실행을 지원합니다.
- 빌드 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/snx
32비트 클라이언트 바이너리 실행 파일이 생겼습니다. 동적 라이브러리가 누락되었는지 확인하세요.
sudo ldd /usr/bin/snx
모든 종속성이 충족된 후에만 아래에서 진행할 수 있습니다.
자동화된 사용 스크립트를 작성하기 전에 먼저 수동으로 실행하여 snx -s CheckpointURLFQDN -u USER
서명된 VPN을 /etc/snx/USER.db
.
~/.snxrc file, using your regular user (not root)
사용하기 전에 다음 내용이 포함된 파일을 만들어야 합니다 .server IP_address_of_your_VPN username YOUR_USER reauth yes
연결하려면 다음을 입력하세요.
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
- VPN을 끄거나 연결을 끊으려면 중지/종료할 수 있지만
snx
더 좋고 공식적인 방법은 다음 명령을 실행하는 것입니다.
$snx -d
SNX - Disconnecting...
done.
당신은 또한 볼 수 있습니다Linux 체크포인트 SNX 도구 구성 문제사용할 snx
버전에 대한 몇 가지 지침입니다 .
자동 로그인하고 새 서명을 수락하고 보안에 미치는 영향을 이해하려면
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/
.
따라서 단계별 지침은 대략 다음과 같습니다.
- 먼저
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/snx
32비트 클라이언트 바이너리 실행 파일이 생겼습니다. 동적 라이브러리가 누락되었는지 확인하세요.
sudo ldd /usr/bin/snx
모든 종속성이 충족된 후에만 아래에서 진행할 수 있습니다.
서명 VPN snx -s CheckpointURLFQDN -u USER
이 .snxconnect
/etc/snx/USER.db
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
설치한 후에는 권한이 없는 사용자로 실행할 수 있습니다.
/usr/local/bin/snxconnect -H CheckpointURLFQDN -U USER --skip-cert --save-cookies
모든 것이 정상이면 비밀번호를 묻고 다음이 표시됩니다.
SNX connected, to leave VPN open, leave this running!
이 메시지를 받는 데 문제가 있고 "예기치 않은 응답입니다. 다시 시도하십시오."라는 메시지가 연속으로 여러 번 표시되는 경우 Firefox 방법을 수행하고 올바르게 연결을 끊은 후 로그아웃한 후 snxconnect
다시 시도하기 전에 몇 분 정도 기다리십시오.
- 성공적으로 사용되면 ~/.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 route
tunsnx
인터페이스를 통해 새로운 경로 도 표시됩니다 .
VPN을 끄거나 연결을 끊으려면 중지/종료할 수 있지만
snxconnect
더 좋고 공식적인 방법은 다음 명령을 실행하는 것입니다.$snx-d
SNX - 연결 끊기... 완료되었습니다.
추가적으로 나는 다음과 같은 사실을 배웠습니다.
snxconnect
이전 VPN 연결을 끊고 공식 웹 인터페이스에서 로그아웃하면 성능이 더 좋아지는 것 같습니다.이상한 문제가 있다면snx -d
( 동일한 결과가 나오는지 확인하려면 이것을 시도해야 합니다 .)- PYTHONHTTPSVERIFY=0은 python2 버전에만 영향을 미칩니다.
- 웹 인터페이스가 보조 CheckPoint 위치로 HTML 리디렉션을 수행하는 경우 리디렉션의 호스트 이름을 직접 가리키면 더 나은 결과를 얻을 수 있습니다.
- 방화벽의 인증서가 자체 서명된 경우(일반적으로 그렇습니다) --skip-cert 옵션을 사용해야 합니다. 그렇지 않으면 인증이 실패합니다.
- 재인증과 관련된 너무 많은 문제를 방지하려면 사용자가 원격 VPN 지점에 로그인되어 있는 동안(x시간의 시간 초과) --save-cookies를 사용하여 인증 쿠키를 사용해야 합니다.
- 이전 질문에서 언급한 대로 스크립트가 제대로 작동하려면 "로그인 시 SSL Network Extender 시작" 옵션을 "자동"으로 변경해야 합니다.
snx
localhost의 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
지원하지 않으므로 별도로 수행해야 합니다 .