donker proxyscrape logo

Wat is een transparante proxy?

Proxies, 04-04-20215 min gelezen

We kunnen een transparante proxy definiëren als een server die fungeert als een intermediair systeem dat de verbinding tussen een eindgebruiker en een inhoudsaanbieder onderschept. Andere namen voor transparant proxy zijn inline proxy of geforceerd proxy. We gebruiken het woord 'transparant' voor proxy omdat het verzoeken onderschept door pakketten te onderscheppen die naar de bestemming worden geleid, waardoor het lijkt alsof de bestemming zelf het verzoek afhandelt. Transparant proxies wordt ingesteld door de website of netwerkbeheerder en niet door de eindgebruiker.

Soms gebruiken we ook de term 'geforceerd proxy' voor een transparante proxy. De reden hiervoor is dat deze kan worden toegepast op de verbinding van een gebruiker zonder de instellingen van zijn computer proxy te wijzigen. Transparante proxies kan dus aan gebruikers worden opgedrongen zonder hun toestemming, maar ze weten in veel gevallen wel dat ze er zijn. 

Voorbeelden van Transparant Proxies

Een firewall is een voorbeeld van een transparante proxy die verkeer toelaat tussen een intern netwerk en het Internet, maar verkeer blokkeert als het de regeltabel van de firewall overtreedt.

