Juniper Pulse + hostchecker + pre-auth banner + Duo MFA + profiles?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Our site uses the Juniper Pulse VPN, configured with a pre-auth banner
you must click through, requiring the host checker, requiring Duo MFA,
and using profiles.

Has anyone come up with a combination of openconnect and helper
utilities that will satisfy *all* of these dependencies?

The best I have been able to come up with relies on the juniper-vpn-py
helper scripts:

    https://github.com/russdill/juniper-vpn-py/

Specifically, I run it like this:

    $ ./juniper-vpn.py --host vpn.example.org --username myusername
--pass 123 --stdin DSID=%DSID% openconnect --juniper %HOST%
--cookie-on-stdin

The argument to --pass is the first 3 digits of the one-time passcode
I get from the Duo Mobile app; I used “123” as an example.)

When I run this, juniper-vpn.py first asks me for my password, and
then it asks for the secondary password (which is where I enter the
final 3 digits of the one-time passcode).

It’s convoluted, but it works, albeit with no DTLS support:

    reply: 'HTTP/1.1 200 OK\r\n'
    header: Content-type: text/html; charset=utf-8
    header: Set-Cookie: DSLastAccess=1547265626; path=/; Secure
    header: Connection: close
    header: Pragma: no-cache
    header: Cache-Control: no-store
    header: Expires: -1
    header: X-Frame-Options: SAMEORIGIN
    header: Strict-Transport-Security: max-age=31536000;
includeSubDomains; preload
    WARNING: Juniper Network Connect support is experimental.
    It will probably be superseded by Junos Pulse support.
    Connected to 1.2.3.4:443
    SSL negotiation with vpn.example.org
    Connected to HTTPS on vpn.example.org
    Set up UDP failed; using SSL instead
    Connected as 5.6.7.8, using SSL, with ESP disabled

The only problem is, now we are using profiles, which means that if I
connect to this profile:

    https://vpn.example.org/admin

I will get more network access than if I just connect to:

    https://vpn.example.org/

But I don’t see any way to specify profiles to either juniper-vpn.py
or to openconnect itself.

I filed a Github issue to see if there is any way I could help add
profile support:

    https://github.com/russdill/juniper-vpn-py/issues/29

…but the maintainer hasn’t responded to it.

Has anyone figured out a way to select Juniper Pulse profiles using
openconnect, potentially combined with other helper scripts?

If not, if someone could provide a rough description of the work that
needs to be done to support them (either in openconnect or
juniper-vpn-py), I’d be willing to take a crack at it, as we need this
functionality.

_______________________________________________
openconnect-devel mailing list
openconnect-devel@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/openconnect-devel




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux