# Aufräumen + mehr Sicherheit für KDE,Gimp,GQview,Seamonkey,..

## UTgamer

Betreff: Desktop

Nicht geleerte Cache einiger Anwendungen stopfen die Home-Ordner zu und bei Webanwendungen lassen sie Rückschlüsse auf den Benutzer zu, dies gedenke ich mit diesen Vorschlägen zu ändern.

Alle Scripte sind getestet und leicht nachvollziehbar.

Es werden je nach Bedarf 1 bis 2 Partitionen (Festplatte oder tmpfs) für temporäre Zwecke benötigt.

Diese Vorgehensweise beugt zum Teil auch Sicherheitslücken wie z.B. in grafikverarbeitenden Anwendungen oder Webanwendungen vor.

Hier sind mal ein paar Grafiksicherheitslücken der letzten Jahre aufgeführt 

(von der Anzahl annähernd nicht mit z.B. allein GDI-Fehlern oder auch ActiveX bei Windows vergleichbar).

libexif lässt sich Schadcode unterschieben 2007, wurde erst (heute) 17.06 in Gentoo gefixt, also zu meinem Artikeldatum

Mehrere Lücken in Bildbearbeitungssoftware ImageMagick 2007

Kritische Lücken in Grafik-Toolkit GTK+ 2005

Sicherheitslücke in Grafikbibliothek libXpm unter OpenMotif und lesstif 2005

Wieder Schwachstellen in Unix-Grafikbibliothek libtiff 2004

Sicherheitslücken in Grafikbibliotheken für Unix-Systeme 2004

Fehler in freien Grafiktools ermöglichen Einschleusen von Code 2004

Schwachstellen in Bildbetrachter xv 2004

1)

KDE/Gimp/GQView-Nutzer die bereits ihr Homeverzeichnis seit einiger Zeit nutzen mögen doch mal die Größe ihres ~/.thumbnails Ordners überprüfen. Bei meinen Rechnern fand sich bereits bei einem Benutzer eine über 60 MB große Ansammlung an Thumbnails/Vorschaubildern, eindeutig zuviel.

Mein Vorschlag hierzu verlagert diese Daten auf eine Partition die bei jedem reboot alle Inhalte entfernt, hierzu zählen /tmp oder eine RAM-Disk (tmpfs).

Beispiel für den RAM-Diskeintrag in der /etc/fstab:

```
tmpfs         /tmp      tmpfs      size=256M,rw,noatime,nodev      0 0
```

Das Verlagerungsscript thumbnails welches ich bei mir im Ordner ~/.scripte liegen habe:

```
#! /bin/sh

cd /tmp

file=~/.thumbnails/normal   

file1=$(id -un)

if [[ -e $file1 ]]

then

   echo

else

   mkdir $(id -un)

   chmod 700 $(id -un)

   if [[ -e $file ]]

   then

      echo

      rm -r ~/.thumbnails/fail ~/.thumbnails/normal ~/.thumbnails/large

      rm -r /tmp/$(id -un)/.thumbnails

   else

      mkdir $(id -un)/.thumbnails $(id -un)/.thumbnails/normal $(id -un)/.thumbnails/large $(id -un)/.thumbnails/fail

      ln -s /tmp/$(id -un)/.thumbnails/normal ~/.thumbnails/normal

      ln -s /tmp/$(id -un)/.thumbnails/large ~/.thumbnails/large

      ln -s /tmp/$(id -un)/.thumbnails/fail ~/.thumbnails/fail

   fi

fi
```

 Mit "chmod u+x ~/.scripte/thumbnails" mache ich dieses Script ausführbar (für die Linuxneulinge).

Beschreibung:

Dieses Script legt mit dem Inhalt der Variablen "$(id -un)" welches den gerade angemelden Benutzer anzeigt einen neuen Ordner mit dem Benutzernamen an, in diesen Ordner kommt dann der nun temporäre Thumbnails-Inhalt.

2) Webanwendungen - Browser

