Reverse proxies worden gebruikt als tussenliggende netwerkcomponent om servers van openbare online diensten te beveiligen. Ze accepteren serververzoeken namens de servers en sturen deze door naar de gebruikers.

Hoe werkt een reverse proxy?

In wezen fungeert een proxyserver als een communicatie-tussenpersoon in het netwerk, die verzoeken ontvangt en deze namens de client doorgeeft aan een doelserver. Een reverse proxy bevindt zich tussen clients (bijvoorbeeld webbrowsers) en backend-servers (bijvoorbeeld webservers, databaseservers of applicaties). Deze wordt geactiveerd wanneer een client een verzoek indient en bepaalt of en naar welke interne servercomponent het verzoek moet worden doorgestuurd. Het proces verloopt in vier basisstappen:

  1. Ontvangst van het verzoek van de klant: De reverse proxy accepteert HTTP-, HTTPS- of andere verzoeken, zoals FTP of WebSocket.
  2. Analyseren van het verzoek: De proxy controleert of het verzoek geldig is, of het veiligheidsrisico’s met zich meebrengt en of er een cacheversie beschikbaar is.
  3. Doorsturen naar de juiste server: Als het verzoek niet vanuit de cache kan worden beantwoord, stuurt de reverse proxy het verzoek naar een van de interne servers.
  4. Reactie naar de client: De reverse proxy ontvangt de reactie van de backend-server, verwerkt deze indien nodig verder (bijv. versleuteling) en stuurt deze terug naar de aanvragende client.
Afbeelding: Schematic representation of a reverse proxy
Reverse proxy and web server are located in a shared internal network

Wat is het verschil met forward proxies?

Terwijl reverse proxies, zoals eerder vermeld, tussen clients en backend-servers worden geplaatst, bevinden forward proxies zich tussen clients en het internet. Een forward proxy kanaliseert alle clientverzoeken en stuurt deze met zijn eigen afzenderadres door naar de doelservers op het internet. Serverreacties komen ook eerst bij de proxy terecht voordat ze naar de respectieve clientapparaten worden gestuurd. Deze blijven anoniem, tenzij het een transparante proxy betreft. Terwijl een forward proxy clients in het interne netwerk beschermt tegen externe bedreigingen, beveiligt een reverse proxy servers in een openbaar netwerk en optimaliseert deze hun toegankelijkheid.

Terwijl reverse proxies duidelijke voordelen bieden voor serverstructuren door middel van functies zoals load balancing en verschillende beveiligingsfuncties, liggen de sterke punten van forward proxies in de bescherming van de client.

Afbeelding: Schematic representation of a forward proxy
Unlike a reverse proxy, the forward proxy is located in a shared internal network with the clients.

Toepassingsgebieden voor reverse proxies

Door clientverzoeken te bundelen, kunnen reverse proxies het inkomende verkeer nauwkeurig controleren. Dit maakt het onder andere mogelijk om meerdere servers onder dezelfde URL aan te bieden, verzoeken gelijkmatig over verschillende servers te verdelen en het ophalen van gegevens te versnellen door middel van caching. Hieronder staan de belangrijkste toepassingsgebieden voor een reverse proxyserver.

Load balancing

Een reverse proxy die vooraan wordt geplaatst, maakt het mogelijk om een URL te koppelen aan verschillende servers in het privé-netwerk. Hierdoor worden inkomende verzoeken over meerdere servers verdeeld. Deze load balancing voorkomt overbelasting van individuele systemen en compenseert bij storingen. Als een server onbereikbaar is vanwege hardware- of softwarefouten, verdeelt de load balancing-module van de proxy de inkomende verzoeken over de overige servers. Dit zorgt ervoor dat de serverservices ook tijdens storingen beschikbaar blijven.

Caching

Om serverservices te versnellen, kunnen reverse proxies een functie bieden waarmee veelgevraagde content in de cache kan worden opgeslagen. Door deze caching kan de proxyserver herhaalde verzoeken geheel of gedeeltelijk zelfstandig beantwoorden. Statische inhoud zoals afbeeldingen of CSS-stylesheets worden opgeslagen in de cache van de proxy. Hierdoor hoeft er weinig tot geen data te worden opgehaald van de backend-server, wat de toegangssnelheid tot webservices aanzienlijk versnelt. Omdat snel veranderende inhoud echter niet altijd garandeert dat de cache van de proxy de huidige versie bevat, bestaat het risico dat verouderde informatie wordt geleverd aan verzoekende clients.

Beschermings- en veiligheidsmaatregelen

Een reverse proxy fungeert als een soort schild voor de backend-servers en kan in deze rol verschillende beveiligingsfuncties bieden:

  • DDoS-bescherming: Reverse proxies kunnen verdacht of ongewoon hoog verkeer tijdens DDoS-aanvallen detecteren en blokkeren voordat het de backend-servers bereikt.
  • Web Application Firewall (WAF): Veel reverse proxies bevatten een WAF die kwaadaardige verzoeken zoals SQL-injecties of Cross-Site Scripting (XSS) kan filteren.
  • IP-whitelisting en blacklisting: De reverse proxy kan bepaalde IP-adressen blokkeren of indien nodig alleen verbindingen van specifieke netwerken toestaan.
  • Verbergen van backend-servers: De reverse proxy voorkomt dat de interne IP-adressen van de backend-servers openbaar zichtbaar zijn, waardoor aanvallen moeilijker worden.

Versleuteling

Om de belasting van backend-servers te verminderen, kunnen ook reverse proxy-servers worden gebruikt voor versleuteling. In dit geval wordt het SSL/TLS-verzoek van de client (bijvoorbeeld een HTTPS-verbinding) ontsleuteld, worden de ontsleutelde gegevens doorgestuurd naar de backend-servers en wordt het bijbehorende antwoord opnieuw versleuteld teruggestuurd naar de client. De interne communicatie kan zowel versleuteld als onversleuteld plaatsvinden.

Anonimisering

Een reverse proxy kan ook worden gebruikt om verkeer te anonimiseren door de oorspronkelijke IP-adressen van de clients te maskeren of te vervangen door zijn eigen IP-adressen. Dit helpt de privacy van de clients te beschermen, aangezien de werkelijke IP-adressen niet zichtbaar zijn in de logbestanden. Bovendien maakt dit geo-load balancing mogelijk: verzoeken kunnen worden doorgestuurd naar de dichtstbijzijnde server, afhankelijk van de geografische locatie van de gebruiker.

Compressie

Met de juiste software kan een reverse proxy worden gebruikt om inkomende en uitgaande gegevens te comprimeren. Een populair programma voor het comprimeren van websites is gzip, dat vaak wordt gebruikt in combinatie met de webservers Apache of NGINX.

Ga naar hoofdmenu