Squid ACL Basic: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 136: | Zeile 136: | ||
*casesensitive: Legt fest ob der BENUTZERname case-sensitiv sein soll | *casesensitive: Legt fest ob der BENUTZERname case-sensitiv sein soll | ||
| + | ==Authentifizierung mit ldap== | ||
| + | |||
| + | Zusätzliche Packete: | ||
| + | sudo apt install libldap-2.5-0 ldap-utils | ||
| + | |||
| + | <pre> | ||
| + | # LDAP-Authentifizierung einrichten | ||
| + | |||
| + | auth_param basic program /usr/lib/squid/basic_ldap_auth -v 3 -b ou=users,dc=it113,dc=int -D cn=admin,dc=it113,dc=int -w 123Start$ -f uid=%s -h ldap.it113.int | ||
| + | auth_param basic children 20 startup=0 idle=1 | ||
| + | auth_param basic concurrency 0 | ||
| + | auth_param basic credentialsttl 500 seconds | ||
| + | auth_param basic realm xinux proxy server | ||
| + | auth_param basic casesensitive off | ||
| + | |||
| + | # ACL für authentifizierte Benutzer | ||
| + | acl ldap-auth proxy_auth REQUIRED | ||
| + | |||
| + | # Zugriff erlauben | ||
| + | http_access allow ldap-auth | ||
| + | </pre> | ||
=Links= | =Links= | ||
*https://wiki.squid-cache.org/SquidFaq/SquidAcl | *https://wiki.squid-cache.org/SquidFaq/SquidAcl | ||
Version vom 2. Juli 2025, 06:27 Uhr
Prinzip der ACL
Lan und DMZ freischalten
acl bilden
acl lan src 172.16.150.0/24 acl dmz src 10.40.115.0/24
acl anwenden(Reihenfolge ist entscheidend)
http_access allow lan http_access allow dmz
Webseite einschränken
Acl bilden
acl facebook url_regex -i facebook
Acl anwenden
http_access deny facebook
HTTP Port des Proxys angeben
http_port 3128
Logs checken
- tail -f /var/log/squid/access.log
1490008947.188 2 192.168.244.144 TCP_MISS/503 4447 GET http://detectportal.firefox.com/success.txt - HIER_NONE/- text/html
Blacklist erstellen
- Wird erstellt, um diverse Seiten zu deaktivieren
http-liste erstellen
vi /etc/squid/bad-sites.list
http-seiten hinzufügen
facebook.com pr0gramm.com
erstellen der acl
acl bad-sites url_regex -i "/etc/squid/bad-sites.list"
erstellen der http_access
http_access deny bad-sites
Squid acl Types
Squid.conf all in one with Black List
# Squid lauscht auf allen Schnittstellen (inkl. WAN) http_port 0.0.0.0:3128 # ACLs für die Netzwerke definieren acl admin-netz src 172.16.1xx.0/24 acl lan src 172.17.1xx.0/24 acl dmz src 10.0.1xx.0/24 # Blacklist-Datei einbinden acl bad-sites url_regex -i "/etc/squid/bad-sites.list" # Admin-Netz uneingeschränkt erlauben http_access allow admin-netz # LAN & DMZ haben Zugriff, aber mit Blacklist-Einschränkung http_access deny bad-sites lan http_access deny bad-sites dmz # LAN & DMZ dürfen surfen http_access allow lan http_access allow dmz # Standardmäßig alles verbieten http_access deny all
Squid.conf all in one with White List
# Squid lauscht auf allen Schnittstellen (inkl. WAN) http_port 0.0.0.0:3128 # ACLs für die Netzwerke definieren acl admin-netz src 172.16.1xx.0/24 acl lan src 172.17.1xx.0/24 acl dmz src 10.0.1xx.0/24 # Whitelist-Datei einbinden acl allowed-sites dstdomain "/etc/squid/allowed-sites.list" # Admin-Netz uneingeschränkt erlauben http_access allow admin-netz # LAN & DMZ dürfen nur freigegebene Seiten besuchen http_access allow lan allowed-sites http_access allow dmz allowed-sites # Standardmäßig alles verbieten http_access deny all
Authentifizierung erzwingen
Zur Vermeidung von ungewollten Zugriffen lässt sich in Squid auch eine Authetifizierung erzwingen
Erstellen einer Passwort Datei
- htpasswd -c /etc/squid/passwd username
Syntax:
- htpasswd: Programmname
- -c: Create new passwordfile, also neue Passwortdatei erstellen
- passwordfile: Passwortdatei mit beliebigem Namen. Auch der Ort kann beliebig gewählt werden
- username: Name eines Benutzers (beliebig)
Nach Bestätigen des Befehls wird htpasswd nach einem Passwort für den Benutzer verlangen. Dies kann ebenfalls beliebig gewählt werden.
Änderungen an der squid.conf
Folgende Einträge werden am Anfang der squid.conf eingefügt:
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd auth_param basic children 20 startup=0 idle=1 auth_param basic concurrency 0 auth_param basic credentialsttl 500 seconds auth_param basic realm xinux proxy server auth_param basic casesensitive off acl ncsa_users proxy_auth REQUIRED http_access allow ncsa_users
Syntax:
- auth_param: Definiert die Parameter für die Authentifizierung
- basic: Teilt squid mit, dass es sich um grundsätzliche Einstellungen handelt, die zur Anwendung kommen wenn keine anderen verfügbar sind. Weitere Optionen siehe squid Manual
- program: Es wird ein externes Programm zur Authentifizierung eingesetzt
- /usr/lib/squid/basic_ncsa_auth: Hier befindet sich das Programm
- /etc/squid/passwd: Dies ist die Passwortdatei
- children: Wieviele Authentifikationsprozesse Squid maximal starten soll
- concurrency: Wieviele Anfragen gleichzeitig bearbeitet werden dürfen
- credentialsttl: Wie lange die Anmeldedaten gültig sein sollen
- realm: Name des Bereichs für den der Proxy zuständig ist. Kann beliebig gewählt werden.
- casesensitive: Legt fest ob der BENUTZERname case-sensitiv sein soll
Authentifizierung mit ldap
Zusätzliche Packete:
sudo apt install libldap-2.5-0 ldap-utils
# LDAP-Authentifizierung einrichten auth_param basic program /usr/lib/squid/basic_ldap_auth -v 3 -b ou=users,dc=it113,dc=int -D cn=admin,dc=it113,dc=int -w 123Start$ -f uid=%s -h ldap.it113.int auth_param basic children 20 startup=0 idle=1 auth_param basic concurrency 0 auth_param basic credentialsttl 500 seconds auth_param basic realm xinux proxy server auth_param basic casesensitive off # ACL für authentifizierte Benutzer acl ldap-auth proxy_auth REQUIRED # Zugriff erlauben http_access allow ldap-auth
