This repository has been archived by the owner on Apr 26, 2024. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add documentation for configuring a forward proxy. (#10443)
- Loading branch information
Showing
3 changed files
with
76 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Add documentation for configuration a forward proxy. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
# Using a forward proxy with Synapse | ||
|
||
You can use Synapse with a forward or outbound proxy. An example of when | ||
this is necessary is in corporate environments behind a DMZ (demilitarized zone). | ||
Synapse supports routing outbound HTTP(S) requests via a proxy. Only HTTP(S) | ||
proxy is supported, not SOCKS proxy or anything else. | ||
|
||
## Configure | ||
|
||
The `http_proxy`, `https_proxy`, `no_proxy` environment variables are used to | ||
specify proxy settings. The environment variable is not case sensitive. | ||
- `http_proxy`: Proxy server to use for HTTP requests. | ||
- `https_proxy`: Proxy server to use for HTTPS requests. | ||
- `no_proxy`: Comma-separated list of hosts, IP addresses, or IP ranges in CIDR | ||
format which should not use the proxy. Synapse will directly connect to these hosts. | ||
|
||
The `http_proxy` and `https_proxy` environment variables have the form: `[scheme://][<username>:<password>@]<host>[:<port>]` | ||
- Supported schemes are `http://` and `https://`. The default scheme is `http://` | ||
for compatibility reasons; it is recommended to set a scheme. If scheme is set | ||
to `https://` the connection uses TLS between Synapse and the proxy. | ||
|
||
**NOTE**: Synapse validates the certificates. If the certificate is not | ||
valid, then the connection is dropped. | ||
- Default port if not given is `1080`. | ||
- Username and password are optional and will be used to authenticate against | ||
the proxy. | ||
|
||
**Examples** | ||
- HTTP_PROXY=http://USERNAME:[email protected]:8080/ | ||
- HTTPS_PROXY=http://USERNAME:[email protected]:8080/ | ||
- NO_PROXY=master.hostname.example.com,10.1.0.0/16,172.30.0.0/16 | ||
|
||
**NOTE**: | ||
Synapse does not apply the IP blacklist to connections through the proxy (since | ||
the DNS resolution is done by the proxy). It is expected that the proxy or firewall | ||
will apply blacklisting of IP addresses. | ||
|
||
## Connection types | ||
|
||
The proxy will be **used** for: | ||
|
||
- push | ||
- url previews | ||
- phone-home stats | ||
- recaptcha validation | ||
- CAS auth validation | ||
- OpenID Connect | ||
- Federation (checking public key revocation) | ||
|
||
It will **not be used** for: | ||
|
||
- Application Services | ||
- Identity servers | ||
- Outbound federation | ||
- In worker configurations | ||
- connections between workers | ||
- connections from workers to Redis | ||
- Fetching public keys of other servers | ||
- Downloading remote media | ||
|
||
## Troubleshooting | ||
|
||
If a proxy server is used with TLS (HTTPS) and no connections are established, | ||
it is most likely due to the proxy's certificates. To test this, the validation | ||
in Synapse can be deactivated. | ||
|
||
**NOTE**: This has an impact on security and is for testing purposes only! | ||
|
||
To deactivate the certificate validation, the following setting must be made in | ||
[homserver.yaml](../usage/configuration/homeserver_sample_config.md). | ||
|
||
```yaml | ||
use_insecure_ssl_client_just_for_testing_do_not_use: true | ||
``` |