Um einen Squid Proxy Server als Anonymisierungsproxy einzurichten, müssen Sie folgende Schritte durchführen:
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 allOptionale 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.
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.
Squid-Dienst neu starten: Nachdem Sie die Konfigurationsdatei angepasst haben, starten Sie den Squid-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart squidFirewall-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.
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:
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 allVerbindungen 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.
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 noneSquid-Dienst neu starten: Nachdem Sie die Konfigurationsdatei angepasst haben, starten Sie den Squid-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart squidDurch diese Konfiguration wird Squid so eingerichtet, dass es jegliche Hinweise auf die ursprünglichen Clients entfernt und somit eine hyperanonymisierende Proxy-Funktion bereitstellt.
Ein gutes Test-Setup, um die Funktionalität und Anonymisierungsstufe eines hyperanonymisierenden Squid Proxys zu überprüfen, könnte wie folgt aussehen:
/var/log/nginx/access.log.proxy.example.com -> Proxy-Servertarget.example.com -> Ziel-Webserver/var/log/nginx/access.log) und überprüfen Sie die
Einträge.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
Überprüfen Sie die Logs auf dem Ziel-Webserver:
tail -f /var/log/nginx/access.logIn 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.
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:
Zugriffssteuerungslisten (ACLs) anpassen: Erstellen Sie eine ACL, die den gesamten IP-Bereich erlaubt:
acl all src 0.0.0.0/0HTTP-Zugriffsregel hinzufügen: Erlauben Sie den Zugriff für diese ACL:
http_access allow allStellen 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
Squid-Dienst neu starten: Nachdem Sie die Konfigurationsdatei angepasst haben, starten Sie den Squid-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart squidFirewall-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 ACCEPTWenn Sie ufw verwenden, können Sie den Port wie folgt
öffnen:
ufw allow 3128/tcpDurch 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.
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:
Installation von apache2-utils:
Dies ist erforderlich, um das Tool htpasswd zu verwenden,
mit dem die Passwortdatei erstellt wird.
sudo apt-get install apache2-utilsErstellung 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 user1Sie werden aufgefordert, ein Passwort für user1
einzugeben.
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_usersRestart Squid: Starten Sie den Squid-Dienst neu, um die Änderungen zu übernehmen:
sudo systemctl restart squidFirewall-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.