Squid-Kit-2: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „=Content Scan= *Auf dem Client muss das CA Zertifikat des Proxy installiert sein. *Proxy generiert für jede Anfrage ein neues Zertifikat und schickt es dem Cl…“) |
|||
| (36 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | = | + | =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: | ||
| + | <pre> | ||
| + | chcon -t squid_conf_t /etc/squid/teamleitung.txt | ||
| + | chcon -t squid_conf_t /etc/squid/badsites.txt | ||
| + | </pre> | ||
| + | ==Squid reloaden== | ||
| + | *systemctl reload squid | ||
| + | ==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. | |
| − | + | {| class="wikitable" | |
| − | + | ! Distribution !! Befehl | |
| − | + | |- | |
| − | + | | Debian / Ubuntu || <code>apt install apache2-utils</code> | |
| + | |- | ||
| + | | Rocky Linux || <code>dnf install httpd-tools</code> | ||
| + | |} | ||
| − | + | ==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 | ||
| − | + | {| class="wikitable" | |
| − | + | ! Option !! Bedeutung | |
| + | |- | ||
| + | | <code>htpasswd</code> || Programm zur Verwaltung von Benutzerdateien | ||
| + | |- | ||
| + | | <code>-c</code> || Erstellt neue Datei (überschreibt bestehende!) | ||
| + | |- | ||
| + | | <code>passwordfile</code> || Speicherort der Benutzerdatei | ||
| + | |- | ||
| + | | <code>username</code> || 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: | |
| − | |||
| − | |||
| + | {| class="wikitable" | ||
| + | ! Distribution !! Pfad | ||
| + | |- | ||
| + | | Debian / Ubuntu || <code>/usr/lib/squid/basic_ncsa_auth</code> | ||
| + | |- | ||
| + | | Rocky Linux || <code>/usr/lib64/squid/basic_ncsa_auth</code> | ||
| + | |} | ||
| − | + | 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: | |
| + | <pre> | ||
| + | chcon -t squid_conf_t /etc/squid/password | ||
| + | </pre> | ||
| − | + | {| class="wikitable" | |
| − | + | ! Option || Bedeutung | |
| + | |- | ||
| + | | <code>auth_param</code> || Definiert Authentifizierungsparameter | ||
| + | |- | ||
| + | | <code>basic</code> || Verwendet HTTP Basic Authentication | ||
| + | |- | ||
| + | | <code>program</code> || Externes Authentifizierungsprogramm | ||
| + | |- | ||
| + | | <code>/usr/lib/squid/basic_ncsa_auth</code> || Prüft Benutzer/Passwort | ||
| + | |- | ||
| + | | <code>/etc/squid/password</code> || Datei mit Zugangsdaten | ||
| + | |- | ||
| + | | <code>children</code> || Anzahl paralleler Auth-Prozesse | ||
| + | |- | ||
| + | | <code>concurrency</code> || Gleichzeitige Anfragen pro Prozess | ||
| + | |- | ||
| + | | <code>credentialsttl</code> || Gültigkeitsdauer Login (Cache) | ||
| + | |- | ||
| + | | <code>realm</code> || Name der Login-Anzeige im Browser | ||
| + | |- | ||
| + | | <code>casesensitive</code> || Groß-/Kleinschreibung beachten oder nicht | ||
| + | |} | ||
| − | + | ;Reload damit die Regel zieht. | |
| − | + | *systemctl reload squid | |
| − | + | =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 <nowiki>12:00-13:00</nowiki> freigeschaltet. | |
| − | |||
| − | |||
Aktuelle Version vom 23. April 2026, 11:49 Uhr
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
- systemctl reload squid
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.
- systemctl reload squid
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.