Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ajm113/unix-aws-vpn-client
Unix friendly AWS vpn client. (Extremely WIP! Expect things to break or move around! Will do my best to update README when I can.) This repo is technically a fork of: https://github.com/samm-git/aws-vpn-client
https://github.com/ajm113/unix-aws-vpn-client
aws linux mac openvpn unix vpn
Last synced: 16 days ago
JSON representation
Unix friendly AWS vpn client. (Extremely WIP! Expect things to break or move around! Will do my best to update README when I can.) This repo is technically a fork of: https://github.com/samm-git/aws-vpn-client
- Host: GitHub
- URL: https://github.com/ajm113/unix-aws-vpn-client
- Owner: ajm113
- License: mit
- Created: 2022-07-09T06:39:38.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-03T19:56:13.000Z (5 months ago)
- Last Synced: 2024-07-13T09:12:42.212Z (4 months ago)
- Topics: aws, linux, mac, openvpn, unix, vpn
- Language: Go
- Homepage:
- Size: 46.9 KB
- Stars: 1
- Watchers: 2
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Unix AWS VPN Client
*Connects to AWS Client VPN with OSS OpenVPN using SAML authentication for Unix environments. Linx, Mac, BSD. Forked from @samm-git's aws-vpn-client.*
See [samm-git's blog post](https://smallhacks.wordpress.com/2020/07/08/aws-client-vpn-internals/) for the implementation details.
[AWS released Linux desktop client](https://aws.amazon.com/about-aws/whats-new/2021/06/aws-client-vpn-launches-desktop-client-for-linux/), however, it's extremely buggy and
doesn't provide useful logging. Supposedly works on Ubuntu...## Install
*Please make sure you have Go 1.17+ installed on your system*
### Building Client
1. `$ git clone https://github.com/ajm113/unix-aws-vpn-client.git`
2. `$ cd unix-aws-vpn-client`
3. `go build .`
4. `cp ./unix-aws-vpn-client {TO a DIR that's listed in your $PATH or whatever your personal preference is}`### Setting Up
1. Inside the root directory run `./unix-aws-vpn-client setup`.
2. Let it run until it spits out `openvpn_aws` executable. -- You may need to install required dependencies that compiler prints out if it stops.
3. Move `openvpn_aws` to a directory of your choosing.
4. Copy/paste this template into your `awsvpnclient.yml` inside `~/.config/awsvpnclient/` folder:```yml
debug: false # Prints useful debugging information
browser: false # Opens the web browser for auth step. Works a little wonky on some distros.
vpn:
openvpn: {path to your openvpn_aws} # Path to openvpn_aws binary.
sudo: /bin/sudo # Sudo command to run when establishing a tunnel to AWS. (default is fine for most distros)
shell: /bin/sh # bash/shell command when establishing a tunnel to AWS. (default is fine for most distros)
shellargs: # bash/shell commands to add when executing shell commands. (default is fine for sh)
- "-c"
server:
addr: "127.0.0.1:35001" # SAML Server listen address after auth redirect. (default is fine for most setups)```
### Running Tunnel
After everything is compiled and setup. All you have to do now is run:
```bash
$ unix-aws-vpn-client start --config myvpnfile.ovpn
```After you successfully authenticated (and sudo login) you should now have a tunnel to AWS.
## Todo
* Unit Tests
* Cleaner Code