Weiteres Cacheverzeichnis für den Squid-Proxy

Der Squid-Proxy ist ein häufig eingesetzter Caching-Proxy. Ein Caching-Proxy speichert die übertragenen Daten zusätzlich in einem Zwischenspeicher ab, um bei erneuter Anfrage die Daten schneller aus dem Cache liefern zu können. AppArmor verfügt für die Überwachung des Squid-Proxy über ein Profil, welches für den Standardfall vollkommen ausreicht:
# $Id: usr.sbin.squid 12 2006-04-12 21:35:41Z steve-beattie $
# ------------------------------------------------------------------
#
#    Copyright (C) 2002-2006 Novell/SUSE
#
#    This program is free software; you can redistribute it and/or
#    modify it under the terms of version 2 of the GNU General Public
#    License published by the Free Software Foundation.
#
# ------------------------------------------------------------------
# vim:syntax=apparmor

#include <tunables/global>

/usr/sbin/squid {
  #include <abstractions/base>
  #include <abstractions/consoles>
  #include <abstractions/kerberosclient>
  #include <abstractions/nameservice>

  capability setgid,
  capability setuid,

  /usr/lib/squid/* rix,
  /usr/sbin/squid rix,
  /usr/sbin/unlinkd ixr,

  /var/cache/squid/** lrw,

  /dev/tty rw,
  /etc/mtab r,
  /etc/squid/* r,
  /proc/*/mounts r,
  /proc/mounts r,
  /usr/share/squid/** r,
  /var/log/squid/access.log w,
  /proc/sys/kernel/ngroups_max r,
  /var/log/squid/cache.log rw,
  /var/log/squid/store.log w,
  /var/run/squid.pid lrw,
}
Aus Geschwindigkeitsgründen empfiehlt sich die Verwendung mehrerer Cacheverzeichnisse auf getrennten Festplatten. Der Squid-Proxy verteilt dann den Cache gleichmäßig über alle Festplatten. So verteilen sich dann auch die Zugriffe auf mehrere Festplatten. Hierzu werden in der Squid-Konfiguration einfach mehrere Cache-Verzeichnisse angegeben:
cache_dir ufs /var/cache/squid1 100 16 256
cache_dir ufs /var/cache/squid2 100 16 256
Damit AppArmor den Zugriff erlaubt, müssen Sie das Profil anpassen. Zwei Varianten sind in diesem Fall denkbar:
  1. Sie erlauben explizit den Zugriff für jedes Verzeichnis:
      /var/cache/squid1/** lrw,
      /var/cache/squid2/** lrw,
    
  2. Sie benutzen File-Globbing:
      /var/cache/squid*/** lrw,
    
Anschließend müssen Sie das Profil neu laden. Am einfachsten erfolgt das mit einem Neustart von AppArmor über rcapparmor reload. Ein Neustart des Squid ist nicht zwingend erforderlich (siehe 13.6).



Ralf Spenneberg 2007-11-13