tmp mit noexec unter Debian

Rund um die Sicherheit des Systems und die Applikationen
Post Reply
flotte
Posts: 93
Joined: 2002-09-13 23:27
 

tmp mit noexec unter Debian

Post by flotte »

Wenn ich in der /etc/fstab die /tmp-Partition mit dem Flag noexec ausstatte, funktionieren ja bekanntermaßer viele Exploids nicht mehr.

Allerdings gibt es dann auch Fehlermeldungen bei dem Installieren von Paketen mit apt-get install unter Debian 3.1 Zum Einrichten der Pakete werden wohl Shellscripte verwendet, die dann unter /tmp nich tmehr ausgeführt werden können.
Merkwürdigerweise konnte ich bislang noch keine Folgefehler diesbezüglich erkennen. Die Paket sind trotzdem installiert (vielleicht nicht konfiguriert?).

Wie kann man es erreichen, das die Pakete über einen anderen temporären Pfad installiert werden?
aubergine
Posts: 471
Joined: 2005-09-10 17:52
Location: Frankfurt am Main
 

Re: tmp mit noexec unter Debian

Post by aubergine »

Eine 100Mb File anlegen mit deren Hilfe später /tmp gemounted wird.

Code: Select all

cd /dev
dd if=/dev/zero of=tmpmount bs=1024 count=1000000
Ein extended filesystem für die File erstellen

Code: Select all

mke2fs /dev/tmpmount
/tmp dir backupen

Code: Select all

cd /
cp -R /tmp /tmp_backup
Neues tmp noexec mounten

Code: Select all

mount -o loop,noexec,nosuid,rw /dev/tmpmount /tmp
chmod 1777 /tmp
backup zurücksichern

Code: Select all

