Beispielkonzept
Erstellen der Dateien
- Ein Teil der Clients bekommt vollen Zugriff.
- Alle anderen dürfen nur eingeschränkt auf bestimmte Webseiten zugreifen.
- Liste von IP-Adressen, die uneingeschränkt surfen dürfen.
- Diese Datei wird später als ACL eingebunden.
- vi /etc/squid/teamleitung.txt
172.26.2XX.10
172.26.2XX.33
172.26.2XX.49
- Liste von gesperrten Webseiten oder Begriffen.
- url_regex prüft URLs auf diese Einträge.
- vi /etc/squid/badsites.txt
bild\.de
sex
www\.faz\.net
facebook
Einbinden in die /etc/squid.conf
- Einbinden der Dateien als ACL in Squid.
- src = IP-Filter, url_regex = URL-Filter.
Die doppelten Hochkommas bedeuten das die Regel in einer Datei ausgelagert wird-
acl teamleitung src "/etc/squid/teamleitung.txt"
acl badsites url_regex "/etc/squid/badsites.txt"
- Regeln werden von oben nach unten abgearbeitet.
- Erst erlauben, dann verbieten, dann Standardregeln.
http_access allow teamleitung
http_access deny badsites
http_access allow it-dmz
http_access allow it-lan
Hinweis Rocky Linux: SELinux-Kontext für externe Dateien setzen:
chcon -t squid_conf_t /etc/squid/teamleitung.txt
chcon -t squid_conf_t /etc/squid/badsites.txt
Squid reloaden
Kontrolle
- tail -f /var/log/squid/access.log
Authentifizierung
- Zusätzliche Absicherung des Proxys durch Benutzeranmeldung.
- Verhindert Nutzung durch nicht autorisierte Clients.
Installation von htpasswd
- Werkzeug zur Erstellung von Benutzer/Passwort-Dateien.
- Wird für Basic Authentication verwendet.
| Distribution |
Befehl
|
| Debian / Ubuntu |
apt install apache2-utils
|
| Rocky Linux |
dnf install httpd-tools
|
Erstellen einer Passwort Datei
- Erstellt eine neue Passwortdatei mit dem ersten Benutzer.
- -c darf nur beim ersten Aufruf verwendet werden.
- htpasswd -c /etc/squid/password martha
- Fügt einen weiteren Benutzer zur bestehenden Datei hinzu.
- Die Datei wird nicht überschrieben.
- htpasswd /etc/squid/password leroy
| Option |
Bedeutung
|
htpasswd |
Programm zur Verwaltung von Benutzerdateien
|
-c |
Erstellt neue Datei (überschreibt bestehende!)
|
passwordfile |
Speicherort der Benutzerdatei
|
username |
Benutzername
|
Änderungen an der squid.conf
- Aktiviert Basic Authentication in Squid.
- Benutzer müssen sich am Proxy anmelden.
Folgende Einträge werden am Anfang der squid.conf eingefügt:
| Distribution |
Pfad
|
| Debian / Ubuntu |
/usr/lib/squid/basic_ncsa_auth
|
| Rocky Linux |
/usr/lib64/squid/basic_ncsa_auth
|
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/password
auth_param basic children 20 startup=0 idle=1
auth_param basic concurrency 0
auth_param basic credentialsttl 500 seconds
auth_param basic realm it2XX proxy server
auth_param basic casesensitive off
acl ncsa_users proxy_auth REQUIRED
http_access allow ncsa_users
Hinweis Rocky Linux: SELinux-Kontext für die Passwortdatei setzen:
chcon -t squid_conf_t /etc/squid/password
| Option |
Bedeutung
|
auth_param |
Definiert Authentifizierungsparameter
|
basic |
Verwendet HTTP Basic Authentication
|
program |
Externes Authentifizierungsprogramm
|
/usr/lib/squid/basic_ncsa_auth |
Prüft Benutzer/Passwort
|
/etc/squid/password |
Datei mit Zugangsdaten
|
children |
Anzahl paralleler Auth-Prozesse
|
concurrency |
Gleichzeitige Anfragen pro Prozess
|
credentialsttl |
Gültigkeitsdauer Login (Cache)
|
realm |
Name der Login-Anzeige im Browser
|
casesensitive |
Groß-/Kleinschreibung beachten oder nicht
|
- Reload damit die Regel zieht.
Time
- Zeitbasierte Steuerung von Zugriffen.
- Erlaubt Regeln nur zu bestimmten Uhrzeiten.
erstellen der acl
- Definiert ein Zeitfenster.
- Format ist HH
- MM-HH:MM.
acl break-time time 12:00-13:00
erstellen der http_access
- Verknüpft Zeitregel mit Zugriff.
- Nur im Zeitfenster wird Zugriff erlaubt.
http_access allow badsites break-time
- In diesem Beispiel werden die bad-sites um 12:00-13:00 freigeschaltet.