27 Anonymous Proxy

Um einen Squid Proxy Server als Anonymisierungsproxy einzurichten, müssen Sie folgende Schritte durchführen:

  1. Squid Konfigurationsdatei anpassen: Öffnen Sie die Konfigurationsdatei von Squid (/etc/squid/squid.conf) und fügen Sie die folgenden Einträge hinzu oder passen Sie sie an:

    forwarded_for delete
    request_header_access From deny all
    request_header_access Server deny all
    request_header_access WWW-Authenticate deny all
    request_header_access Link deny all
    request_header_access Cache-Control deny all
    request_header_access Proxy-Connection deny all
    request_header_access X-Cache deny all
    request_header_access X-Cache-Lookup deny all
    request_header_access Via deny all
    request_header_access Forwarded-For deny all
    request_header_access X-Forwarded-For deny all
    request_header_access Pragma deny all
    request_header_access Keep-Alive deny all
  2. Optionale Header entfernen: Um sicherzustellen, dass alle optionalen Header entfernt werden, die Informationen über den Client preisgeben könnten, sollten Sie die oben genannten request_header_access-Einträge verwenden, um den Zugriff auf diese Header zu verweigern.

  3. Anpassungen überprüfen: Stellen Sie sicher, dass keine anderen Konfigurationen in der squid.conf vorhanden sind, die identifizierende Informationen über die Clients preisgeben könnten.

  4. Squid-Dienst neu starten: Nachdem Sie die Konfigurationsdatei angepasst haben, starten Sie den Squid-Dienst neu, um die Änderungen zu übernehmen:

    systemctl restart squid
  5. Firewall-Regeln überprüfen: Stellen Sie sicher, dass die Firewall-Regeln keine Informationen über die ursprünglichen Client-Anfragen preisgeben.

Durch diese Konfiguration wird der Squid Proxy so eingerichtet, dass er keine identifizierenden Informationen der Clients weitergibt, wodurch die Anonymität der Nutzer gewährleistet wird.

27.1 Hyper Anonymizer

Es gibt eine weitere Variante, die als hyperanonymisierender Proxy bekannt ist. Diese Variante geht noch einen Schritt weiter als ein normaler Anonymisierungsproxy, indem sie sämtliche Hinweise auf den ursprünglichen Client entfernt. Hier sind die zusätzlichen Schritte, um Squid als hyperanonymisierenden Proxy zu konfigurieren:

  1. Squid Konfigurationsdatei anpassen: Öffnen Sie die Konfigurationsdatei von Squid (/etc/squid/squid.conf) und fügen Sie die folgenden Einträge hinzu oder passen Sie sie an:

    forwarded_for off
    request_header_access Allow allow all
    request_header_access Authorization allow all
    request_header_access WWW-Authenticate deny all
    request_header_access Proxy-Authorization deny all
    request_header_access Proxy-Authenticate deny all
    request_header_access Cache-Control deny all
    request_header_access Content-Encoding deny all
    request_header_access Content-Length deny all
    request_header_access Content-Type deny all
    request_header_access Date deny all
    request_header_access Expires deny all
    request_header_access Host deny all
    request_header_access If-Modified-Since deny all
    request_header_access Last-Modified deny all
    request_header_access Location deny all
    request_header_access Pragma deny all
    request_header_access Accept deny all
    request_header_access Accept-Charset deny all
    request_header_access Accept-Encoding deny all
    request_header_access Accept-Language deny all
    request_header_access Content-Language deny all
    request_header_access Mime-Version deny all
    request_header_access Retry-After deny all
    request_header_access Title deny all
    request_header_access Connection deny all
    request_header_access Proxy-Connection deny all
    request_header_access User-Agent deny all
    request_header_access Cookie deny all
    request_header_access Set-Cookie deny all
    request_header_access Referer deny all
    request_header_access Via deny all
    request_header_access X-Forwarded-For deny all
    request_header_access X-Forwarded-Host deny all
    request_header_access X-Forwarded-Server deny all
  2. Verbindungen absichern: Stellen Sie sicher, dass alle Verbindungen verschlüsselt sind, um die Privatsphäre weiter zu schützen. Dies kann durch die Verwendung von HTTPS-Verbindungen erreicht werden.

  3. Logfiles minimieren oder deaktivieren: Minimieren oder deaktivieren Sie das Logging, um sicherzustellen, dass keine Informationen über die Anfragen gespeichert werden:

    access_log none
    cache_store_log none
  4. Squid-Dienst neu starten: Nachdem Sie die Konfigurationsdatei angepasst haben, starten Sie den Squid-Dienst neu, um die Änderungen zu übernehmen:

    systemctl restart squid

Durch diese Konfiguration wird Squid so eingerichtet, dass es jegliche Hinweise auf die ursprünglichen Clients entfernt und somit eine hyperanonymisierende Proxy-Funktion bereitstellt.

27.2 Test Setup

Ein gutes Test-Setup, um die Funktionalität und Anonymisierungsstufe eines hyperanonymisierenden Squid Proxys zu überprüfen, könnte wie folgt aussehen:

  1. Vorbereitung der Infrastruktur:
  2. Installation und Konfiguration:
  3. DNS-Konfiguration:
  4. Durchführung des Tests:
  5. Überprüfung der Log-Files:

