Squid ACL Basic: Unterschied zwischen den Versionen

Aus Xinux Wiki
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

Links