Proxy Protocol
The Proxy Protocol is an HAProxy Technologies protocol that safely transports connection information, such as a client’s IP address, through multiple proxy layers.
DS servers support v1 and v2.
When and why to use the proxy protocol
DS servers have authorization features that rely on information about the client application connection, such as the client IP address and the security strength factor (SSF). DS ACIs, and lists of allowed, restricted, and denied clients use this information, for example.
When running DS behind a software load balancer, such as HAProxy, or AWS Elastic Load Balancing, the load balancer does network address translation. The load balancer connects to the DS server, and the DS does not have access to the client application connection. Cloud deployments often use a load balancer in this way.
Software load balancers that implement the proxy protocol can transfer the original client connection information through the protocol to the DS server. If your deployment uses a software load balancer and any features that rely on client connection information, enable the protocol in the load balancer, and configure proxy protocol support in DS.
Configure proxy protocol support
By default, support for the proxy protocol is disabled. You must enable and configure the feature.
Connections | Configuration |
---|---|
All client application traffic traverses the load balancer |
Use the |
Some applications access DS directly |
Create a dedicated LDAPS connection handler for the load balancer. Use the create-connection-handler command, and set these properties in the connection handler configuration: |
Once you set proxy-protocol-enabled:true
,
make sure you include all the load balancers in the list of proxy-protocol-allowed-client
values.
DS or the connection handler you configured accepts only connections from these allowed clients,
and only if they use the proxy protocol.
Secure connections
-
If you configure the load balancer to connect to DS securely, using LDAPS or StartTLS, then you must configure the load balancer to listen only for secure client connections as well.
Otherwise, the deployment becomes vulnerable, as there is no way to prevent the client from starting with an insecure connection to the load balancer.
-
To communicate the client SSF from the load balancer to DS, the load balancer must use v2 of the proxy protocol, and you must enable transmission of Type-Length-Value (TLV) vectors for secure connections.
For example, if you use HAProxy, set send-proxy-v2-ssl.
-
For clients that use StartTLS or certificate-based authentication (SASL EXTERNAL), the load balancer must forward the connection to DS. The load balancer must not terminate the secure connection.