Squid ACL Basic: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(7 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
*[[5103 - Squid Übung]]
 
=Prinzip der ACL=
 
=Prinzip der ACL=
 
{{#drawio:Prinzip der ACL}}
 
{{#drawio:Prinzip der ACL}}
Zeile 47: Zeile 48:
 
=Squid acl Types=
 
=Squid acl Types=
 
*[[Squid acl types]]
 
*[[Squid acl types]]
 +
 +
=Squid.conf all in one with Black List=
 +
<pre>
 +
# 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
 +
</pre>
 +
 +
=Squid.conf all in one with White List=
 +
<pre>
 +
# 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
 +
</pre>
 +
 +
=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:
 +
 +
<pre>
 +
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
 +
 +
</pre>
 +
 +
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
 +
 +
<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