• Stars
    star
    205
  • Rank 191,264 (Top 4 %)
  • Language
    Ruby
  • License
    MIT License
  • Created over 4 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Connect to the AWS Client VPN with SAML using OSS Client

aws-vpn-client

This is PoC to connect to the AWS Client VPN with OSS OpenVPN using SAML authentication. Tested on macOS and Linux, should also work on other POSIX OS with a minor changes.

See my blog post for the implementation details.

P.S. Recently AWS released Linux desktop client, however, it is currently available only for Ubuntu, using Mono and is closed source.

Content of the repository

How to use

  1. Build patched openvpn version and put it to the folder with a script
  2. Start HTTP server with go run server.go
  3. Set VPN_HOST in the aws-connect.sh
  4. Replace CA section in the sample vpn.conf with one from your AWS configuration
  5. Finally run aws-connect.sh to connect to the AWS.

Additional Steps

Inspect your ovpn config and remove the following lines if present

  • auth-user-pass (we dont want to show user prompt)
  • auth-federate (propietary AWS keyword)
  • auth-retry interact (do not retry on failures)
  • remote and remote-random-hostname (already handled in CLI and can cause conflicts with it)

Todo

Better integrate SAML HTTP server with a script or rewrite everything on golang