Man kann nun wie in Punkt 1 beschrieben den /tmp Ordner verwenden oder um richtig viel Sicherheit zu erlangen eine weitere Partition erstellen die der Sicherheit wegen mit noexec gemounted wird, denn Cache-Inhalt darf niemals ausgeführt werden.

In meinem Beispiel verwende ich wieder eine RAM-Disk die nun in den Ordner /home/.Cache gelegt wird (128MB sind mehr als ausreichend, weniger geht auch):

```
tmpfs         /home/.Cache   tmpfs      size=128M,rw,noatime,nodev,noexec   0 0
```

Mein Script "browsercache" für den Seamonkey, jeder muß hier ein paar wenige Verzeichnisnahmen für sich selbst korrigieren:

```
#! /bin/sh

cd /home/.Cache

file1=$(id -un)

if [[ -e $file1 ]]

then

   echo

else

   mkdir $(id -un)

   chmod 700 $(id -un)

fi

# Seamonkey  (~128MB sind OK)

# Die lock Datei im Browserverzeichnis ist nicht ohne weiteres abfragbar!

#file2=~/.mozilla/[Profilname]/*.slt/lock

file2=/home/.Cache/$(id -un)/seamonkey/Cache

if [[ -e $file2 ]]

then

   # Die Caches leeren

   rm -r ~/.mozilla/[Profilnamen]/Cache

   rm -r /home/.Cache/$(id -un)/seamonkey/Cache

   rm -r /home/.Cache/$(id -un)/seamonkey

   # und wieder leer neu anlegen

   mkdir $(id -un)/seamonkey $(id -un)/seamonkey/Cache

   ln -s /home/.Cache/$(id -un)/seamonkey/Cache  ~/.mozilla/[Profilname]

else

   # Die Caches neu erstellen nach erstem Login

   mkdir $(id -un)/seamonkey $(id -un)/seamonkey/Cache

   ln -s /home/.Cache/$(id -un)/seamonkey/Cache  ~/.mozilla/[Profilname]

fi

# Beim Firefox ist es durch das temporäre entfernen und anlegen vom Cache Ordner

# sowie der Rechteprüfung beim Start es nicht möglich noexec und nodev dem Cache 

# zu verpassen ohne diese Flags der ganzen home-Partition zu übergeben.
```

Dort wo [Profilnamen] steht müßt ihr eure eigenen Profilnamen eintragen!

3) Webanwendungen - andere

Genau wie beim Seamonkey wird für das nächste Script "adobe+flash-cache" die gleiche Partition mit dem gleichen angemeldeten Benutzer verwendet. Die Cache-Ordner vom Adobe-Acrobatreader und von Adobe/Macromedia-Flash/Shockwave werden hier temporär gemacht.

```
#! /bin/sh

cd /home/.Cache

file1=$(id -un)

if [[ -e $file1 ]]

then

   echo

else

   mkdir $(id -un)

   chmod 700 $(id -un)

fi

# Flashplayer + Acrobatreader (~128MB sind OK)

# Mein Cache-Ordner ist hier Zuhause: ~/.macromedia

file2=/home/.Cache/$(id -un)/macromedia

if [[ -e $file2 ]]

then

   # Die Caches leeren

   rm -r ~/.macromedia

   rm -r /home/.Cache/$(id -un)/macromedia

   # und wieder leer neu anlegen

   mkdir $(id -un)/macromedia

   ln -s /home/.Cache/$(id -un)/macromedia  ~/.macromedia

else

   # Die Caches neu erstellen nach erstem Login

   mkdir $(id -un)/macromedia

   rm -r ~/.macromedia

   ln -s /home/.Cache/$(id -un)/macromedia  ~/.macromedia

fi

# Mein Cache-Ordner ist hier: ~/.adobe/Acrobat/7.0/Cache/Search70

file3=/home/.Cache/$(id -un)/adobe

if [[ -e $file3 ]]

then

   # Die Caches leeren

   rm -r ~/.adobe/Acrobat/*.*/Cache/Search*

   rm -r /home/.Cache/$(id -un)/adobe

   # und wieder leer neu anlegen

   mkdir $(id -un)/adobe

   ln -s /home/.Cache/$(id -un)/adobe  ~/.adobe/Acrobat/7.0/Cache/Search70

else

   # Die Caches neu erstellen nach erstem Login

   mkdir $(id -un)/adobe

   rm -r ~/.adobe/Acrobat/*.*/Cache/Search*

   ln -s /home/.Cache/$(id -un)/adobe  ~/.adobe/Acrobat/7.0/Cache/Search70

fi
```

