@@ -33,9 +33,9 @@ Monitoring, alerting, log-collection and analysis, DNS and Let's Encrypt certifi
...
@@ -33,9 +33,9 @@ Monitoring, alerting, log-collection and analysis, DNS and Let's Encrypt certifi
- Backend: runs the application services that the reverse proxy talks to, it runs, among other things, the LEAP web API, the gateway selection service, and the infrastructure that provides monitoring and alerting.
- Backend: runs the application services that the reverse proxy talks to, it runs, among other things, the LEAP web API, the gateway selection service, and the infrastructure that provides monitoring and alerting.
- Gateway/s: These run openvpn and act as **VPN gateways, which ideally require two publicly addressable IP addresses, one for ingress and one for egress.**
- Gateway/s: These run openvpn and act as **VPN gateways, which ideally require two publicly addressable IP addresses, one for ingress and one for egress.**
- Bridge: runs an [obfsvpn](https://0xacab.org/leap/obfsvpn) service, can run on the same machine as the gateway.
- Bridge: runs an [obfsvpn](https://0xacab.org/leap/obfsvpn) service, can run on the same machine as the gateway.
To remove optional services, delete the import lines from config/services.common.yml and the corresponding tags from host.yml.
To remove optional services, comment out import lines from [config/services.common.yml](config/services.common.yml) and remove the corresponding tags from host.yml.
- Introducer(optional): runs as an obfsification proxy between client and reverse-proxy, used for reaching API from censored networks. (advised to run on port 443 to make it resemble with https)
- Introducer(optional): runs as an obfuscation proxy between client and reverse-proxy, used for reaching API from censored networks. (advised to run on port 443 to make it resemble with https)
For disabling this service: remove "services.introducer.yml" from config/services.common.yml and remove `[introducer]` tag on hosts.yml
For disabling this service: comment out `services.introducer.yml` from [config/services.common.yml](config/services.common.yml) and remove `[introducer]` tag on hosts.yml
## How to provision a new provider?
## How to provision a new provider?
...
@@ -136,15 +136,20 @@ You can control whether direct openvpn access is permitted for each gateway host
...
@@ -136,15 +136,20 @@ You can control whether direct openvpn access is permitted for each gateway host
Enabling this flag will mandate that users to use censorship-circumvention methods by default.
Enabling this flag will mandate that users to use censorship-circumvention methods by default.
It's important to note that direct connections to openvpn can be easily detected by intermediaries
It's important to note that direct connections to openvpn can be easily detected by intermediaries
You can tag any gateway hosts with below listed tag for scheduling respective obfuscation on gateway nodes
##### Configure bridges
supported `group_names`:
- bridge : for running traditional bridge
You can tag any gateway hosts with below listed tag for scheduling respective obfuscation on gateway nodes.
- bridge-kcp : for running kcp
Supported `group_names` are:
- bridge-quic : for running quic
-`bridge` : for running obfs4 bridge
- introducer : for running introducer (introducer always runs on port 443, with no extra configuration needed)
-`bridge-kcp` : for running obfs4+kcp
-`bridge-quic` : for running quic
-`bridge-hop`: for running obfs4 in hopping mode
-`bridge-hop-kcp`: for running obfs4+kcp in hopping mode
-`bridge-hop-quic`: for running quic in hopping mode
-`introducer` : for running introducer (introducer always runs on port 443, with no extra configuration needed)
For gateway hosts, use the variables below to run each app on specific ports. If not specified, the apps will use the default ports listed.
For gateway hosts, use the variables below to run each app on specific ports. If not specified, the apps will use the default ports listed.
```
```yaml
ports:
ports:
# for openvpn : the first port in the list will be used as the primary port for running openvpn service,
# for openvpn : the first port in the list will be used as the primary port for running openvpn service,
# with NAT rules forwarding traffic from other listed ports to this primary port.
# with NAT rules forwarding traffic from other listed ports to this primary port.
...
@@ -152,23 +157,26 @@ For gateway hosts, use the variables below to run each app on specific ports. If
...
@@ -152,23 +157,26 @@ For gateway hosts, use the variables below to run each app on specific ports. If
_NOTE:_ If you use IPv6 addresses uncomment and adapt the gateway example given in the section `gateway2`.
Finally, make sure the optional obfuscation services you want to use are not commented out in [config/services.common.yml](config/services.common.yml). Conversely, place a `#` in front of the lines of the optional services that you do not need.
##### IPv6
If you use IPv6 addresses uncomment and adapt the gateway example given in the section `gateway2`.
#### 3.2. Configure _config.yml_ :)
#### 3.2. Configure _config.yml_ :)
Edit _group_vars/all/config.yml_ and set your `domain_public` to the service domain name that you delegated (eg. `float.example.com`). The `domain` can be set to `infra.example.com` as this is the internally managed domain.
Edit _group_vars/all/config.yml_ and set your `domain_public` to the service domain name that you delegated (eg. `float.example.com`). The `domain` can be set to `infra.example.com` as this is the internally managed domain.