Ich muss einen reinen Verschlüsselungs-Proxyserver erstellen. Damit meine ich, dass der gesamte Internetverkehr der Laptops des Unternehmens von überall auf der Welt verschlüsselt und über diesen einzigen Server geleitet werden soll. Caching wäre nett, aber nicht erforderlich; die einzige Voraussetzung ist die Verschlüsselung zwischen Laptop und Server.
Wie kann ich dieses Setup erreichen? Ich habe mich über Squid informiert, aber nicht viele Informationen zur Verschlüsselung gefunden. Ich gehe davon aus, dass SSL oder SSH beteiligt sein werden, aber ich bin auf diesem Gebiet wirklich neu. Browser wären die Hauptnutzer der Verbindung, obwohl die Unterstützung von IM- und E-Mail-Clients auch nett wäre. Die Clients wären Windows und nix, während der Server alles Open Source sein könnte.
Bearbeiten:Es wurde klargestellt, dass ein VPN eine bessere Lösung als ein Proxy wäre. Bevor ich eine Antwort akzeptiere, könnte jemand Folgendes kommentieren:
Was passiert, wenn die Laptops an ein anderes Unternehmensnetzwerk angeschlossen sind? Die Berater sitzen beispielsweise im Büro der ABC Company. Sie müssen aus irgendeinem Grund eine Intranet-Site wie myabc.internal.com aufrufen. Ich glaube, Intranet-DNS-Server würden dies normalerweise richtig auflösen. Wenn ich mit diesem VPN verbunden bin, würde dies funktionieren? Ich verstehe, dass ein Browser, der eine Verbindung zu einem Proxy herstellt, dasselbe Problem hätte, aber Sie könnten zwei Browser haben: einen über einen Proxy, einen nicht. Oder wäre dies bei einem VPN kein Problem?
Antwort1
Ich stimme pjz zu – es hört sich an, als ob Sie nach einem VPN suchen.
OpenVPN ist eine großartige, kostenlose Methode, um mit VPNs zu beginnen. Es ist stabil und bereit für den Einsatz in der Produktion, aber auch wenn Sie es nicht verwenden, ist es ein gutes Tool, um sich mit VPNs vertraut zu machen. Es ist wirklich einfach, es mit statischen Schlüsseln einzurichten (zum Herumspielen) und nur geringfügig schwieriger, es mit Zertifikaten einzurichten (für den Einsatz in der Produktion).
- http://openvpn.net/static.html- Mini-HOWTO für statische Schlüssel. Aus Sicherheitsgründen nicht empfohlen, aber eine gute Möglichkeit, ein Gefühl dafür zu bekommen, wie OpenVPN funktioniert, bevor man sich in einfache PKI vertieft.
- http://openvpn.net/howto.html
Sie sprechen in Ihrer Frage von „Internetverkehr“, aber es ist unklar, ob damit nur das Surfen auf Websites gemeint ist oder buchstäblich der gesamte IP-Verkehr ins Internet. Sie können dem Client mit OpenVPN eine „Standard-Gateway“-Route übergeben, sodass sein internetgebundener Verkehr über die OpenVPN-„Pipe“ zum Server geleitet wird, der ihn dann ins Internet stellen kann.
Wenn Sie nur möchten, dass HTTP/HTTPS über OpenVPN geleitet wird (d. h. wenn sie PING senden, Skype ausführen usw., kann der Datenverkehr direkt ins Internet geleitet werden), könnten Sie auch etwas wie Squid Cache einsetzen und dann die Client-Browser so konfigurieren, dass sie diesen Proxy-Server verwenden, sodass der Datenverkehr zum Proxy nur über die OpenVPN-„Pipe“ geleitet wird (d. h. den Proxy auf eine über VPN erreichbare IP-Adresse setzen, aber das Standard-Gateway des Clients unverändert lassen). (Ich glaube, Sie könnten sogar ein „Push „DHCP-Option 252 ...“ ausführen, um eine URL zur automatischen Proxy-Konfiguration über OpenVPN an die Clients zu senden.)
Je nachdem, was Sie tun möchten, stehen Ihnen mehrere Optionen zur Verfügung.
Betreff: Ihr Kommentar an pjz zum Zugriff auf die Intranet-Site
Irgendwie werden Sie dafür den Preis bezahlen müssen.
Wenn Sie den gesamten Internetverkehr einfach über das VPN leiten, indem Sie das Standard-Gateway ändern, würde der gesamte Verkehr zu Webservern im Subnetz mit ihnen immer noch „direkt“ gehen. Wenn sich der Intranet-Webserver jedoch in einem anderen Subnetz befände, würde der Verkehr zu diesem Subnetz über die OpenVPN-Leitung statt zum Router vor Ort gehen. Das wäre schlecht.
Wenn Sie meinen obigen Vorschlag befolgen und ein Proxy-Autokonfigurationsskript über OpenVPN (oder auf andere Weise) an die Clients senden, können Sie in dieser Datei „Ausnahmen“ einfügen, damit die Clients „direkt“ gehen. Normalerweise mache ich das in Proxy-Autokonfigurationsdateien mit:
if ( isPlainHostName(host) ) { return "DIRECT"; }
Dies führt dazu, dass auf Hostnamen ohne Punkte direkt zugegriffen werden kann.
Wenn Sie einen bestimmten Host (oder ein Platzhalter-Übereinstimmungsmuster) kennen, auf den direkt zugegriffen werden muss:
if ( shExpMatch(url,"http://*.customer.com")) { return "DIRECT"; }
if ( shExpMatch(url,"http://known-intranet-server.customer.com")) { return "DIRECT"; }
Wenn Sie wissen, wo Ihre Benutzer arbeiten werden, können Sie im Voraus Ausnahmen in die Proxy-Autokonfigurationsdatei einfügen. Wenn nicht, müssen Sie sich jedoch reaktiv mit solchen Problemen befassen. Wenn Sie es jedoch nicht im Voraus wissen, verlangen Sie nach einer Lösung, die automatisch „das Richtige tun“ kann. Leider machen Computer das schrecklich. >smile<
Ich würde mir bei allem, was Sie bereitstellen, die zusätzliche Zeit nehmen, um Proxy-Autokonfigurationsdateien zu verwenden. Sie erhalten damit eine zentralisierte Methode (die „on the fly“ aktualisiert werden kann, ohne Client-Computer zu berühren), um die Umleitung des HTTP-Verkehrs zu einem Proxy-Server oder die direkte Weiterleitung ins Internet zu steuern. Sie sind für diese Art von Anwendung erstaunlich praktisch.
Antwort2
Klingt, als ob Sie lieber ein VPN als einen Proxy-Server möchten – oder zumindest lässt sich Ihr Ziel am einfachsten mit einem VPN-Server erreichen, mit dem alle Laptops verbunden sind. Ein Proxy-Server verschlüsselt (mit Ausnahme einiger bestimmter Anwendungsserver) den Datenverkehr zwischen seinen Clients und sich selbst nicht, während dies die Daseinsberechtigung eines VPN-Servers ist.
Was die VPN-Server selbst betrifft, hatte ich viel Glück mitOpenVPNmit Linux-, Windows- und Mac-Clients.
Antwort3
„Ich möchte, dass der gesamte Internetverkehr der Laptops des Unternehmens verschlüsselt und über diesen einzelnen Server geleitet wird.“
„Browser wären die Hauptnutzer der Verbindung, obwohl die Unterstützung von IM- und E-Mail-Clients auch schön wäre.“
Bei dem von Ihnen beschriebenen Dienst und der von Ihnen beschriebenen Funktionalität handelt es sich um ein VPN, obwohl manche Leute ihr VPN als Netzwerkhardware betrachten, die einen Dienst auf Netzwerkebene bereitstellt, und es nicht als „Server“ bezeichnen.
Das VPN ist die Lösung, da es hier darum geht, den gesamten Datenverkehr auf Netzwerkebene zu sichern und ihn an einen einzigen Dienst bereitstellenden Host umzuleiten.
Das VPN funktioniert in privaten Unternehmensnetzwerken, wenn Sie deren Site besuchen, solange dieses Netzwerk den Zugriff auf das öffentliche Netzwerk gestattet (und nicht zufällig den Zugriff auf die IP-Adressen Ihres VPN-Hosts blockiert).
Die einzige Einschränkung besteht darin, dass die meisten VPN-Client-Programme nach dem „Alles-oder-Nichts“-Prinzip arbeiten. Sie bündeln den gesamten Datenverkehr Ihres Systems (im Grunde weigern sie sich, den lokalen Netzwerkdiensten anderer zu vertrauen). Wenn Sie im lokalen Netzwerk und in Ihrem Netzwerk arbeiten müssen, besteht die angesagte/einfache Lösung darin, Ihre VPN-Verbindung auf einem kleinen virtualisierten System (wie VMWare) auszuführen und Ihr Haupt-/Host-Betriebssystem normal auf den lokalen Zugriff zugreifen zu lassen.
Was (Web-)Proxys betrifft:
Vor langer Zeit gab es mehrere Arten von Anwendungsproxys, aber im Internet ist der Begriff „Webproxy“ mittlerweile allgemein gebräuchlich. Diese Proxys verwenden im Allgemeinen keine Verschlüsselung, obwohl sie dies könnten. Sie sind jedoch auf das „Web/Internet“ ausgerichtet und fungieren normalerweise als Proxy für HTTP, HTTPS, FTP und Gopher. Sie können weder E-Mail noch IM verwenden.