cp -R /tmp_backup/* /tmp/
rm -rf /tmp_backup
fstab Eintrag anlegen um die Einstellungen nach einem reboot beizuhalten

Code: Select all

nano /etc/fstab
Folgendes unten Eintragen

Code: Select all

/dev/tmpmount /tmp ext2 loop,noexec,nosuid,rw 0 0
Das gröbste wäre nun geschafft, jetzt noch apt Einstellen

Code: Select all

nano /etc/apt/apt.conf
Folgendes da reinschreiben:

Code: Select all

DPkg {
    pre-Invoke {
        "mount -o remount,exec /dev/tmpmount /tmp";
    }

    post-Invoke {
        "mount -o loop,noexec,nosuid,rw /dev/tmpmount /tmp";
    }
}

Viel Spa�? damit.

Ps: Nicht von mir verfasst, nur eine deutsche Zusammenfassung die ich mir mal zusammengeschrieben hatte, weil ich das gleiche Problem hatte.




:-D
Last edited by aubergine on 2006-05-12 20:40, edited 1 time in total.
flotte
Posts: 93
Joined: 2002-09-13 23:27
 

Re: tmp mit noexec unter Debian

Post by flotte »

Das habe ich ehrlich gesagt nicht so ganz verstanden.

Also:
Es wird eine Datei angelegt, die als /tmp-Partition dienen soll. Dieses wird mit noexec gemountet.

Warum ist die Datei nur 100 MB groß? Hat das einen besonderen Grund?
Meine /tmp-Partition ist 2 GB groß.

apt mountet die Datei-Partition dann bei Bedarf mit exec oder noexec.


Im normalen Betrieb steht /tmp dann mit noexec zur Verfügung.

Hört sich eigentlich ganz gut an. Gibt es Schwachstellen. Ã?bersteht das Gebilde einen reboot? Ist es ggf. ein Flaschenhals (Performance)?
aubergine
Posts: 471
Joined: 2005-09-10 17:52
Location: Frankfurt am Main
 

Re: tmp mit noexec unter Debian

Post by aubergine »

Es übersteht einen reboot weil du es in fstab einträgst.

Wenn du wirklich 2GB in tmp brauchst, leg die File halt mit 3Gb an.

Schwachstellen hab ich bis jetzt keine gefunden.
flotte
Posts: 93
Joined: 2002-09-13 23:27
 

Re: tmp mit noexec unter Debian

Post by flotte »

Ich werde das mal probieren.

/tmp muss bei mir groß sein, weil ich teils sehr große Archivdateien mit dem MC öffne.
millo
Posts: 49
Joined: 2004-03-05 17:29
 

Re: tmp mit noexec unter Debian

Post by millo »

aubergine wrote:Eine 100Mb File anlegen mit deren Hilfe später /tmp gemounted wird.

Code: Select all

cd /dev
dd if=/dev/zero of=tmpmount bs=1024 count=1000000
Ein extended filesystem für die File erstellen

Code: Select all

mke2fs /dev/tmpmount
/tmp dir backupen

Code: Select all

cd /
cp -R /tmp /tmp_backup
Neues tmp noexec mounten

Code: Select all

mount -o loop,noexec,nosuid,rw /dev/tmpmount /tmp
chmod 0777 /tmp
backup zurücksichern

Code: Select all

cp -R /tmp_backup/* /tmp/
rm -rf /tmp_backup
fstab Eintrag anlegen um die Einstellungen nach einem reboot beizuhalten

Code: Select all

nano /etc/fstab
Folgendes unten Eintragen

Code: Select all

/dev/tmpmount /tmp ext2 loop,noexec,nosuid,rw 0 0
Das gröbste wäre nun geschafft, jetzt noch apt Einstellen

Code: Select all

nano /etc/apt/apt.conf
Folgendes da reinschreiben:

Code: Select all

DPkg {
    pre-Invoke {
        "mount -o remount,exec /dev/tmpmount /tmp";
    }

    post-Invoke {
        "mount -o loop,noexec,nosuid,rw /dev/tmpmount /tmp";
    }
}

Viel Spaß damit.

Ps: Nicht von mir verfasst, nur eine deutsche Zusammenfassung die ich mir mal zusammengeschrieben hatte, weil ich das gleiche Problem hatte.




:-D

Ich muss mal dumm fragen: Warum wird dafür eine Partition im /dev Bereich erstellt? Warum wird nicht die existierende /tmp Partition benutzt - oder ist das ein HowTo speziell für die Leute gedacht, die alles in einer Partition haben?
creek
Posts: 76
Joined: 2003-07-29 08:52
Location: Stuttgart
 

Re: tmp mit noexec unter Debian

Post by creek »

wenn du eine sperate partition für /tmp hast musst du natürlich kein file anlegen
aubergine
Posts: 471
Joined: 2005-09-10 17:52
Location: Frankfurt am Main
 

Re: tmp mit noexec unter Debian

Post by aubergine »

Indem Fall ist das HowTo auf das dodolin verwiesen hat völlig ausreichend.

Hät ich dazu sagen sollen :oops:
adjustman
Posts: 1132
Joined: 2003-03-26 23:29
Location: SA
 

Re: tmp mit noexec unter Debian

Post by adjustman »

aubergine wrote:Indem Fall ist das HowTo auf das dodolin verwiesen hat völlig ausreichend.

Code: Select all

/dev/tmpmount /tmp ext2 loop,noexec,nosuid,rw 0 0
wozu ist das loop denn? Bei mir meldet apt nach 2-3 Installationen
sowas wie "No loop device more" (kann es nicht genau sagen)
thorsten
Posts: 561
Joined: 2003-02-01 13:14
Location: Fuldatal
 

Re: tmp mit noexec unter Debian

Post by thorsten »

Du kannst auch mehr als nur die Standard 8 loop-devices benutzen:
http://www.tldp.org/HOWTO/CDServer-HOWTO/addloops.html
aubergine
Posts: 471
Joined: 2005-09-10 17:52
Location: Frankfurt am Main
 

Re: tmp mit noexec unter Debian

Post by aubergine »

adjustMan wrote:
aubergine wrote:Indem Fall ist das HowTo auf das dodolin verwiesen hat völlig ausreichend.

Code: Select all

/dev/tmpmount /tmp ext2 loop,noexec,nosuid,rw 0 0
wozu ist das loop denn? Bei mir meldet apt nach 2-3 Installationen
sowas wie "No loop device more" (kann es nicht genau sagen)
Der loop Device ist ein Virtuelles Laufwerk das einem ein voll funktionsfähiges Laufwerk zur Verfügung stellt, das komplett anders eingerichtet werden kann als das "Hauptlaufwerk".

Das Problem mit den loop Devices hatte ich auch und hab daraufhin das Script verbessert.
Undzwar liegt der Fehler hier:

Code: Select all

DPkg {
    pre-Invoke {
        "mount -o remount,exec /dev/tmpmount /tmp";
    }

    post-Invoke {
        "mount -o loop,noexec,nosuid,rw /dev/tmpmount /tmp";
    }
} 
In diesem Abschnitt wird in der post-Invoke Funktion, einfach loop gemounted, was heist das mount das nächste frei zur Verfügung stehende loop device hernimmt und mounted.

Siehe "mount", dort müsstest du grade sehen das etliche male ein loop Device nach tmp gemounted ist, aber trotzdem funktioniert alles (bis auf apt) ist aber natürlich unschön und unpraktisch.

Leider find ich das Script nicht mehr, daher musst du selbst ein bisschen testen und zwar dafür sorgen das in der post-invoke funktion speziell ein loop Device angewählt wird (Mittels losetup und mount).
Bsp:

Code: Select all

    post-Invoke {
        "mount -o loop=/dev/loop7,noexec,nosuid,rw /dev/tmpmount /tmp"; 
adjustman
Posts: 1132
Joined: 2003-03-26 23:29
Location: SA
 

Re: tmp mit noexec unter Debian

Post by adjustman »

aubergine wrote: Leider find ich das Script nicht mehr
welches Script? Die Befehle stehen doch im Thread.
Also in die apt.conf "nur" reinschreiben?

Code: Select all

DPkg {
    pre-Invoke {
        "mount -o remount,exec /dev/tmpmount /tmp";
    }
    post-Invoke {
        "mount -o loop=/dev/loop7,noexec,nosuid,rw /dev/tmpmount /tmp";
    }
}
aubergine
Posts: 471
Joined: 2005-09-10 17:52
Location: Frankfurt am Main
 

Re: tmp mit noexec unter Debian

Post by aubergine »

Wie ich in Erinnerung habe funktioniert das so nicht, da er dir melden wird das dieser loop device bereits benutzt wird.

Deswegen musst du davor noch mit losetup dafür sorgen das dies nicht der Fall ist.
adjustman
Posts: 1132
Joined: 2003-03-26 23:29
Location: SA
 

Re: tmp mit noexec unter Debian

Post by adjustman »

aubergine wrote:Deswegen musst du davor noch mit losetup dafür sorgen das dies nicht der Fall ist.
und was sagt mir das? man losetup? ;)
oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim
 

Re: tmp mit noexec unter Debian

Post by oxygen »

Korrekt wäre:

Code: Select all

DPkg {
    pre-Invoke {
        "mount -o remount,exec /dev/tmpmount /tmp";
    }
    post-Invoke {
        "mount -o remount,noexec /dev/tmpmount /tmp";
    }
}
wobei ich es für einfacher/besser/sicherer halte, den tmp Pfad von apt zu ändern.
rolfxxl
Posts: 21
Joined: 2002-12-01 20:12
 

komisch

Post by rolfxxl »

ich check nicht warum ihr es so kompliziert macht.

vorm apt einfach tmp remounten und danach wieder mit noexec remounten.

in /etc/apt/apt.conf

pre-Invoke {"mount -o remount,exec /tmp";};
post-Invoke {"mount -o remount,noexec /tmp";}

fertig.

war das evlt. die einfache lösung die gesucht wurde?
Post Reply