Pomerium is an open-source tool that provides a secure access proxy to your internal applications. Here are the steps to install Pomerium on OpenBSD:
$ pkg_add go
$ echo "export PATH=$PATH:/usr/local/go/bin" >> .profile
$ source .profile
$ pkg_add git
$ git clone https://github.com/pomerium/pomerium.git
$ cd pomerium
$ go build
$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout pomerium.key -out pomerium.crt
$ touch config.yaml
Here's an example configuration file:
---
authenticate_service_url: https://auth.example.com
client_id: pomerium
client_secret: secret
cookie_secret: some-secret-key
default_upstream_timeout: 30s
idp:
provider: google
client_id: google-client-id
client_secret: google-client-secret
service_account: path/to/gcp-service-account.json
service_account_project_id: google-project-id
service_account_subject: google-subject@domain.com
scopes:
- email
- profile
listen_address: :8443
log_level: debug
routes:
- from: oauth2
to: https://oauth2.googleapis.com
allow_websockets: true
- from: /
to: http://app-server:8080
allow_websockets: true
tls_cert_file: /path/to/pomerium.crt
tls_key_file: /path/to/pomerium.key
$ ./pomerium --config config.yaml
That's it! You should now have a Pomerium access proxy running on your OpenBSD machine.
If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!
Alternatively, for the best virtual desktop, try Shells!