Anzumerken ist

a) das diese Scripte in jedes Benutzerprofil gehören und die gleichen Partitionen benutzen,

b) sie in der Login-Shell bereits beim Anmelden angelegt werden.

Ihr tragt sie in die jeweils letzte Zeile eurer ~/.bash_profile Datei ein.

Beispiel:

```
# /etc/skel/.bash_profile:

# $Header: /home/cvsroot/gentoo-src/rc-scripts/etc/skel/.bash_profile,v 1.10 2002/11/18 19:39:22 azarah Exp $

#This file is sourced by bash when you log in interactively.

[ -f ~/.bashrc ] && . ~/.bashrc

export PATH=$PATH':~/.scripte'

thumbnails

browsercache

adobe+flash-cache
```

Vielleicht mag ja der ein oder andere meine Aufräum- und Sicherheitsvorschläge nutzen,  :Smile: 

und gerade Webbrowser haben immer wieder Sicherheitslücken, ein Update jagt das nächste;

Adobe mit seinen Produkten 'Acrobat Reader' sowie Flash/Shockwave hatten auch bereits Sicherheitslücken.

Zudem wird der Browser schneller und die Festplatte wird bei den ganzen Cacheeinträgen schön geschont.

(An die Scriptprofies, ja man kann auf Kosten der Lesbarkeit kürzen und Returnwerte setzen, sind aber nicht nötig, sonstige Verbesserungen sind gerne willkommen.)

----------

## Inte

 *UTgamer wrote:*   

> KDE/Gimp/GQView-Nutzer die bereits ihr Homeverzeichnis seit einiger Zeit nutzen mögen doch mal die Größe ihres ~/.thumbnails Ordners überprüfen. Bei meinen Rechnern fand sich bereits bei einem Benutzer eine über 60 MB große Ansammlung an Thumbnails/Vorschaubildern, eindeutig zuviel.

 Na ja, 60MB gehen noch. Wenn Du soviele Grafiken bearbeitest wie ich, dann nimmt das schnell andere Größenordnungen an.  :Wink:  Wenigstens ist das ein zentraler Cache. Manches Tools legt da lieber seinen eigenen an. Das wird dann richtig dreckig.

Ich räume ab und zu so auf: Entfernen von alten Thumbnails

----------

## UTgamer

 *Inte wrote:*   

> ...
> 
> Ich räume ab und zu so auf: Entfernen von alten Thumbnails

 

Auch eine gute Idee; nur hilft sie denen nicht weiter die die -atime für ihre /home partition deaktiviert haben  :Wink: 

Da hilft entweder über Cron nur ein reguläres löschen aller Thumbnails oder eben die tempfs Lösung von mir.

----------

## a.forlorn

Wie kann ich überprüfen, ob atime läuft? Ich habe testweise mal noatime aus /etc/fstab entfernt, reicht das aus?

----------

## Inte

Hast Du einfach mal ein mount auf der Konsole abgesetzt? Da siehst Du doch alle Optionen mit denen die Partitionen gemountet wurden. Wenn kein noatime dabei steht, dann ist doch alles in Ordnung.

----------

## a.forlorn

LOL, das war mir völlig unbekannt. Man lernt nach 4 Jahren linux doch immer wieder dazu.  :Wink:  Danke!

----------

