The company I work for uses Juniper Network’s VPN solution. The VPN implementation allows you to visit a website, use your domain’s login information, and start using the VPN. Essentially, on successful authentication, an applet starts running which establishes the VPN connection till it is closed. A great idea and it works mostly, but here’s the problem: DOES NOT WORK ON 64 BIT UBUNTU!
I dug in a bit and found that the applet does not run on 64-bit JVMs. Wow!!!
Anyway, had to find a solution. Found three actually and each work, albeit with varying levels of complexity. So here are the solutions (not in any specific order):
- Find the applet JAR and run in a 32 bit JVM: On authentication, the applet JAR is actually downloaded to your local machine. I found it in my ~/.local folder. I installed a 32 bit JVM and ran the JAR manually from the command line (with certain switches). Worked.
- Install Ubuntu 32 bit in a VM and proxy requests through it: This one was just for fun. I installed a 32 bit version of Ubuntu in a VirtualBox VM (bridged network mode) with 32 bit JVM. The VPN then worked fine on it. Installed Squid proxy. On the host system, configured my system proxy to go against the Squid proxy on the VM. Worked.
- Run 32 bit Firefox with 32 bit JRE: Uninstalled the default Firefox that came with Ubuntu. Installed the supporting IA32 libs. Then installed Firefox, and IcedTea 32 bit versions. Now the VPN applet runs fine. For normal browsing, I use Chromium.
Hopefully, Juniper Networks will work on this issue so that people do not have to jump through hoops like this. But then, who cares about Linux distros?