Hallo alle zusammen,
dieses Mal geht es um den netten Tintenfisch Squid.
Tintenfische leben im Daten-Meer und geben bekanntlich schwarze Tinte auf den weißen Bildschirm.
Außerdem lassen Sie unbekannte meinst stehen, weshalb sie sich wunderbar zum filtern eignen.
Was ist Squid?
Squid ist ein Proxy-Server zur Filterung, Zugriffskontrolle und Zwischenspeicherung von HyperText-Zugriffen.
Was beinhaltet dieser Post?
In diesem Post geht es um die Konfiguration eines installierten Squid-Proxy.
Themen wie: Zugriffs-Steuerung, Blacklisten, ADS-Integration.
Wie installiere ich ggf. einen Squid nach?
Dieser Dienst ist meist in jeder Distribution vertreten, bei RHEL/CentOS verwendet man YUM:
yum install squid
Bei SLES/openSuse würde man die Installation per Yast vornehmen.
Nun geht es aber endlich los mit der…
Einrichtung von Squid
1. Allgemeines
2. squid.conf
3. Beispiel-ACLs
1. Allgemeines
Vor ab klären wir doch einmal die Grund-Informationen des Dienstes,
ich gehe von einer sauberen Vorinstallation wie bei CentOS mit dem Standard-Server-Paket aus.
Dienstname: squid
Dienst-Befehle: start stop restart reload
Beispiel:
service squid restart
Bevor wir mit der Konfiguration des Squid starten noch ein kleiner Tipp:
chkconfig squid on
Falls es etwas zu bemängeln gibt an der Konfiguration – werden wir gerne darauf hingewiesen…
Welche Konfigurationsdateien verwendet Squid – welche ist besonders interessant?
mime.conf
cachemgr.conf
msntauth.conf
squid.conf – welche für die effektive Konfiguration steht.
Ich spare mir das durchgehen aller Möglichen Konfigurationen und gebe daher wie die meisten anderen Autoren nur meine persönliche im Schnelldurchgang an:
2. Konfigurationsdatei: squid.conf
# schneller Neustart des Squid
shutdown_lifetime 1 seconds
# Bindungen des Dienstes
icp_port 0
http_port 0.0.0.0:3128 transparent
#http_port 3128
#http_port 127.0.0.1:8080
# Prozess-ID-File
pid_filename /var/run/squid.pid
# Arbeitsspeicher & Speicherverwaltung
cache_mem 512 MB
cache_dir aufs /var/spool/squid 2048 16 256
# Verzeichnis Fehlerdateien
error_directory /usr/share/squid/errors/German
max_filedesc 25822
server_persistent_connections off
half_closed_clients off
buffered_logs on
log_mime_hdrs off
forwarded_for on
# Anpassung des Formates für Logdateien
emulate_httpd_log on
log_fqdn on
# Formatierung „access“ für später access.log
logformat access %tl %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
# Pfade Logfiles
cache_log /var/log/squid/cache.log
cache_access_log syslog:local6.info
access_log /var/log/squid/access.log access
cache_store_log /var/log/squid/store.log
useragent_log /var/log/squid/useragent.log
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
# freundlicher Umgang mit Apache
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
# Konfiguration Authentifizierung
# windows logon name for auth
#auth_param ntlm program /usr/bin/ntlm_auth –helper-protocol=squid-2.5-ntlmssp
#auth_param ntlm children 20
# domain user or auth
# Basis-Authentifizierung über NTLM(Winbind)
auth_param basic program /usr/bin/ntlm_auth –helper-protocol=squid-2.5-basic
auth_param basic children 20
# Kunden-Domäne für Logins
auth_param basic realm domain.local
# Pfad zu Perl-Skript zur Prüfung von Gruppenmitgliedschaften
external_acl_type NT_global_group children=20 ttl=300 %LOGIN /etc/squid/ress/wbinfo_group.pl
# Grund-Definitionen Squid – acl = AccessControlList-Ressource
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
# Grund-Autorisierung – http_access allow/deny
# Private ACL-Ressourcen – IP-Netzwerke
# Private ACL-Ressourcen – Zugriffs-Gruppen NTLM/ADS
# ACL zum erzwingen der Authentifizierung
# Standard-Netzbereiche (zur Erinnerung)
# Nicht-Autorisierung
# Autorisierung Websites der Whitelist mit Authentifizierung
# Autorisierung Websites mit Authentifizierung Filterung per Blacklist
coredump_dir /var/spool/squid
# max/min object size
maximum_object_size 4096 KB
minimum_object_size 0 KB
# Steuerung für Zwischenspeicherung/Zugriff
cache allow all
#cache allow users_default
#cache allow users_light
#cache allow networks
# Service-Adresse für Sperrseite des Proxy
cache_mgr administrator@domain.local
# Anzeigename des Proxy
visible_hostname Kolonie-Proxy-Server
# Verweigern aller Verbindungen
http_access deny from_localhost
http_access deny all
# globale Zugriffssteuerung
always_direct allow networks
never_direct allow all