Andere voorbeelden van transparante proxies zijn content delivery networks (CDN's). Ze bieden redundantie, caching en verbeteren de snelheid zonder het bronsysteem te wijzigen of bloot te leggen. De gebruiker denkt dat hij rechtstreeks verbonden is met de serviceprovider, maar in werkelijkheid behandelt het CDN al zijn verzoeken. Dit is hoe techbedrijven zoals Google, Twitter en Facebook miljoenen aanvragen beheren met minimale downtime.

Veelgebruikte transparante Proxy instellingen

Dit zijn de standaard transparante proxy instellingen wanneer we het instellen:

  • Authenticatie: Het voorziet de server van dezelfde referenties als de gebruikers achter de proxy.
  • Onderschepping: Dit definieert hoe de transparante proxy het verkeer onderschept op het niveau van de router of het besturingssysteem.
  • Caching: geeft aan of de proxy server inhoud moet cachen voor terugkerende gebruikers.
  • Omgekeerde proxy: In plaats van de proxy in te stellen om toegang op afstand te onderscheppen, kunnen we deze voor een webserver plaatsen om de gebruikersprestaties te versnellen. 
  • Datastreaming, Chatfiltering: We kunnen de transparante proxy configureren zodat de gebruikers geen toegang krijgen tot specifieke poorten of protocollen.

Transparant Proxy Gebruikt - Clientzijde

We kunnen een transparante proxy aan de client-kant implementeren, wat betekent dat de proxy al het verkeer van en naar een client-eindpunt onderschept. De toepassingen van transparante proxies op de client zijn:

Transparante cache

Wanneer meerdere mensen toegang hebben tot dezelfde inhoud vanuit hetzelfde gebied of dezelfde locatie - bijvoorbeeld wanneer meerdere studenten dezelfde nieuwssite bekijken via hun universiteitsnetwerk, dan is het efficiënter om een transparante proxy te gebruiken om de inhoud eerst te cachen en vanuit de cache te serveren aan volgende gebruikers.

Authenticatie

Exploitanten van mobiel internet en openbare wifispots gebruiken soms transparant proxies om gebruikers te dwingen zich te authenticeren op het netwerk en akkoord te gaan met hun servicevoorwaarden. Ze mogen alleen surfen als de gebruiker zich certificeert en akkoord gaat met de voorwaarden. 

De meeste gebruikers hebben er geen idee van dat de hele verbinding kan worden onderschept en gemonitord door de operator, zelfs na het eerste authenticatiescherm via transparant proxy.

Verkeersmonitoring

Wanneer we een netwerk beheren, kunnen we een transparante proxy opzetten om het verkeer en gedrag van gebruikers te monitoren, maar het monitoren van verkeer heeft ook veel onwettige toepassingen. Een gewetenloze en onbetrouwbare openbare wifi-operator kan bijvoorbeeld eenvoudig de verbindingen van gebruikers monitoren en referenties en gegevens stelen.

Gateway Proxies

We kunnen een gateway proxy gebruiken om netwerkverkeer aan te passen of te blokkeren op basis van regels. Een voorbeeld van een gateway proxy is een transparante firewall proxy besproken in het bovenstaande voorbeeld.

Inhoud filteren

We kunnen ook een transparante proxy gebruiken om onnodige en ongewenste inhoud uit te filteren. De proxy kan bijvoorbeeld afzien van het doorsturen van het verzoek naar de webserver wanneer een specifieke website wordt opgevraagd. In plaats daarvan onderschept het de verbinding en geeft het een melding of foutmelding weer aan de gebruiker.

Transparant Proxy Gebruikt - Serverzijde

Bescherming tegen Denial of Service (Dos)

We kunnen een server beschermen tegen een SYN-flood Denial of Service (DoS) aanval door gebruik te maken van een type transparante proxy , TCP intercept. Het onderschept al het verkeer naar een webserver, accepteert clientverzoeken en voert een driewegs handdruk uit. Als het onderscheppen van verkeer succesvol is, voert het bovendien een drieweg handdruk uit met de server, waardoor de twee halve verbindingen tussen client en server worden verbonden.

Het Transmission Control Protocol onderschept de TCP verzoeken en wacht meestal 30 seconden om verbindingen tot stand te brengen. Het gaat in de "agressieve modus" wanneer het aantal inactieve verbindingen een bepaalde drempel overschrijdt. In deze modus zorgt elke nieuwe verbinding ervoor dat de oudste passieve verbinding wordt verwijderd.

De bovenstaande techniek is echter niet langer effectief tegen moderne, grootschalige DDoS-aanvallen (Distributed Denial of Service). Dit komt omdat de aanvallers tegenwoordig miljoenen zombiecomputers en krachtige servers controleren om SYN-vloeden te creëren die een TCP onderscheppingscontroller overweldigen.

Daarom maken de meeste organisaties tegenwoordig gebruik van cloud-gebaseerde diensten zoals DDoS Protection van Imperva. Deze diensten kunnen bescherming bieden tegen grote DDoS-aanvallen en ze kunnen ook on-demand opschalen, waardoor grootschalige aanvallen verder worden aangepakt en afgehandeld. 

DDoS-diensten kunnen bijvoorbeeld aanvallen van de applicatielaag en protocolaanvallen voorkomen die niet plaatsvinden op de TCP-laag.

CDN voor front-end optimalisatie

We kunnen een Content Delivery Network (CDN) definiëren als een wereldwijd gedistribueerd netwerk van proxy servers die inhoud leveren en in de cache plaatsen voor gebruikers in de buurt van hun geografische locatie.

Een voorbeeld van een CDN is Imperva's Global Content Delivery Network, een transparant proxy dat op de server draait. Het doel is om front-end optimalisatie uit te voeren om de ervaring van de eindgebruiker te verbeteren. Het onderschept verkeer naar een webserver en biedt dezelfde inhoud aan vanuit de servercache in plaats van de gebruiker rechtstreeks toegang te geven tot de server. Hierdoor worden de gebruikersprestaties verbeterd en de systeembronnen op de server verminderd.

Beperkingen van Transparant proxy

Hoewel transparant proxy een groot aantal voordelen heeft, kan het in complexe bedrijfsomgevingen tot frustraties leiden.

Gebrek aan robuustheid: Als er een verbinding tot stand wordt gebracht tussen een client en een cache en er vindt een routeringswijziging plaats waardoor de client een pad kiest dat niet langer door het "omleidende" netwerkapparaat loopt, dan wordt de sessie verbroken en moet de gebruiker de pagina opnieuw laden.

Aan de andere kant, als routers op het internet flapperen (een router adverteert afwisselend en snel achter elkaar een bestemmingsnetwerk), dan zullen de resultaten nog onvoorspelbaarder zijn.

Browserafhankelijkheid: De meeste transparante proxies zijn afhankelijk van de browser die de hostnaam van de origin server in de HTTP request header opgeeft voor een succesvolle werking.

Dit is nodig omdat deze caches geen toegang hebben tot het bestemmings-IP-adres van de origin server van het IP-adres van het pakket.

Daarom kunnen ze bij een cache misser niet achterhalen naar welk origin server adres het verzoek gestuurd moet worden.

Conclusie

We bespraken dat internetverkeer gemonitord en gefilterd kan worden door het gebruik van een transparante proxy. Het geeft ook vorm aan de manier waarop we met het web omgaan. Of het nu gegevens sneller doorstuurt door ongewenste inhoud eruit te filteren, door caching of door bedrijven meer controle over hun netwerk te geven, de transparante proxy voegt functionaliteit toe aan het internet zonder dat er ongemakken bijkomen.