Squid ACL Basic: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 95: Zeile 95:
  
 
==Erstellen einer Passwort Datei==
 
==Erstellen einer Passwort Datei==
+
*sudo apt install apache2-utils
*htpasswd -c /etc/squid/passwordfile username
+
*htpasswd -c /etc/squid/passwd username
  
 
Syntax:
 
Syntax:
Zeile 105: Zeile 105:
  
 
Nach Bestätigen des Befehls wird htpasswd nach einem Passwort für den Benutzer verlangen. Dies kann ebenfalls beliebig gewählt werden.
 
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==
 
==Änderungen an der squid.conf==
Zeile 136: Zeile 139:
 
*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

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