OpenVpn stack service to synchronise IAM and OpenVpn Users.
Golang binary running on openvpn server as a service. Check at interval if all users in a specific IAM group have a valid openvpn connexion. If they are not allowed on the vpn, users are added to openpvn, a client configuration can be uploaded to a s3 bucket, and a presign-url can be send by mail with SES. Users having a valid openvpn configuration but not present in the IAM group will see their access revoked, client configuration file and S3 uploaded file are deleted.
debug
: Enable debug logging, default : falseconfig
: Path to toml configuration file, default: ./config.tomlenv
: Environment, required
key | Details | Default\Required |
---|---|---|
settings | ||
dry-run | Enable Dry-run (disable openvpn file change) | false |
request-interval | Internal loop for synchronization in seconds | 300 |
s3-upload | Activate S3 upload of openvpn configuration | true |
sender | Default mail from | required when send-mail is true |
send-mail | Activate SES to send presign-url | true |
use-fqdn | Use fqdn instead of ip in configuration | false |
openvpn | ||
easy-rsa-path | path from root to easy-rsa directory | /etc/openvpn/server/easy-rsa |
key-directory | name of directory in easy-rsa that holds keys | pki |
server-path | path from root to openvpn server | /etc/openvpn/server |
aws | ||
profile | aws profile to assume | none |
region | aws region | eu-central-1 |
s3-bucket-name | aws s3 bucket name | required |
vpn-group | aws IAM group name | required |
assume-role | aws assume role | none |
[settings]
request-interval = 10
s3-upload = false
send-mail = false
dry-run = true
[openvpn]
easy-rsa-path = "./easy-rsa"
server-path = "./easy-rsa"
[aws]
vpn-group = "tf-vpn-sandbox"
profile = "master"
region = "eu-central-1"
s3-bucket-name = "tf-vpn-config"
AWS_OPENVPN_UPDATER_VERSION=1.0.0
wget -c https://github.com/FinalCAD/vpn-stack/releases/download/$AWS_OPENVPN_UPDATER_VERSION/aws-openvpn-updater_Linux_x86_64.tar.gz && sudo tar -xzf aws-openvpn-updater_Linux_x86_64.tar.gz -C /etc/awsopenvpnupdater/
chmod +x /etc/awsopenvpnupdater/aws-openvpn-updater
sudo systemctl restart awsopenvpnupdater.service