Wieder einmal habe ich mich dafür entschieden, /tmp noexec zu mounten.
Und wieder habe ich vergessen, das es dann u.a. mit apt zu Problemen führt:
apt-listchanges: Mailing root: apt-listchanges: news for rootgemeinschaft.de Preconfiguring packages ... Can't exec "/tmp/ca-certificates.config.126761": Permission denied at /usr/share/perl/5.14/IPC/Open3.pm line 186. open2: exec of /tmp/ca-certificates.config.126761 configure 20120623 failed at /usr/share/perl5/Debconf/ConfModule.pm line 59 (Reading database ... 50732 files and directories currently installed.) Preparing to replace ca-certificates 20120623 (using .../ca-certificates_20130119_all.deb) ... Unpacking replacement ca-certificates ... Processing triggers for man-db ... Setting up ca-certificates (20130119) ... Processing triggers for ca-certificates ... Updating certificates in /etc/ssl/certs... 7 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d....done.Leider ist es nämlich so, dass apt post install scripts in /tmp ausführen möchte. Man muss deshalb dem Package System mitteilen, das es bitte einen anderen Pfad benutzen möchte. Das mache ich so:
In /apt/apt.conf.d/ ein File 50extracttemplates mit folgendem Inhalt APT { ExtractTemplates { TempDir "/var/local/tmp"; }; };Natürlich muss /var/local/tmp existieren und könnte auch üblicher auch /var/tmp lauten, ist Geschmackssache. Äbrigens ist noexec alleine nicht optimal, erst durch gleichzeitiges nosuid hat man auch die üblichen Tricks der Angreiferscripts ausgehebelt. Die Zeile in der /etc/fstab sollte also so aussehen:
/tmp ext4 noexec,nosuid 0 2
Steve Kemp von debian-administration.org macht das anders, und zwar so, wie man es auch zu Fuß machen würde, mit vor dem apt-get ausführen /tmp mit exec mounten, danach dann wieder zurück zu noxec.
Add the following to the file /etc/apt/apt.conf: DPkg::Pre-Invoke{"mount -o remount,exec /tmp";}; DPkg::Post-Invoke {"mount -o remount /tmp";};
Wie so oft gibt es mehrere Möglichkeiten. Für welche man sich entscheidet ist letztlich egal, die Lösung in der apt.conf ist vielleicht die am kompatibelste ... Näheres dazu bei www.debian-administration.org/article/Making_/tmp_non-executable und bei wrightsolutions.wordpress.com/2010/01/11/securing-tmp-and-noexec-apt-considerations/