Beispielanfragen und erwartete Log-Einträge: - Stellen Sie Anfragen über den Proxy-Server: bash curl -x http://proxy.example.com:3128 http://target.example.com

In den Logs sollten keine IP-Adressen oder Header erscheinen, die auf den ursprünglichen Client hinweisen. Wenn die Logs anonymisierte Einträge zeigen, ist die Konfiguration erfolgreich.

Alternativ können Sie auch Tools wie Wireshark auf dem Ziel-Webserver verwenden, um den eingehenden Datenverkehr zu überwachen und sicherzustellen, dass keine identifizierenden Informationen durchkommen.

Dieses Setup stellt sicher, dass der Proxy-Server richtig konfiguriert ist und die Anonymisierung effektiv ist.

27.2.1 Erreichbarkeit

Um sicherzustellen, dass Ihr Squid-Proxy-Server Anfragen aus dem gesamten Internet annimmt und nicht nur aus dem lokalen Netzwerk, müssen Sie folgende Einstellungen in der Konfigurationsdatei (/etc/squid/squid.conf) vornehmen:

  1. Zugriffssteuerungslisten (ACLs) anpassen: Erstellen Sie eine ACL, die den gesamten IP-Bereich erlaubt:

    acl all src 0.0.0.0/0
  2. HTTP-Zugriffsregel hinzufügen: Erlauben Sie den Zugriff für diese ACL:

    http_access allow all

Stellen Sie sicher, dass diese Regel über jeglichen anderen http_access deny-Regeln steht, da die Regeln in der Reihenfolge abgearbeitet werden.

Ein Beispielausschnitt Ihrer Konfigurationsdatei könnte so aussehen:

# Listen on port 3128
http_port 3128

# Allow all IP ranges
acl all src 0.0.0.0/0

# Allow http access to all
http_access allow all
  1. Squid-Dienst neu starten: Nachdem Sie die Konfigurationsdatei angepasst haben, starten Sie den Squid-Dienst neu, um die Änderungen zu übernehmen:

    systemctl restart squid
  2. Firewall-Konfiguration: Stellen Sie sicher, dass die Firewall auf dem Proxy-Server eingehende Verbindungen auf dem von Squid verwendeten Port (standardmäßig 3128) zulässt. Zum Beispiel, mit iptables:

    iptables -A INPUT -p tcp --dport 3128 -j ACCEPT

    Wenn Sie ufw verwenden, können Sie den Port wie folgt öffnen:

    ufw allow 3128/tcp

Durch diese Einstellungen wird der Squid-Proxy so konfiguriert, dass er Anfragen von überall im Internet akzeptiert. Achten Sie darauf, dass diese Konfiguration Sicherheitsrisiken mit sich bringt, da sie Ihren Proxy-Server für die gesamte Welt zugänglich macht. Es wird empfohlen, zusätzliche Sicherheitsmaßnahmen wie Authentifizierung oder IP-basierte Zugriffskontrollen zu implementieren, wenn dies in Ihrer Umgebung notwendig ist.

27.2.2 Erreichbarkeit einschränken

Es gibt die Möglichkeit, eine einfache Authentifizierung (Basic Authentication) für Squid zu konfigurieren, um sicherzustellen, dass nur autorisierte Benutzer Zugriff auf den Proxy-Server haben. Hier sind die Schritte, um Basic Authentication mit Squid einzurichten:

  1. Installation von apache2-utils: Dies ist erforderlich, um das Tool htpasswd zu verwenden, mit dem die Passwortdatei erstellt wird.

    sudo apt-get install apache2-utils
  2. Erstellung der Passwortdatei: Erstellen Sie eine Passwortdatei und fügen Sie Benutzer hinzu. Der folgende Befehl erstellt die Datei /etc/squid/passwd und fügt einen Benutzer user1 hinzu:

    sudo htpasswd -c /etc/squid/passwd user1

    Sie werden aufgefordert, ein Passwort für user1 einzugeben.

  3. Anpassen der Squid-Konfigurationsdatei: Öffnen Sie die Datei /etc/squid/squid.conf und fügen Sie die folgenden Einträge hinzu:

    # Define the authentication method
    auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
    auth_param basic children 5
    auth_param basic realm Squid proxy-caching web server
    auth_param basic credentialsttl 2 hours
    auth_param basic casesensitive on
    
    # Create an ACL for authenticated users
    acl authenticated_users proxy_auth REQUIRED
    
    # Allow http access to authenticated users
    http_access allow authenticated_users
  4. Restart Squid: Starten Sie den Squid-Dienst neu, um die Änderungen zu übernehmen:

    sudo systemctl restart squid
  5. Firewall-Regeln überprüfen: Stellen Sie sicher, dass Ihre Firewall den Zugriff auf den Squid-Port (standardmäßig 3128) zulässt.

Mit diesen Schritten wird Basic Authentication für Ihren Squid-Proxy-Server eingerichtet. Benutzer müssen nun einen Benutzernamen und ein Passwort eingeben, um den Proxy verwenden zu können. Dies erhöht die Sicherheit, indem nur autorisierte Benutzer Zugriff haben.