Squid ACL Basic: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 95: | Zeile 95: | ||
==Erstellen einer Passwort Datei== | ==Erstellen einer Passwort Datei== | ||
| − | + | *sudo apt install apache2-utils | |
*htpasswd -c /etc/squid/passwd username | *htpasswd -c /etc/squid/passwd username | ||
Aktuelle Version vom 2. Juli 2025, 08:11 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
- sudo apt install apache2-utils
- 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.
Weiter Benutzer:
- htpasswd /etc/squid/passwd benutzer2
Ä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
