/checkpoint-mobile-access-vpn

Linux setup to work with Check Point Mobile Access VPN.

GNU General Public License v3.0GPL-3.0

Linux setup Check Point Mobile Access VPN

This is a step-by-step tutorial to setup your Linux machine with all the required dependencies to work with Check Point Mobile Access VPN. This tutorial also includes some troubleshooting.

Introduction

In the past year I had to setup my Ubuntu 18.04 laptop twice. Both times were very exhausting and took long hours until it was ready to use due to so many different errors hard to find the solution on Google. So no need to mention this tutorial (at the current state) is only useful if you're working with a clean and recently installed Ubuntu LTS distro.

Dependencies

First make sure your operating system is up-to-date with:

$ sudo apt-get update && sudo apt-get upgrade

Now you need some basic tooling for installing and building independent package vendors:

$ sudo apt-get install software-properties-common apt-transport-https wget curl
$ sudo apt-get install build-essential

Java

If your system has no Java version installed, make sure you install the version 8 (or higher). You can do that quickly with SDKMAN!, but first be sure you're on your home directory with:

$ cd ~

And then for installing SDKMAN!:

$ curl -s "https://get.sdkman.io" | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"

List the available Java versions and try to find the OpenJDK version 8 or higher (in my case it was 8.0.232-open) and then install it:

$ sdk list java
$ sdk install java 8.0.232-open

SSL

For the Check Point Mobile Access required packages, you'll need to install xterm and some SSL packages with the following commands:

$ sudo apt-get install xterm
$ sudo apt-get install libnss3-tools certutil

32 bit libs

If you're running a 64 bit operating system, you'll need to install some 32 bit compatible libraries:

$ sudo apt-get install libx11-6
$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install multiarch-support
$ sudo apt-get install libx11-6:i386 libc6:i386 libncurses5:i386 libstdc++6:i386 libstdc++5:i386 libpam0g:i386

Downloading the Shell Scripts

There are two shell script files you'll need to download to setup Check Point Mobile Access VPN on your machine:

  • snx_install.sh
  • cshell_install.sh

Both of them you can get on your company's Mobile Access VPN page.

1. Login

2. Click on "Settings" button

3. Click on "Download Installation for Linux" for both SSL Network Extender and Check Point Mobile Access Portal Agent

Running the Shell Scripts

The scripts you've just downloaded are just regular files. So we need to change their permissions to make them executable with the following commands:

$ chmod +x snx_install.sh
$ chmod +x cshell_install.sh

The first script we're going to run is the snx_install.sh, which should not give any errors when installing it.

$ ./snx_install.sh
Installation successfull

Here comes the tricky part: running the other shell script. The script will ask you for your password because it's going to run some things as sudo. Everything should be going fine until it gets to the last step: when it tries to run /usr/bin/cshell/launcher. That's where it gets stuck. This executable file does not work properly with sudo.

$ ./cshell_install.sh
Start Check Point Mobile Access Portal Agent installation
Extracting Mobile Access Portal Agent... Done
Installing Mobile Access Portal Agent... Done
Installing certificate... Done
Starting Mobile Access Portal Agent...

When you notice it is stuck at the message above, open Ubuntu's system monitor and try to find a process called launcher with 0% CPU usage and Sleeping status. Once you find it, kill it.

Do not ever type CTRL+C on the terminal or try to end its process or launcher's. You must kill the launcher process. Otherwise, the script will do a clean-up and erase everything it has made that will allow you to make Check Point Mobile Access VPN work.

If you've done everything right, there should be an executable file called launcher at /usr/bin/cshell/. If so, run it and it should have been displayed some logs as follows:

$ /usr/bin/cshell/launcher
LAUNCHER> Starting CShell...
LAUNCHER> CShell Started

It means it has successfully been installed, and you should be fine trying to connect to the VPN now, but it doesn't mean we don't have more work to do.

Troubleshooting

If you end up with an error when you're trying to run /usr/bin/cshell/launcher about a named pipe file called cshell.fifo inside the /tmp folder, just delete it with:

$ sudo rm /tmp/cshell.fifo

Post-install

You need to disable one of your system's startup applications. You should be able to see one of them called cshell with a marked checkbox. All it does is running the launcher executable file in /usr/bin/cshell/. You must uncheck it because every time you let it run automatically it's going to be run as sudo, which means it's going to get stuck.

Now we're going to do a little trick to make it start automatically without sudo: run it inside the .bashrc file, so every time you open up a terminal it's going to run with your user normal permissions. Actually, we only want to run it once when you log in, right? So why don't we simply run it inside .profile? Because everything in .profile run as sudo, so the launcher is going to get stuck.

So here is the tricky part: let's create a simple log file to check whether launcher should run every time you open up a terminal window. Add the following lines to the .profile file to remove the log file every time you log in.

if [ -f "/home/[MY-USER-NAME]/cshell_launcher.log" ]; then
    rm /home/[MY-USER-NAME]/cshell_launcher.log
fi

On the .bashrc file add the following lines to check whether it should run the launcher file every time you open up a terminal window:

if [ ! -f "/home/[MY-USER-NAME]/cshell_launcher.log" ]; then
    /usr/bin/cshell/launcher > /home/[MY-USER-NAME]/cshell_launcher.log
fi

Restart your computer, log into your user account and check if the log file we created is on your home directory by opening a terminal and typing:

$ ls | grep cshell
cshell_launcher.log

Then show its contents by using cat and it should be displayed as the following:

$ cat cshell_launcher.log 
LAUNCHER> Starting CShell...
LAUNCHER> CShell Started

Now you should be all set. Open your company's Check Point Mobile Access page and you should be able to connect everytime you log into your computer. Just remember to open up a terminal window first :)