- Role-based, attribute-based, & just-in-time access to infrastructure
- Connect any person or service to any infrastructure, anywhere
- Logging like you've never seen
Many businesses use proxy servers to route and secure traffic between networks. There’s often confusion, however, on how this differs from a reverse proxy. In this post, we’ll dissect the two concepts and explain how administrators can use a reverse proxy for easy access management control.
What Is a Forward Proxy (Proxy Server)?A proxy server, sometimes referred to as a forward proxy, is a server that routes traffic between client(s) and another system, usually external to the network. By doing so, it can regulate traffic according to preset policies, convert and mask client IP addresses, enforce security protocols, and block unknown traffic.
Systems with shared networks, such as business organizations or data centers, often use proxy servers. Proxy servers expose a single interface with which clients interact without having to enforce all of the policies and route management logic within the clients themselves.
What Is a Reverse Proxy?
A reverse proxy is a type of proxy server. Unlike a traditional proxy server, which is used to protect clients, a reverse proxy is used to protect servers. A reverse proxy is a server that accepts a request from a client, forwards the request to another one of many other servers, and returns the results from the server that actually processed the request to the client as if the proxy server had processed the request itself. The client only communicates directly with the reverse proxy server and it does not know that some other server actually processed its request.
A traditional forward proxy server allows multiple clients to route traffic to an external network. For instance, a business may have a proxy that routes and filters employee traffic to the public Internet. A reverse proxy, on the other hand, routes traffic on behalf of multiple servers.
A reverse proxy effectively serves as a gateway between clients, users, and application servers. It handles all the access policy management and traffic routing, and it protects the identity of the server that actually processes the request.
Reverse proxy configuration
By routing client traffic through a reverse proxy, admins can simplify security administration. They can configure backend servers to only accept traffic directly from the proxy and then configure the granular access control configurations on the proxy itself.
For example, admins can configure the reverse proxy’s firewall to whitelist or blacklist specific IP addresses. All existing servers behind the proxy will be protected accordingly, and whenever admins add a new backend server to the network that is configured to only accept requests from the proxy server, the new backend server is protected according to the proxy configuration.
Using a reverse proxy can also allow administrators to easily swap backend servers in and out without disrupting traffic. Because clients interact directly with the proxy, they only need to know its hostname and don't need to worry about changes to the backend network topology. In addition to simplifying client configuration, an admin can configure a reverse proxy to load-balance traffic so that requests can be more evenly distributed to the backend servers and improve overall performance.
Forward Proxy vs. Reverse Proxy: What's the Difference?
A forward proxy deals with client traffic, regulating and securing it. In contrast, a reverse proxy shields servers by handling client requests, ensuring they reach the right server, and returning the results to clients, who are unaware of the server's direct involvement.
In other words, the main difference between a forward proxy and a reverse proxy lies in their primary functions and the direction of traffic flow. A forward proxy, also known as a proxy server, operates between clients and external systems, regulating traffic, masking client IP addresses, and enforcing security policies.
On the other hand, a reverse proxy is positioned between clients and servers, acting as a protective barrier for servers by accepting client requests, forwarding them to the appropriate server, and returning the results to the client. Unlike a forward proxy, the client is unaware that another server has processed its request, as the reverse proxy handles the communication and appears to the client as the sole point of contact.
Use Case: Onboarding and Off-boarding
When onboarding a new user to a network, administrators must configure access control and firewalls to ensure the user can access the appropriate resources. Traditionally, an admin has to configure each server for which users need access. In a large organization with many servers, this can be a time-consuming and error-prone process.
However, with a reverse proxy, administrators can configure the access rights directly on the proxy server and have the user route all traffic through it. As such, the backend servers only need to trust and communicate with the proxy directly. This greatly simplifies the configuration process and helps ensure access is granted and revoked correctly by doing so through a single source.
Setting up a Reverse Proxy for Access Management
While a reverse proxy can greatly simplify the process of managing access to a network, setting it up and configuring it properly can get complicated. It requires provisioning the host with appropriate specifications, configuring the operating system and firewall, deciding on which proxy software to use (such as NGINX or HAProxy), enumerating and configuring the downstream servers in the proxy configuration files, setting up audit logging, and configuring the firewalls in all the downstream servers.
An administrator will need to optimize the proxy software to adjust for performance and availability requirements. For example, when a downstream server fails, the admin should configure the proxy server to quickly reroute traffic to avoid downtime.
At scale, the out-of-the-box configurations are rarely sufficient, so testing becomes important. Whenever the configurations change, you’ll need a way to run sufficient load against a representative test environment and closely monitor the impact on both performance and availability to verify that configurations will meet the needs of the production environment.
Building a Reverse Proxy by Hand vs. Buying Software
Given all the steps involved in implementing, testing, and optimizing a reverse proxy, you may choose to buy software that can provide this functionality without all the custom work. Access management software can provide all of this functionality while also managing ongoing maintenance and user management.
In addition to providing standard reverse proxy capabilities, access management software affords a number of unique benefits:
1) Flexibility with user access. By abstracting away the complexity of firewalls and access control, access management software can provide higher-level concepts like user groups. This functionality makes it easy for admins to assign and remove users from various predefined groups and allows the software to automatically implement access policies.
2) Designed to boost reliability. In distributed systems, servers can fail, and network interruptions may occur. Access management software easily detects failed servers and reroutes traffic to working ones to avoid any noticeable downtime for users.
3) Load balancing capabilities. Single servers may struggle when hit with a large amount of traffic, which degrades performance and increases request latency. Access management software can help to manage traffic and balance the load across all servers, making sure it’s evenly distributed.
Managing Access with StrongDM
The StrongDM control plane is a proxy-based solution that simplifies authentication and authorization for admins. It routes all database and server connections through its protocol-aware proxy over a TLS 1.2 secure TCP connection, and it handles load balancing and automatic failover to provide high availability. The proxy validates user sessions and permissions and then intelligently routes the session to the target database or server through the most efficient path, logging all traffic along the way.
StrongDM extends the single sign-on capabilities of your identity provider, allowing you to authenticate users to any server or database. From the Admin UI, you can view connected resources and manage role-based access control for your users. See for yourself with a free, 14-day trial.
To learn more about how StrongDM helps companies with offboarding, make sure to check out our Offboarding Use Case.
About the Author
Justin McCarthy, Co-founder / CTO, originally developed empathy for Operations as a founding and pager-carrying member of many operations and data teams. As an Executive, he has led Engineering and Product in high-throughput and high-stakes e-Commerce, financial, and AI products. Justin is the original author of StrongDM's core protocol-aware proxy technology. To contact Justin, visit him on Twitter.