Personal tools
You are here: Home GNU / Linux Debian 4.0 Etch Sécuriser votre dossier temporaire
Document Actions
  • Send this page to somebody
  • Print this page
  • Add Bookmarklet

Sécuriser votre dossier temporaire

by Pierre-Yves Landuré last modified 2008-04-28 04:10

Le dossier /tmp est utilisé par de nombreux vers pour s'infiltrer dans votre système. Une méthode simple et efficace pour palier à ce problème est d'empêcher l'exécution des scripts dans ce dossier. Cet article vous guide durant la mise en place de cette solution.

Installation

Nous commençons par créer un dossier destiné à contenir la partition loopback destinée à remplacer notre dossier temporaire :

/bin/mkdir /var/lib/tmpfs

Nous créons un fichier vide de la taille d'1 Go que nous destinons à remplacer le dossier /tmp (cette opération peut prendre plusieurs secondes):

/bin/dd if=/dev/zero of=/var/lib/tmpfs/tmp.fs bs=1024 count=1000000

Nous formatons ce fichier en ext3 :

/sbin/mkfs.ext3 -F /var/lib/tmpfs/tmp.fs

Nous ajoutons la ligne adéquate au fichier fstab :

/bin/echo "/var/lib/tmpfs/tmp.fs /tmp ext3 loop,noexec,nosuid,nodev,rw 0 0" \
>> /etc/fstab

Ce qui va suivre n'est pas très joli mais à priori permet de ne pas perturber le fonctionnement des logiciels utilisant le dossier temporaire au moment ou nous procédons à l'échange.

/bin/mv /tmp /tmp.old
/bin/mkdir /tmp
/bin/mount /tmp
/bin/mv /tmp.old/* /tmp/
/bin/mv /tmp.old/.* /tmp/
/bin/rm -r /tmp.old

Enfin, nous donnons à tous le monde les droits d'écriture sur le dossier temporaire:

/bin/chmod ugo+rwx /tmp

Votre répertoire temporaire ne peut maintenant plus être utilisé pour exécuter des scripts.

Mise à jour et installation de paquets supplémentaires

Rendre votre dossier temporaire non exécutable pose problème lors de l'installation de certains paquets. Il faut donc rendre à nouveau exécutable votre dossier temporaire avant d'utiliser apt-get :

/bin/mount -o remount,exec /tmp

et une fois l'installation terminée, le rendre à nouveau non-exécutable:

/bin/mount -o remount,noexec /tmp

Remerciements

Erreur lors de l'installation de paquets

Posted by pierre at 2008-04-27 18:49
Après avoir suivi ce tuto (qui s'est bien déroulé), des erreurs apparaissent lors de l'installation de paquets.

Par exemple:
--> apt-get install quota flex
- Can't exec "/tmp/quota.config.26141": Permission non accordée at /usr/share/perl/5.8/IPC/Open3.pm line 168.
- open2: exec of /tmp/quota.config.26141 configure failed at /usr/share/perl5/Debconf/ConfModule.pm line 58

oups, désolé

Posted by Pierre-Yves Landuré at 2008-04-28 04:12
Oui, je me suis rendu compte de ce problème il y a un certain temps. J'ai mis à jour la page avec une solution.

Désolé pour l'inconvénient, et merci de m'avoir rappelé l'existence de ce problème.

je me disais aussi...

Posted by pierre at 2008-04-28 07:50
Je me suis dis mince j'ai mal lu ce tuto ou quoi ?
La partie "Mise à jour et installation de paquets supplémentaires" n'été pas là avant...mmh
Jusqu'à que je vois votre réponse...

Merci pour cette correction très rapide, et félicitation pour ce site.

Cordialement

PG

Configuration d'APT

Posted by fighting_falcon at 2009-09-19 17:11
more /etc/apt/apt.conf.d/90mount

DPkg
{
Pre-Invoke { "mount /usr -o remount,rw" };
Pre-Invoke { "mount /tmp -o remount,exec" };
Post-Invoke { "mount /tmp -o remount,noexec || true" };
Post-Invoke { "mount /usr -o remount,ro || true" };
};

Il y a mieux et plus simple !!

Posted by Askarel at 2009-09-25 10:47
Plutot que de monter un fichier via le loopback, on peut utiliser le systeme de fichier tmpfs du kernel. C'est d'autant plus interessant si la machine a beaucoup de ram et/ou une partition de swap.

Exemple a rajouter a /etc/fstab:

# Sans le parametre size, le kernel alloue par defaut la moitie de la ram pour le tmpfs
tmpfs /tmp tmpfs size=1G,noexec,nosuid,nodev 0 0

Cerises sur le gateau:
- Pas besoin de formater le filesystem
- Les fichiers disparaissent des que le systeme de fichiers est demonte: umount /tmp && mount /tmp suffit

http://en.wikipedia.org/wiki/TMPFS

BlogBang
Navigation
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards:

Wikio