<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Squid_ACL_Basic_Rocky</id>
	<title>Squid ACL Basic Rocky - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Squid_ACL_Basic_Rocky"/>
	<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Squid_ACL_Basic_Rocky&amp;action=history"/>
	<updated>2026-05-14T16:09:13Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Squid_ACL_Basic_Rocky&amp;diff=68907&amp;oldid=prev</id>
		<title>Thomas.will: Die Seite wurde neu angelegt: „ =Prinzip der ACL= {{#drawio: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 anwe…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Squid_ACL_Basic_Rocky&amp;diff=68907&amp;oldid=prev"/>
		<updated>2026-04-22T10:22:47Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „ =Prinzip der ACL= {{#drawio: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 anwe…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
=Prinzip der ACL=&lt;br /&gt;
{{#drawio:Prinzip der ACL}}&lt;br /&gt;
&lt;br /&gt;
=Lan und DMZ freischalten=&lt;br /&gt;
==acl bilden==&lt;br /&gt;
 acl lan src 172.16.150.0/24&lt;br /&gt;
 acl dmz src  10.40.115.0/24&lt;br /&gt;
&lt;br /&gt;
==acl anwenden(Reihenfolge ist entscheidend)==&lt;br /&gt;
 http_access allow lan&lt;br /&gt;
 http_access allow dmz&lt;br /&gt;
&lt;br /&gt;
=Webseite einschränken=&lt;br /&gt;
==Acl bilden==&lt;br /&gt;
 acl facebook url_regex -i facebook&lt;br /&gt;
&lt;br /&gt;
==Acl anwenden==&lt;br /&gt;
 http_access deny facebook&lt;br /&gt;
&lt;br /&gt;
==HTTP Port des Proxys angeben==&lt;br /&gt;
&lt;br /&gt;
 http_port 3128&lt;br /&gt;
&lt;br /&gt;
=Logs checken=&lt;br /&gt;
*tail -f /var/log/squid/access.log &lt;br /&gt;
1490008947.188      2 192.168.244.144 TCP_MISS/503 4447 GET http://detectportal.firefox.com/success.txt - HIER_NONE/- text/html&lt;br /&gt;
=Blacklist erstellen=&lt;br /&gt;
*Wird erstellt, um diverse Seiten zu deaktivieren &lt;br /&gt;
==http-liste erstellen==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi /etc/squid/bad-sites.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==http-seiten hinzufügen==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
facebook.com&lt;br /&gt;
pr0gramm.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==erstellen der acl==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acl bad-sites  url_regex -i &amp;quot;/etc/squid/bad-sites.list&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==erstellen der http_access==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http_access deny bad-sites&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=Squid acl Types=&lt;br /&gt;
*[[Squid acl types]]&lt;br /&gt;
&lt;br /&gt;
=Squid.conf all in one with Black List=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Squid lauscht auf allen Schnittstellen (inkl. WAN)&lt;br /&gt;
http_port 0.0.0.0:3128&lt;br /&gt;
# ACLs für die Netzwerke definieren&lt;br /&gt;
acl admin-netz src 172.16.1xx.0/24&lt;br /&gt;
acl lan src 172.17.1xx.0/24&lt;br /&gt;
acl dmz src 10.0.1xx.0/24&lt;br /&gt;
# Blacklist-Datei einbinden&lt;br /&gt;
acl bad-sites url_regex -i &amp;quot;/etc/squid/bad-sites.list&amp;quot;&lt;br /&gt;
# Admin-Netz uneingeschränkt erlauben&lt;br /&gt;
http_access allow admin-netz&lt;br /&gt;
# LAN &amp;amp; DMZ haben Zugriff, aber mit Blacklist-Einschränkung&lt;br /&gt;
http_access deny bad-sites lan&lt;br /&gt;
http_access deny bad-sites dmz&lt;br /&gt;
# LAN &amp;amp; DMZ dürfen surfen&lt;br /&gt;
http_access allow lan&lt;br /&gt;
http_access allow dmz&lt;br /&gt;
# Standardmäßig alles verbieten&lt;br /&gt;
http_access deny all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Squid.conf all in one with White List=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Squid lauscht auf allen Schnittstellen (inkl. WAN)&lt;br /&gt;
http_port 0.0.0.0:3128&lt;br /&gt;
# ACLs für die Netzwerke definieren&lt;br /&gt;
acl admin-netz src 172.16.1xx.0/24&lt;br /&gt;
acl lan src 172.17.1xx.0/24&lt;br /&gt;
acl dmz src 10.0.1xx.0/24&lt;br /&gt;
# Whitelist-Datei einbinden&lt;br /&gt;
acl allowed-sites dstdomain &amp;quot;/etc/squid/allowed-sites.list&amp;quot;&lt;br /&gt;
# Admin-Netz uneingeschränkt erlauben&lt;br /&gt;
http_access allow admin-netz&lt;br /&gt;
# LAN &amp;amp; DMZ dürfen nur freigegebene Seiten besuchen&lt;br /&gt;
http_access allow lan allowed-sites&lt;br /&gt;
http_access allow dmz allowed-sites&lt;br /&gt;
# Standardmäßig alles verbieten&lt;br /&gt;
http_access deny all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Authentifizierung erzwingen=&lt;br /&gt;
&lt;br /&gt;
Zur Vermeidung von ungewollten Zugriffen lässt sich in Squid auch eine Authetifizierung erzwingen&lt;br /&gt;
&lt;br /&gt;
==Erstellen einer Passwort Datei==&lt;br /&gt;
*sudo apt install apache2-utils ''(Debian/Ubuntu)''&lt;br /&gt;
*sudo dnf install httpd-tools ''(Rocky Linux)''&lt;br /&gt;
*htpasswd -c /etc/squid/passwd username&lt;br /&gt;
&lt;br /&gt;
Syntax:&lt;br /&gt;
*htpasswd: Programmname&lt;br /&gt;
*-c: Create new passwordfile, also neue Passwortdatei erstellen&lt;br /&gt;
*passwordfile: Passwortdatei mit beliebigem Namen. Auch der Ort kann beliebig gewählt werden&lt;br /&gt;
*username: Name eines Benutzers (beliebig)&lt;br /&gt;
&lt;br /&gt;
Nach Bestätigen des Befehls wird htpasswd nach einem Passwort für den Benutzer verlangen. Dies kann ebenfalls beliebig gewählt werden.&lt;br /&gt;
&lt;br /&gt;
Weiter Benutzer:&lt;br /&gt;
*htpasswd /etc/squid/passwd benutzer2&lt;br /&gt;
&lt;br /&gt;
==Änderungen an der squid.conf==&lt;br /&gt;
&lt;br /&gt;
Folgende Einträge werden am Anfang der squid.conf eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd&lt;br /&gt;
auth_param basic children 20 startup=0 idle=1&lt;br /&gt;
auth_param basic concurrency 0&lt;br /&gt;
auth_param basic credentialsttl 500 seconds&lt;br /&gt;
auth_param basic realm xinux proxy server&lt;br /&gt;
auth_param basic casesensitive off&lt;br /&gt;
&lt;br /&gt;
acl ncsa_users proxy_auth REQUIRED&lt;br /&gt;
&lt;br /&gt;
http_access allow ncsa_users&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Hinweis Rocky Linux:''' Der Helper-Pfad unterscheidet sich je nach Distribution:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Distribution !! Pfad&lt;br /&gt;
|-&lt;br /&gt;
| Debian / Ubuntu || &amp;lt;code&amp;gt;/usr/lib/squid/basic_ncsa_auth&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rocky Linux / RHEL || &amp;lt;code&amp;gt;/usr/lib64/squid/basic_ncsa_auth&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Syntax:&lt;br /&gt;
*auth_param: Definiert die Parameter für die Authentifizierung&lt;br /&gt;
*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&lt;br /&gt;
*program: Es wird ein externes Programm zur Authentifizierung eingesetzt&lt;br /&gt;
*/usr/lib/squid/basic_ncsa_auth: Hier befindet sich das Programm&lt;br /&gt;
*/etc/squid/passwd: Dies ist die Passwortdatei&lt;br /&gt;
*children: Wieviele Authentifikationsprozesse Squid maximal starten soll&lt;br /&gt;
*concurrency: Wieviele Anfragen gleichzeitig bearbeitet werden dürfen&lt;br /&gt;
*credentialsttl: Wie lange die Anmeldedaten gültig sein sollen&lt;br /&gt;
*realm: Name des Bereichs für den der Proxy zuständig ist. Kann beliebig gewählt werden.&lt;br /&gt;
*casesensitive: Legt fest ob der BENUTZERname case-sensitiv sein soll&lt;br /&gt;
&lt;br /&gt;
==Authentifizierung mit ldap==&lt;br /&gt;
&lt;br /&gt;
Zusätzliche Packete: &lt;br /&gt;
 sudo apt install libldap-2.5-0 ldap-utils ''(Debian/Ubuntu)''&lt;br /&gt;
 sudo dnf install openldap-clients ''(Rocky Linux)''&lt;br /&gt;
Debian 13 &lt;br /&gt;
 sudo apt install libldap2 ldap-utils&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# LDAP-Authentifizierung einrichten&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
auth_param basic children 20 startup=0 idle=1&lt;br /&gt;
auth_param basic concurrency 0&lt;br /&gt;
auth_param basic credentialsttl 500 seconds&lt;br /&gt;
auth_param basic realm xinux proxy server&lt;br /&gt;
auth_param basic casesensitive off&lt;br /&gt;
&lt;br /&gt;
# ACL für authentifizierte Benutzer&lt;br /&gt;
acl ldap-auth proxy_auth REQUIRED&lt;br /&gt;
&lt;br /&gt;
# Zugriff erlauben&lt;br /&gt;
http_access allow ldap-auth&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Hinweis Rocky Linux:''' Auch hier gilt der abweichende Pfad:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Distribution !! Pfad&lt;br /&gt;
|-&lt;br /&gt;
| Debian / Ubuntu || &amp;lt;code&amp;gt;/usr/lib/squid/basic_ldap_auth&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rocky Linux / RHEL || &amp;lt;code&amp;gt;/usr/lib64/squid/basic_ldap_auth&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Authentifizierung mit LDAP-Gruppen===&lt;br /&gt;
*'''/etc/squid/squid.conf'''&lt;br /&gt;
**Zusätzlich zur oben genannten Authentifizierung mit LDAP, kann hier mit Filter von Gruppen gearbeitet werden. Fügen Sie dafür folgende Zeile hinzu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
external_acl_type ldap_group %LOGIN /usr/lib/squid/ext_ldap_group_acl -v 3 -b ou=groups,dc=it113,dc=int -D cn=admin,dc=it113,dc=int -w 123Start$ -f &amp;quot;(&amp;amp;(objectClass=posixGroup)(cn=%g)(memberUid=%u))&amp;quot;  -h ldap.it113.int&lt;br /&gt;
&lt;br /&gt;
acl it external ldap_group it&lt;br /&gt;
&lt;br /&gt;
http_access allow it&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Hinweis Rocky Linux:''' Pfad des Helpers:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Distribution !! Pfad&lt;br /&gt;
|-&lt;br /&gt;
| Debian / Ubuntu || &amp;lt;code&amp;gt;/usr/lib/squid/ext_ldap_group_acl&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rocky Linux / RHEL || &amp;lt;code&amp;gt;/usr/lib64/squid/ext_ldap_group_acl&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Rocky Linux – zusätzliche Konfiguration=&lt;br /&gt;
&lt;br /&gt;
Bei Rocky Linux sind gegenüber Debian/Ubuntu einige zusätzliche Schritte erforderlich.&lt;br /&gt;
&lt;br /&gt;
==Firewall (firewalld)==&lt;br /&gt;
&lt;br /&gt;
Rocky Linux verwendet standardmäßig &amp;lt;code&amp;gt;firewalld&amp;lt;/code&amp;gt;. Der Squid-Port 3128 muss explizit freigegeben werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo firewall-cmd --permanent --add-port=3128/tcp&lt;br /&gt;
sudo firewall-cmd --reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==SELinux==&lt;br /&gt;
&lt;br /&gt;
Rocky Linux läuft mit aktivem SELinux. Dateien, die außerhalb der Squid-Standardpfade abgelegt werden (z.B. Passwortdatei, Blacklist), benötigen den korrekten SELinux-Kontext:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chcon -t squid_conf_t /etc/squid/passwd&lt;br /&gt;
sudo chcon -t squid_conf_t /etc/squid/bad-sites.list&lt;br /&gt;
sudo chcon -t squid_conf_t /etc/squid/allowed-sites.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternativ kann &amp;lt;code&amp;gt;restorecon&amp;lt;/code&amp;gt; verwendet werden, sofern der Standardkontext für den Pfad korrekt gesetzt ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo restorecon -v /etc/squid/passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Paketübersicht==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Funktion !! Debian / Ubuntu !! Rocky Linux&lt;br /&gt;
|-&lt;br /&gt;
| Squid || &amp;lt;code&amp;gt;apt install squid&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;dnf install squid&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| htpasswd || &amp;lt;code&amp;gt;apt install apache2-utils&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;dnf install httpd-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LDAP-Utils || &amp;lt;code&amp;gt;apt install ldap-utils&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;dnf install openldap-clients&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LDAP-Bibliothek || &amp;lt;code&amp;gt;apt install libldap-2.5-0&amp;lt;/code&amp;gt; || als Abhängigkeit enthalten&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
*https://wiki.squid-cache.org/SquidFaq/SquidAcl&lt;/div&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
</feed>