How to connect to a Juniper VPN from Linux

Solution 1:

And my favorite method (no java applet required):

Presumably:

  • your url: 'https://some.site.com/dana-na/auth/url_default/welcome.cgi' (or whatever)

  • your username=username

  • your password=password

  • you know your realm or you can find it from the web page or with:

-

REALM=$(wget -q --no-check-certificate -O - 'https://some.site.com/dana-na/auth/url_default/welcome.cgi' | sed -n 's/.*<input\( [^>]*name="realm" [^>]*\)>.*/\1/p' | sed -n 's/.* value="\([^"]*\)".*/\1/p')

After you login, download the following jar (should be done one time only):

https://some.site.com/dana-cached/nc/ncLinuxApp.jar

and unzip it to ~/.juniper_networks/network_connect

Get some new libraries for your 64bit machine yum install glibc.i686 zlib.i686 nss-mdns.i686

Go to ~/.juniper_networks/network_connect and

sudo chown root:root ncsvc
sudo chmod 6711 ncsvc
chmod 744 ncdiag
chmod +x getx509certificate.sh

Get your certificate:

./getx509certificate.sh some.site.com company.cert

And connect:

./ncsvc -h some.site.com -u username -p password -r REALM -f ./company.cert

For some sites I noticed that you also need to put the -U switch:

./ncsvc -h some.site.com -u username -p password -r REALM -f ./company.cert -U 'https://some.site.com/dana-na/auth/url_default/welcome.cgi'

Solution 2:

The OpenConnect VPN client has (nascent) support for Juniper SSL VPN.

See the announcement at http://lists.infradead.org/pipermail/openconnect-devel/2015-January/002628.html

Edit 2015-02-02:

The Juniper support is coming along nicely now and is definitely ready for more testing. It's reached the point where we're happy to admit to its existence on the OpenConnect web site: http://www.infradead.org/openconnect/juniper.html