SQUID 3 mit Proxy Authentifizierung

In grösseren Firmennetzwerken ist die Kontrolle des Internetzugangs ein wichtiges Thema. Nicht nur der Schutz von Eindringlingen von aussen ist wichtig sondern auch die Kontrolle darüber welche Webseiten von den Benutzern aufgerufen werden können. Ein Kunde trat vor Kurzem mit einer interessanten Anforderung für die Steuerung des Internetzugangs an uns heran.

Das Netzwerk des Kunden besteht aus mehreren Segmenten. In der Aufteilung werden Server, PC und ThinClients netzwerktechnisch voneinander getrennt. Ein weiteres Netzwerk wird für die VDI’s unter Xen Desktop verwendet. Basierend auf der gewachsenen Netzwerkstruktur werden alle Netzwerke über ein Transfernetzwerk zum Internet geroutet. Das Internetbrowsen der Benutzer wird aus dem VDI-Netzwerk mit einer Webfiltersoftware gesteuert. Der Kundenwunsch war vor das Transportnetz einen Proxyserver zusetzen über den alle Rechner, bei Bedarf, auf das Internet zugreifen können. Desweiteren sollte dieser Zugriff getrennt von der Webfiltersoftware möglich sein. Um die Kosten niedrig zu halten empfohlen wir unserem Kunden die Nutzung von Squid3 Proxy-Server auf einer Linuxmaschine. Da es nur bestimmten administrativen Nutzern erlaubt sein soll über diesen Proxy auf das Internet zuzugreifen empfohlen wir die Verwendung von lokalen Benutzern via htpasswd anstelle einer Verbindung per LDAP an das Active Directory.

Nach der Installation eines Squid3 unter Debian und Anpassung der Konfiguration kann die Aktivierung der Authentifizierung erfolgen. Ein wichtiger Schritt ist in den Einstellungen des SQUID-Proxy-Servers so einzustellen das der Zugriff des lokalen Netzwerks untersagt wird. Wird diese Einstellung nicht vorgenommen wird die Authentifzierung ausgehebelt. Für die Authentifzierung werden nun folgende Zeilen in der squid.conf eingefügt:

#authentification
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/passwd
auth_param basic children 5
auth_param basic realm lachenmair.info – SQUID Internet-Zugriffsberechtigung
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
acl zugriff proxy_auth REQUIRED
http_access allow zugriff
http_access deny all
icp_access deny all
htcp_access deny all
#ende auth

Ab Debian8 verwendet der Squid3 statt “ncsa_auth” “basic_ncsa_auth”:

auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/passwd

Vielen Dank für den Hinweis an Mischa Boschke von Schwielownet (http://www.schwielownet.de).

Für die Nutzung von htpasswd müssen “apache2-utils” installiert sein. Bei Längeren administrativen Aufgaben auf Linux-Maschinen nutze ich “su -” um Root des Systems zu werden:

Screenshot einer Linuxanmeldung via Putty und wechsel zum Root

Als Nächstes wird die Datei passwd mit dem Programm htpasswd im Verzeichnis der Squidkonfiguration angelegt. Nach der Erstellung werden die Lese- und Schreibrechte eingeschränkt:

Screenshot einer Linuxshell bei der mit htpasswd ein Passwortfile angelegt wird

Weitere Benutzer können später per SUDO angelegt werden:

Screenshot einer Linuxshell für die Benutzeranlage per htaccess via SUDO

Nachdem die Benutzer angelegt wurden wird der Squid-Dienst neugestartet. Danach müssen sich Benutzer beim Surfen mit Ihrem Benutzernamen und Passwort anmelden:

Screenshot der Benutzerabfrage des Internet Explorers bei aktivierter Squid-Authentifizierung

 

Um die Verteilung der Authentifzierung bzw. der Proxynutzung zu automatisieren wurde zusätzlich noch ein proxy.pac-File angelegt und per Gruppenrichtlinie verteilt. Die proxy.pac weist den Benutzern automatisch den Proxyserver zu. Da in diesem Netzwerk auch Notebooks, welche auch ausserhalb online gehen müssen, benutzt werden wurde eine automatisierte Erkennenung in dieser Datei hinterlegt. Mit dieser Einstellung konnten alle Benutzer ohne große Aufwände umgestellt werden. Nutzen Sie unser Kontaktformular bei Fragen zu Squid-Proxy-Server, Authentifizierung oder dem Einsatz einer proxy.pac