Mar.19

Naar het web via een lokale proxy

Een website benaderen via de infrastructuur van de werkgever is meestal niet zo’n heel groot probleem. Bij de klant waar ik op dit moment werkzaam ben had ik tot voor kort echter een vervelend probleempje. Bij het opstarten van mijn browser maakt deze contact met de proxy server via NTLM autorisatie. Dat betekent in dit specifieke geval dat er niet alleen een username, password aan de proxy server moet worden doorgegeven maar ook een domein. Internet Explorer ondersteund NTLM dus dat is niet echt een probleem. Vervelend is wel, maar niet onoverkomelijk, dat elke keer bij het opstarten van de browser om een gebruikersnaam, wachtwoord en domeinnaam wordt gevraagd om met de proxy server te kunnen verbinden.

Nu bedacht ik mij onlangs dat RSS-feeds lezen toch wel heel handig zou zijn tijdens mijn werk. Er zijn echter nauwelijks RSS readers die NTLM autorisatie ondersteunen. De enige die ik kon vinden was Pluck die zichzelf integreerd in de browser. In Pluck is het mogelijk om bij de username ook een domein op te geven dus “domeinusername”. Persoonlijk vind ik de gebruikersinterface niet niet heel handig bovendien crashte hij al binnen 5 minuten. Tja, wat nu?

Een alerte collega attendeerde mij op de NTLM proxy van Dmitry Rozmanov. Dit is een in Python geschreven proxy server die lokaal draaien. Je hoeft er niet heel veel voor te doen. Python moet worden geinstalleerd en de NTLM proxy moeten worden neergezet en geconfigureerd. In het config bestand van de proxy kunnen de parent proxy gegevens worden ingevoerd en de poort waarop de lokale proxy moet draaien kan worden aangegeven. Daarna moet de browser gebruik gaan maken van deze nieuwe proxy om te zorgen dat het vervelende inlog scherm voor de proxy server verdwijnt. Vervolgens kan elke RSS reader gebruik gaan maken van deze nieuwe lokale proxy om feeds op te halen. Toepassingen zijn legio, zo kan bijvoorbeeld ook gebruik worden gemaakt van webservices etc…

Hieronder vindt je een stappenplan voor het installeren van de NTLM proxy in de bovengenoemde situatie.

  • Download de laatste versie van Python via www.python.org.
  • Installeer Python en onthoud het pad waar Python wordt geinstalleerd, die is zodadelijk nodig voor de configuratie van de NTLM Authorization Proxy Server (APS).
  • Download hier de NTLM APS.
  • Open het bestand runserver.bat dat in de NTLM APS directory aanwezig is.
  • Pas de volgende regel aan (indien nodig) zodat deze verwijst naar de python executable:
  • @echo off
    "C:Python24python.exe" main.py

  • Open het bestand server.cfg en pas de volgende sleutels aan:
  • LISTEN_PORT = de poort waarop de lokale server bereikbaar moet zijn. Deze waarde kan zelf worden gekozen. Kies in iedergeval een poortnummer boven de 1024.
  • PARENT_PROXY = het ip-address van de originele proxy server
  • PARENT_PROXY_PORT = de poort waar
  • op de originele proxy draait.
  • ALLOW_EXTERNAL_CLIENTS = 1 als je de proxy wilt delen met andere pc’s, anders 0
  • NT_HOSTNAME = Domeinnaam voor autorisatie op de originele proxy
  • USER = Gebruikersnaam voor autorisatie op de originele proxy
  • PASSWORD = Wachtwoord voor autorisatie op de originele proxy
  • Vervolgens kan de server nu worden gestart door runserver.bat op te starten
  • Bij succesvol starten van de server zal er een console applicatie worden gestart met de informatie die ongeveer overeenkomt met onderstaande gegevens:

    NTLM authorization Proxy Server v0.9.9.0.1
    Copyright (C) 2001-2004 by Dmitry Rozmanov and others.
    Now listening at MYPC on port 6080

  • Pas in de browser en alle andere applicaties die hiervan gebruikt gaan maken de proxy settings zodanig aan dat deze kijkt naar de lokale proxy. Dus het proxy address is 127.0.0.1 of “localhost” en de poort is de waarde die is ingevoerd bij LISTEN_PORT in de server.cfg van NTLM APS.
  • Voila, je eigen lokale proxy is in de lucht, de autorisatie wordt automatisch geregeld. Alle applicaties met proxy ondersteuning kunnen nu het internet op. Let wel op dat de server.cfg niet in verkeerde handen valt aangezien daarin de proxy credentials zijn opgenomen.

    Deel dit Verhaal:
    • facebook
    • twitter
    • gplus

    Over Ton Snoei

    Een enthousiaste ontwikkelaar in de allerbreedste zin van het woord.

    Het aansturen maar vooral coachen van mensen geeft me veel plezier en een leuke uitdaging. Ik houdt me graag bezig met het bouwen van software maar ook met alle anderen dingen die komen kijken bij het vak dat IT heet.

    Met als achtergrond ontwikkelaar heb ik veel ervaring met C# .NET en alles wat daarbij komt kijken. Deze kennis komt nog regelmatig goed van pas. Mijn liefde voor ontwikkeling van software is nooit verdwenen en heb mij daarom in het afgelopen jaar meer verdiept in Java, Android, iOS/iPhone/iPad (Monotouch/Xamarin), PHP en Unity 3D development. Ik noem dat altijd maar: "Lego-spelen voor grote mensen" ;-)

    Kortom van de grote lijnen naar projecten tot hands-on problem solven.

    Laat een reactie achter

    Comment